|
![]() | 作者: yongmin [yongmin]
![]() |
登录 |
作者:maomaoma 【文章标题】: 一种破解思路 【软件名称】: 国产某游戏平台 【软件大小】: 2544KB 【下载地址】: 无 【加壳方式】: 无 【保护方式】: 无 【编写语言】: Microsoft Visual C++ 6.0 [Overlay] 【使用工具】: OD 【操作平台】: WinXP 【软件介绍】: 游戏平台 【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教! -------------------------------------------------------------------------------- 【详细过程】 一种简易下断方法 1、Peid检测为Microsoft Visual C++ 6.0 [Overlay],查区段存在.ecode 2、OD载入运行,Alt+E模块中含E语言模块,常规方法容易迷失在E语言模块空间中,故另寻它路 3、点注册,输入假码,Alt+M打开内存空间,在.ecode区段下访问中断,点注册程序中断如下 004615CC 55 push ebp ; OD中断于此 004615CD 8BEC mov ebp, esp 004615CF 81EC 10000000 sub esp, 10 004615D5 C745 FC 0000000>mov dword ptr [ebp-4], 0 004615DC C745 F8 0000000>mov dword ptr [ebp-8], 0 004615E3 6A FF push -1 004615E5 6A 08 push 8 004615E7 68 D30A0116 push 16010AD3 004615EC 68 30020152 push 52010230 004615F1 E8 B77D0000 call 004693AD ; 取假码 004615F6 83C4 10 add esp, 10 004615F9 8945 F4 mov dword ptr [ebp-C], eax 004615FC 68 66944000 push 00409466 00461601 FF75 F4 push dword ptr [ebp-C] 00461604 E8 F637FFFF call 00454DFF 00461609 83C4 08 add esp, 8 0046160C 83F8 00 cmp eax, 0 0046160F B8 00000000 mov eax, 0 00461614 0F95C0 setne al 00461617 8945 F0 mov dword ptr [ebp-10], eax 0046161A 8B5D F4 mov ebx, dword ptr [ebp-C] 0046161D 85DB test ebx, ebx 0046161F 74 09 je short 0046162A 00461621 53 push ebx 00461622 E8 6E7D0000 call 00469395 00461627 83C4 04 add esp, 4 0046162A 837D F0 00 cmp dword ptr [ebp-10], 0 0046162E 0F84 58030000 je 0046198C 00461634 68 00000000 push 0 00461639 BB C4060000 mov ebx, 6C4 0046163E E8 5E7D0000 call 004693A1 ; 计算机器码 00461643 83C4 04 add esp, 4 00461646 8945 FC mov dword ptr [ebp-4], eax 00461649 837D FC 00 cmp dword ptr [ebp-4], 0 0046164D 0F84 94010000 je 004617E7 00461653 68 01030080 push 80000301 00461658 6A 00 push 0 0046165A 68 AF727B0C push 0C7B72AF 0046165F 68 01030080 push 80000301 00461664 6A 00 push 0 00461666 FF75 FC push dword ptr [ebp-4] 00461669 68 02000000 push 2 0046166E BB CC000000 mov ebx, 0CC 00461673 E8 297D0000 call 004693A1 ; 关键call,计算真码 00461678 83C4 1C add esp, 1C 0046167B 68 01030080 push 80000301 00461680 6A 00 push 0 00461682 50 push eax 00461683 68 01000000 push 1 00461688 BB 68010000 mov ebx, 168 0046168D E8 0F7D0000 call 004693A1 00461692 83C4 10 add esp, 10 ; 此处可作内存注册机 00461695 8945 F0 mov dword ptr [ebp-10], eax 00461698 8B45 F0 mov eax, dword ptr [ebp-10] 0046169B 50 push eax 0046169C 8B5D F8 mov ebx, dword ptr [ebp-8] 0046169F 85DB test ebx, ebx 004616A1 74 09 je short 004616AC 004616A3 53 push ebx 004616A4 E8 EC7C0000 call 00469395 004616A9 83C4 04 add esp, 4 004616AC 58 pop eax 004616AD 8945 F8 mov dword ptr [ebp-8], eax 004616B0 6A FF push -1 004616B2 6A 08 push 8 004616B4 68 D30A0116 push 16010AD3 004616B9 68 30020152 push 52010230 004616BE E8 EA7C0000 call 004693AD 004616C3 83C4 10 add esp, 10 004616C6 8945 F4 mov dword ptr [ebp-C], eax 004616C9 8B45 F8 mov eax, dword ptr [ebp-8] 004616CC 50 push eax 004616CD FF75 F4 push dword ptr [ebp-C] 004616D0 E8 2A37FFFF call 00454DFF ; 真假码比较 004616D5 83C4 08 add esp, 8 004616D8 83F8 00 cmp eax, 0 004616DB B8 00000000 mov eax, 0 004616E0 0F94C0 sete al 004616E3 8945 F0 mov dword ptr [ebp-10], eax 004616E6 8B5D F4 mov ebx, dword ptr [ebp-C] 004616E9 85DB test ebx, ebx 004616EB 74 09 je short 004616F6 004616ED 53 push ebx 004616EE E8 A27C0000 call 00469395 004616F3 83C4 04 add esp, 4 004616F6 837D F0 00 cmp dword ptr [ebp-10], 0 004616FA 0F84 A4000000 je 004617A4 ; 关键跳 00461700 68 04000080 push 80000004 00461705 6A 00 push 0 00461707 8B45 F8 mov eax, dword ptr [ebp-8] 0046170A 85C0 test eax, eax -------------------------------------------------------------------------------- 【经验总结】 1、VC++与E语言混合编程,直接在相应区段下断能快速定位到注册算法处 2、此方法是否可推而广之,未及测试,还请各位大侠多多指教:) |
地主 发表时间: 07-04-07 23:01 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号