00402304|.E8 D9010000 |call CM__8_26.004024E2 本帖最后由 小攸 于 2017-8-26 14:46 编辑
004011BE 6A 00 push 0x0
004011C0 E8 B08F0000 call CM__8_26.0040A175
004011C5 83C4 04 add esp,0x4
004011C8 E9 C4060000 jmp CM__8_26.00401891
004011CD 833D E4E34A00 0>cmp dword ptr ds:,0x0
004011D4 E9 28020000 jmp CM__8_26.00401401 ; 全局变量判断是否正确
004011D9 90 nop
004011DA 68 01030080 push 0x80000301
004011DF 6A 00 push 0x0
004011E1 FF35 E4E34A00 push dword ptr ds:
004013FF /EB 05 jmp short CM__8_26.00401406
00401401 |B8 01000000 mov eax,0x1
00401406 \85C0 test eax,eax
00401408 E9 3C010000 jmp CM__8_26.00401549 ; 二次判断
0040140D 90 nop
0040140E 6A 00 push 0x0
00401410 68 A4AF4800 push CM__8_26.0048AFA4 ; ASCII "检测到爆破"
00401415 6A FF push -0x1
00401417 6A 08 push 0x8
00401419 68 00000106 push 0x6010000
0040141E 68 01000152 push 0x52010001
00401423 E8 478D0000 call CM__8_26.0040A16F
00401428 83C4 18 add esp,0x18
00401557 E8 0D8C0000 call CM__8_26.0040A169
0040155C 83C4 10 add esp,0x10
0040155F 8945 F0 mov dword ptr ss:,eax ; 传入注册码,下面有一个CALL,算出字符串,我们直接等于常量地址即可
00401562 8D45 F0 lea eax,dword ptr ss:
00401565 B8 B0AF4800 mov eax,CM__8_26.0048AFB0 ; ASCII "啊噢!被你成功了!"
0040156A 90 nop
0040156B 90 nop
0040156C 90 nop
0040156D 90 nop
0040156E 90 nop
0040156F 90 nop
00401570 8945 EC mov dword ptr ss:,eax
00401573 8B5D F0 mov ebx,dword ptr ss:
00401689 83C4 04 add esp,0x4
0040168C 837D E4 FF cmp dword ptr ss:,-0x1 ; 三次效验
00401690 90 nop
00401691 90 nop
00401692 90 nop
00401693 90 nop
00401694 90 nop
00401695 90 nop
00401696 6A 00 push 0x0
00401698 FF75 FC push dword ptr ss:
0040169B 6A FF push -0x1
0040169D 6A 08 push 0x8
0040169F 68 00000106 push 0x6010000
004016A4 68 01000152 push 0x52010001
004016A9 E8 C18A0000 call CM__8_26.0040A16F ; 成功提示CALL
不让Patch机械码了{:301_971:} 楼主的算法是不能被爆破的,但是楼主之前已经得出过 啊噢,被你成功了这个字样,并保存在一个地址中,我们可以利用那个地址 让最后解密之后的文字,强行等于之前保存的那个地址就可以了,然后之前还会有一个判断跳转,直接JMP了。这个是之前楼主的版本的最根本的爆破方法了。。 感谢楼主分享!!
页:
[1]
2