maomaoma 发表于 2007-3-27 10:42:15

一种破解思路

【文章标题】: 一种破解思路
【软件名称】: 国产某游戏平台
【软件大小】: 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、此方法是否可推而广之,未及测试,还请各位大侠多多指教:)

--------------------------------------------------------------------------------

风飘雪 发表于 2007-3-30 15:16:20

不能算新 多年前就有了

王子 发表于 2007-12-5 16:18:39

再学习一下。哈哈。

阳小子 发表于 2007-12-5 17:32:50

学习了,还可以用F12暂停法!

blitz 发表于 2007-12-14 21:13:41

不晓得这种方法的适用范围?.

蒙文软件 发表于 2007-12-15 14:43:49

这种方法没弄过,

梦晰 发表于 2007-12-15 14:47:45

E语言现在也这样强大,很值得期待。

zsl01 发表于 2008-9-18 15:17:58

再学习一下/:001 /:001

lzgko 发表于 2008-9-18 16:24:07

【经验总结】
1、VC++与E语言混合编程,直接在相应区段下断能快速定位到注册算法处
2、此方法是否可推而广之,未及测试,还请各位大侠多多指教:)
易现在的功能已经很强了,易和VC太像了

lixy8888 发表于 2008-9-20 20:17:34

很久以前的东西了
页: [1] 2 3
查看完整版本: 一种破解思路