首页
社区
课程
招聘
[原创]一种破解思路
2007-3-27 10:40 4417

[原创]一种破解思路

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

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

收藏
点赞0
打赏
分享
最新回复 (4)
雪    币: 108
活跃值: (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
闪电狼 2007-3-27 12:06
2
0
  支持.. 可以试试别的E程序

BTW:确实会断在 注册检验的地方...
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
scuCBJ 2007-3-27 12:17
3
0
易语言的作者确实是人才,可惜功能上差点,开发速度比较慢
雪    币: 817
活跃值: (1927)
能力值: ( LV12,RANK:2670 )
在线值:
发帖
回帖
粉丝
KuNgBiM 66 2007-3-27 12:49
4
0
支持..
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
scship 2007-3-27 13:13
5
0
好,最近研究易语言的很多啊,估计出个专题把易语言一网打尽!
游客
登录 | 注册 方可回帖
返回