一种破解思路
【文章标题】: 一种破解思路【软件名称】: 国产某游戏平台
【软件大小】: 2544KB
【下载地址】: 无
【加壳方式】: 无
【保护方式】: 无
【编写语言】: Microsoft Visual C++ 6.0
【使用工具】: OD
【操作平台】: WinXP
【软件介绍】: 游戏平台
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
一种简易下断方法
1、Peid检测为Microsoft Visual C++ 6.0 ,查区段存在.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 , 0
004615DC C745 F8 0000000>mov dword ptr , 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 , eax
004615FC 68 66944000 push 00409466
00461601 FF75 F4 push dword ptr
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 , eax
0046161A 8B5D F4 mov ebx, dword ptr
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 , 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 , eax
00461649 837D FC 00 cmp dword ptr , 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
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 , eax
00461698 8B45 F0 mov eax, dword ptr
0046169B 50 push eax
0046169C 8B5D F8 mov ebx, dword ptr
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 , 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 , eax
004616C9 8B45 F8 mov eax, dword ptr
004616CC 50 push eax
004616CD FF75 F4 push dword ptr
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 , eax
004616E6 8B5D F4 mov ebx, dword ptr
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 , 0
004616FA 0F84 A4000000 je 004617A4 ; 关键跳
00461700 68 04000080 push 80000004
00461705 6A 00 push 0
00461707 8B45 F8 mov eax, dword ptr
0046170A 85C0 test eax, eax
--------------------------------------------------------------------------------
【经验总结】
1、VC++与E语言混合编程,直接在相应区段下断能快速定位到注册算法处
2、此方法是否可推而广之,未及测试,还请各位大侠多多指教:)
-------------------------------------------------------------------------------- 不能算新 多年前就有了 再学习一下。哈哈。 学习了,还可以用F12暂停法! 不晓得这种方法的适用范围?. 这种方法没弄过, E语言现在也这样强大,很值得期待。 再学习一下/:001 /:001 【经验总结】
1、VC++与E语言混合编程,直接在相应区段下断能快速定位到注册算法处
2、此方法是否可推而广之,未及测试,还请各位大侠多多指教:)
易现在的功能已经很强了,易和VC太像了 很久以前的东西了