duelist crackme 2 破解(下) (3千字)
duelist crackme 2 破解(下) (希望转载的时候保持完整)作者 丁丁虾 ddxia/[CCG]
E_mail ddxia@263.net (如果Crackme教学文章中有错,请来信:))
Web http://go18.163.com/~ddxia
目标 duelist crackme 2
目标URL http:\\go.163.com\~ddxia\crackme\DueList\Due-cm2.zip
工具 SoftIce4.01 for NT WinHex winapi.hlp
经过一下午的苦活,终于有时间写下辑了 呵呵~~~~~
001B:00401114 33F6 XOR ESI,ESI
001B:00401116 43 INC EBX
^^^^^^^^^^^^^^^^^^^^^^^^^^----->>ebx值是指向碰到第一个01时的指针
001B:00401117 8A831A214000 MOV AL,[EBX+0040211A]
001B:0040111D 3C00 CMP AL,00
001B:0040111F 7418 JZ 00401139
^^^^^^^^^^^^^^^^^^^^^^^^^^------>判断是否到文件尾部
001B:00401121 3C01 CMP AL,01
001B:00401123 7414 JZ 00401139
^^^^^^^^^^^^^^^^^^^^^^^^^^------>由于上回已经知道01有两个,这里假设两个01为连在一起,所以要跳
001B:00401125 83FE0F CMP ESI,0F
001B:00401128 730F JAE 00401139
001B:0040112A 32861A214000 XOR AL,[ESI+0040211A]
001B:00401130 898660214000 MOV [ESI+00402160],EAX
001B:00401136 46 INC ESI
001B:00401137 EBDD JMP 00401116
001B:00401139 43 INC EBX
^^^^^^^^^^^^^^^^^^^^^^^^^^------>移动指向字节的指针
下面这一段代码基本和上回说的代码相同。
001B:0040113A 33F6 XOR ESI,ESI
001B:0040113C 8A831A214000 MOV AL,[EBX+0040211A]
001B:00401142 3C00 CMP AL,00
001B:00401144 7409 JZ 0040114F
001B:00401146 3C01 CMP AL,01
001B:00401148 74F2 JZ 0040113C
001B:0040114A 03F0 ADD ESI,EAX
001B:0040114C 43 INC EBX
001B:0040114D EBED JMP 0040113C
001B:0040114F 81FEB2010000 CMP ESI,000001B2
^^^^^^^^^^^^^^^^^^^^^^^^^^------>剩余的累加和为1B2
001B:00401155 75A0 JNZ 004010F7
001B:00401157 6A00 PUSH 00
001B:00401159 68C9114000 PUSH 004011C9
001B:0040115E 6A00 PUSH 00
001B:00401160 6A05 PUSH 05
001B:00401162 FF3577214000 PUSH DWORD PTR [00402177]
001B:00401168 E842020000 CALL USER32!DialogBoxParamA
001B:0040116D EB53 JMP 004011C2
AA+AA+5E=1B2
于是可以得到一个文件的内容为
AA AA 81 01 01 AA AA 5E 00..............至少要有18个字节!这样就OK了
本想收工了。后来把程序又看了一遍,发现还有一个地方不是很明白。
001B:00401125 83FE0F CMP ESI,0F
001B:00401128 730F JAE 00401139
001B:0040112A 32861A214000 XOR AL,[ESI+0040211A]
001B:00401130 898660214000 MOV [ESI+00402160],EAX
001B:00401136 46 INC ESI
001B:00401137 EBDD JMP 00401116
大家如果有时间可以进一步研究这段程序,你发现好好玩的哦!^_^
给点提示:
AA AA 81 01 ........中间...........01 AA AA 5E 00..............至少要有18个字节
|--->>允许有 小于16个字节的存在。将会显示在对话框中
如果大于16个字节,会死循环^_^
18:33:33
