Atlantis Word Processor1.6.5.8爆破过程
第一处地方:字符串查找“Theregistration code you have specified is invalid.
00494A8B E888FB1600 call Atlantis.00604618
00494A90 837DFC 00 cmp dword ptr ss:[ebp-0x4],0x0
00494A94 7517 jnz XAtlantis.00494AAD//》》关键跳改为JMP
00494A96 B84C4B4900 moveax,Atlantis.00494B4C ; ASCII"Please enter your registration code."
00494A9B E844A21400 call Atlantis.005DECE4
00494AA0 8B869C010000 mov eax,dword ptrds:[esi+0x19C]
00494AA6 8B10 mov edx,dword ptrds:[eax]
00494AA8 FF5268 call dword ptr ds:[edx+0x68]
00494AAB EB45 jmp XAtlantis.00494AF2
00494AAD 8D55FC lea edx,dword ptr ss:[ebp-0x4]
00494AB0 8B869C010000 mov eax,dword ptrds:[esi+0x19C]
00494AB6 E85DFB1600 call Atlantis.00604618
00494ABB 8B45FC mov eax,dword ptr ss:[ebp-0x4]
00494ABE E8F5060000 call Atlantis.004951B8
00494AC3 84C0 test al,al
00494AC5 7517 jnz XAtlantis.00494ADE
00494AC7 B87C4B4900 mov eax,Atlantis.00494B7C ; ASCII "The registration codeyou have specified is invalid.
00494ACC E827A21400 call Atlantis.005DECF8
00494AD1 8B869C010000 mov eax,dword ptrds:[esi+0x19C]
00494AD7 8B10 mov edx,dword ptrds:[eax]
00494AD9 FF5268 call dword ptr ds:[edx+0x68]
00494ADC EB14 jmp XAtlantis.00494AF2
00494ADE B8504C4900 moveax,Atlantis.00494C50 ; ASCII"You have successfully registered your copy of Atlantis.
Thank you very much for registering."
00494AE3 E8FCA11400 call Atlantis.005DECE4
00494AE8 C78640010000 0>mov dword ptr ds:[esi+0x140],0x1
00494AF2 33C0 xor eax,eax
00494AF4 5A pop edx
00494AF5 59 pop ecx
00494AF6 59 pop ecx
00494AF7 64:8910 mov dword ptrfs:[eax],edx
00494AFA 680F4B4900 push Atlantis.00494B0F
00494AFF 8D45FC lea eax,dword ptr ss:[ebp-0x4]
00494B02 E809E8F6FF call Atlantis.00403310
00494B07 C3 retn
第二处地方:查找字符串“Unregisteredcopy.”双击来到这里:
00495525 E89AAFF7FF call Atlantis.004104C4
0049552A A1249D6100 mov eax,dword ptrds:[0x619D24]
0049552F 833800 cmp dword ptr ds:[eax],0x0
00495532 7562 jnz XAtlantis.00495596//》》关键跳改为JMP
00495534 BAFF000000 mov edx,0xFF
00495539 8B430C mov eax,dword ptr ds:[ebx+0xC]
0049553C E803AAF7FF call Atlantis.0040FF44
00495541 6830564900 push Atlantis.00495630 ; ASCII "Unregisteredcopy."
00495546 8D5424 04 lea edx,dword ptrss:[esp+0x4]
0049554A 8BBE94010000 mov edi,dword ptrds:[esi+0x194]
00495550 8BC7 mov eax,edi
00495552 E841ED1600 call Atlantis.00604298
00495557 8B4C24 10 mov ecx,dword ptrss:[esp+0x10]
0049555B 8B5728 mov edx,dword ptrds:[edi+0x28]
0049555E 8BC3 mov eax,ebx
00495560 E82FB5F7FF call Atlantis.00410A94
00495565 684C564900 push Atlantis.0049564C ; ASCII "Please register."
0049556A 8D5424 04 lea edx,dword ptrss:[esp+0x4]
0049556E 8BBE94010000 mov edi,dword ptrds:[esi+0x194]
00495574 8BC7 mov eax,edi
00495576 E81DED1600 call Atlantis.00604298
0049557B 8B6C24 10 mov ebp,dword ptrss:[esp+0x10]
0049557F 8BC3 mov eax,ebx
00495581 E8F2B6F7FF call Atlantis.00410C78
00495586 03E8 add ebp,eax
00495588 8BCD mov ecx,ebp
0049558A 8B5728 mov edx,dword ptrds:[edi+0x28]
0049558D 8BC3 mov eax,ebx
0049558F E800B5F7FF call Atlantis.00410A94
00495594 EB64 jmp XAtlantis.004955FA
00495596 6868564900 push Atlantis.00495668 ; ASCII "Registeredto:"
第二处地方NAG窗口
重新打开软件后会出现NAG窗口,用F12暂停调用堆栈法来解决这个问题。
OD载入,运行(F9)出现NAG窗口。“暂停”》》》“ALT+K调用堆栈”
地址堆栈函数过程/ 参数调用来自结构
0012FF08 77D19418 包含ntdll.KiFastSystemCallRet USER32.77D19416 0012FF28
0012FF0C 006022DA <jmp.&USER32.WaitMessage> Atlantis.006022D5 0012FF28
0012FF2C 00601278 Atlantis.006021D8 Atlantis.00601273 0012FF28
0012FF6C 005E1C86 ?Atlantis.00601180 Atlantis.005E1C81 0012FF68
0012FF78 00494F98 Atlantis.005E1C74 Atlantis.00494F93 0012FFC0
0012FF7C 0060C29B Atlantis.00494F64 Atlantis.0060C296 0012FFC0
在最后的语句“0060C29B”右键》》》“显示调用”
来到这里
0060C28B B00F mov al,0xF
0060C28D E876F0FCFF call Atlantis.005DB308
0060C292 84C0 test al,al
0060C294 7558 jnz XAtlantis.0060C2EE//》》关键跳改为JMP
0060C296 E8C98CE8FF call Atlantis.00494F64
0060C29B A1249D6100 mov eax,dword ptrds:[0x619D24]
0060C2A0 833800 cmp dword ptr ds:[eax],0x0
0060C2A3 7549 jnz XAtlantis.0060C2EE
第三处地方,关闭软件时出现NAG窗口
仍然用”F12暂停调用堆栈法”解决。
点击“关闭”按钮,出现NAG窗口。“暂停”》》》》“ALT+K调用堆栈”