首页
社区
课程
招聘
新手请教破解程序的问题.(问题有点多,请教各位大大)
发表于: 2010-2-10 14:08 6628

新手请教破解程序的问题.(问题有点多,请教各位大大)

2010-2-10 14:08
6628
各位看雪的朋友,大家新年好..这几天一直在调试这个外挂程序,现在把这几天遇到的问题总结一下,望懂的朋友给我们这些初学者指点一下,小弟不胜感激,这里也要感谢前面那几位帮忙的论坛朋友(特别是卧槽,给我提示了一下怎么找到那些字符串)!

这次上传的附件里面附带了游戏的3个文件,能登陆运行到验证完帐号,然后在

004B9889  |.  8BC3          mov     eax, ebx
004B988B  |.  E8 04ECFFFF   call    004B8494                         ;  启动游戏

运行游戏时就会出错(帐号的验证是在更前的004B9266开始,下面有代码),所以你们要调试的话就能调试出帐号验证的过程,这也是我很头疼的问题..要查找字符串的话要先跳转到00401000,不然那些字符串都是看不到的.

首先说一下该程序执行的过程:设置完游戏路径,输入帐号后点登陆就开始验证游戏的路径是否正确,正确就连接网络,根据返回的数据封包进行验证,如果验证通过就对游戏目录下的Droiyan Online.ini进行写入登陆外挂时的ID(Droiyan Online.ini文件里有个ID=xxx),启动游戏,进入游戏就开始验证帐号是否跟登陆外挂时的帐号一致,如果一致就启动内挂,不一致就出错或不启动内挂.
大概步骤就是这样子,而且在登陆外挂的时候如果将Droiyan Online.ini文件设置为只读的话,就会出错,在这里我想能不能在写入ID的时候自己注入一段代码将Droiyan Online.ini文件修改要写入的帐号,不过现在还不懂,自己实现不了.

接下来我就说一下那些遇到的问题:在载入程序后运行程序,我在00404c58设置了断点,第一次运行,会在此处中断,而且这段代码在执行的时候经常会调用到,堆栈里经常都有一些奇怪的字符串,我搞不懂是用来做什么的,能不能请懂的人说一下这段代码的作用是来做什么?代码段:00404c58到00404c80.

启动完程序后,输入帐号(新帐号有一天试用时间)点启动游戏就会从004B9234 开始验证帐号(我在这里跟了很久,我试过用过期的号登陆,如果直接跳过验证是能启动外挂,但是到进入游戏的时候外挂就会出错,会出现内存的读取错误,估计应该是刚开始分配的堆栈有问题),所以我猜测是在一下这段代码里通过调用子程序来验证帐号
004B9266  |.  E8 05A1F4FF   call    00403370
004B926B  |.  B8 5A000000   mov     eax, 5A
004B9270  |.  E8 23A1F4FF   call    00403398
004B9275  |.  8BF0          mov     esi, eax
004B9277  |.  83C6 0A       add     esi, 0A
004B927A  |.  8D55 F0       lea     edx, dword ptr [ebp-10]
004B927D  |.  8B83 A0030000 mov     eax, dword ptr [ebx+3A0]
004B9283  |.  E8 785FF9FF   call    0044F200
004B9288  |.  8B45 F0       mov     eax, dword ptr [ebp-10]          ;  帐号
004B928B  |.  8D55 FC       lea     edx, dword ptr [ebp-4]
004B928E  |.  E8 39FEF4FF   call    004090CC                      ; 此处将帐号转换为大写
004B9293  |.  8D45 F8       lea     eax, dword ptr [ebp-8]
004B9296  |.  50            push    eax
004B9297  |.  0FB645 F7     movzx   eax, byte ptr [ebp-9]
004B929B  |.  50            push    eax
004B929C  |.  8BCE          mov     ecx, esi
004B929E  |.  8BD7          mov     edx, edi
004B92A0  |.  8B45 FC       mov     eax, dword ptr [ebp-4]           ;  帐号
004B92A3  |.  E8 4C29FEFF   call    0049BBF4                    ;   此处估计是用于验证的子程序
004B92A8  |.  84C0          test    al, al

跟入004090CC的时候里面有很多的重复运算,在跟踪的时候发现帐号在这里被转换成大写,这里我也不是很懂到底是用来做什么的,猜测是在这里的作用是将所有的字符转换大写,只有在004090D9猜测是用来获取帐号长度,其他都看不明白,几个子程序也跟不出个所以然,这里望高手指教一下.

在0049BC3B到0049BDA7这段代码的作用也不是很懂,特别是那些字符串,看不懂是什么意思,特别是在

0049BC86  |.  BA F8BD4900   mov     edx, 0049BDF8                    ;  rh123
0049BC8B  |.  B8 08BE4900   mov     eax, 0049BE08                    ;  100207
0049BC90  |.  E8 0B040000   call    0049C0A0



0049BCE8  |.  BA F8BD4900   mov     edx, 0049BDF8                    ;  rh123
0049BCED  |.  B8 58BE4900   mov     eax, 0049BE58                    ;  999999
0049BCF2  |.  E8 A9030000   call    0049C0A0

的RH123跟那几个数字不知道是用来做什么,越看越乱,还有

0049BD1D  |.  B8 18BE4900   mov     eax, 0049BE18                    ;  checkuser2.asp?param1=%s¶m2=%s¶m3=%s¶m4=%s

也不知道是什么作用.


00404C58  /$  85D2          test    edx, edx
00404C5A  |.  74 0A         je      short 00404C66
00404C5C  |.  8B4A F8       mov     ecx, dword ptr [edx-8]
00404C5F  |.  41            inc     ecx
00404C60  |.  7E 04         jle     short 00404C66
00404C62  |.  F0:FF42 F8    lock inc dword ptr [edx-8]
00404C66  |>  8710          xchg    dword ptr [eax], edx             ;  
00404C68  |.  85D2          test    edx, edx
00404C6A  |.  74 14         je      short 00404C80                   ;  
00404C6C  |.  8B4A F8       mov     ecx, dword ptr [edx-8]
00404C6F  |.  49            dec     ecx
00404C70  |.  7C 0E         jl      short 00404C80
00404C72  |.  F0:FF4A F8    lock dec dword ptr [edx-8]
00404C76  |.  75 08         jnz     short 00404C80
00404C78  |.  8D42 F8       lea     eax, dword ptr [edx-8]
00404C7B  |.  E8 C0E2FFFF   call    00402F40
00404C80  \>  C3            retn
这段代码不管是启动的时候或是登陆的时候,都能看到许多的字符串,在连接网络的过程(像ASCII "HTTP/1.1 200 OK’)都能看得到,而且登陆成功最后会在

0049BB52  |.  8B16          mov     edx, dword ptr [esi]             ;
看到一大串字符串:
堆栈 ds:[0012F4FC]=00BCFE38, (ASCII "[[YD31D9A21A51ADFF1F33551BBC647F6A25ADE4836261D0465D44521160C72E6432A100D69DE453B2F0B62D82010-2-20 3:54:18]]")
edx=00BCFDB8, (ASCII "http://dr.51fuzhu.com/CheckUser2.asp?Param1=41C747A0DC1234C521&Param2=12110908080B10&Param3=1417&Param4=AB8D8E")

上面的那些代码是在成功登陆的时候才会出现这样的字符串,如果帐号已经试用过的话就会出现一个[[N]]字符,我试过在内存中直接修改这些字符串,但是还是登陆不了,不知道是哪里出问题.

现在遇到的问题大概就是这些, 还有在破解像这种需要通过网络验证的程序要从哪里下手比较合适,能不能跳过网络连接那一步?我刚接触破解不久,还有很多不懂,希望有经验的人给一些指点,小弟不胜感激!

重新传的文件:
JZ918vip.part1.rar
JZ918vip.part2.rar

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (27)
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
所有图片无效
2010-2-10 14:13
0
雪    币: 133
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
很抱歉,第一次在这里发贴,还有很多不懂.
2010-2-10 15:07
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
1、肯定是从EXE下手
2、看是程序领空还是DLL领空,打开OD的"查看"->"内存"项就可以看得很清楚
2010-2-10 16:56
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
好好学下使用OD吧,不要求快
2010-2-10 16:57
0
雪    币: 28
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
谁用谁知道····
2010-2-10 18:12
0
雪    币: 133
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
恩,我是拿这程序来尝试,今天在找OD的资料,结果发现好多插件跟脚本,基本什么都不懂,看那么多书,现在终于知道什么是纸上谈兵了...请教一下插件跟脚本各有什么用途,哪里有关于OD比较多的资料吗?
2010-2-10 18:30
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
插件和脚本的不同之处就是,前者直接基于OD,后者基于OD的插件,功能上基本差异没多少,就是脚本效率肯定低太多了
2010-2-10 19:13
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
但脚本有许多功能替你做好了,而插件都要自已一步一步实现
2010-2-10 19:14
0
雪    币: 20
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
新手求邀请码,谢谢    QQ:525259028
2010-2-11 23:19
0
雪    币: 133
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
BS一下LS...这两天在看一些OD的资料,感谢几位的帮忙..现在还有很多不懂,估计要花很长时间才有可能把这东东破掉...

这里我想请教一下,我是想通过提示框的字符来查找判断的代码段,如果显示提示框的时候里面那些中文字符搜索不到,那是不是被加密过?
2010-2-12 19:59
0
雪    币: 56
活跃值: (276)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
先好好学习使用od吧
2010-2-12 20:24
0
雪    币: 203
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
没软件?好好学习
2010-2-12 20:40
0
雪    币: 1632
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
祝大家新年快乐!友情支持下,希望先学习好OD的使用。
2010-2-12 20:52
0
雪    币: 87
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
能熟练的使用OD能解决很多问题
2010-2-12 21:13
0
雪    币: 133
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
现在是在学习OD,不过还是有很多代码看不懂,软件我传上来了,总是找不到突破口,我是想通过提示框的字符来查找判断的代码段,如果显示提示框的时候里面那些中文字符搜索不到,那是不是被加密过?
2010-2-13 11:07
0
雪    币: 89
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
没游戏不好意思,不能帮你测试了。不过还是可以看出些端倪的。
直接载入查不出字符串.
你可以Ctrl+G,跳转到00401000
查字符串,可以查出来。
到这里你应该可以知道了下一步该怎么做了。

如果我没猜错的话
004B8F4F   /75 52           jnz short 52.004B8FA3
004B8F51   |8B45 F8         mov eax,dword ptr ss:[ebp-8]
004B8F54   |BA 08924B00     mov edx,52.004B9208                      ; g
004B8F59   |E8 8AC0F4FF     call 52.00404FE8
004B8F5E   |74 0F           je short 52.004B8F6F                              |这里也是。
004B8F60   |8B45 F8         mov eax,dword ptr ss:[ebp-8]
004B8F63   |BA 14924B00     mov edx,52.004B9214                      ; n
004B8F68   |E8 7BC0F4FF     call 52.00404FE8
004B8F6D   |75 34           jnz short 52.004B8FA3                            | 这里是关键
004B8F6F   |A1 70F54B00     mov eax,dword ptr ds:[4BF570]
004B8F74   |8B00            mov eax,dword ptr ds:[eax]
004B8F76   |C680 6E050000 0>mov byte ptr ds:[eax+56E],1
004B8F7D   |6A 40           push 40
004B8F7F   |68 D0914B00     push 52.004B91D0                         ; 提示
004B8F84   |68 18924B00     push 52.004B9218                         ; 外挂使用期限已到,请充值!
004B8F89   |8B45 F4         mov eax,dword ptr ss:[ebp-C]
004B8F8C   |E8 57E3F9FF     call 52.004572E8
004B8F91   |50              push eax
004B8F92   |E8 59E9F4FF     call <jmp.&user32.MessageBoxA>
004B8F97   |A1 28F84B00     mov eax,dword ptr ds:[4BF828]
004B8F9C   |8B00            mov eax,dword ptr ds:[eax]
004B8F9E   |E8 F954FBFF     call 52.0046E49C
2010-2-14 17:00
0
雪    币: 133
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
感谢 卧槽 的指点,这几天才能进行断点测试,不过你说的那几个关键只是其中之一而已,如果帐号是新帐号或是试用过的帐号都不会运行到上面那段代码,而是跳到另外一段,所以我猜测是在更前的代码里进行验证的..
2010-2-19 22:52
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
是四冲记牌器外挂吗?
2010-2-20 15:52
0
雪    币: 15
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
期待高人解答
2010-2-20 18:35
0
雪    币: 215
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
你先试一下再连接网络那里下断点,看一下它是怎么根据返回的数据进行判断的.
2010-2-22 09:28
0
雪    币: 215
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
该外挂更新了?现在不能试用,LZ你另想办法,或用一个能登陆的帐号给大家调试...
2010-2-22 12:20
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qml
23
我也是新手,不过你比我强多了。。。
2010-2-22 12:44
0
雪    币: 436
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
我也是个新手,不断学习中
2010-2-22 19:36
0
雪    币: 133
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
还是结贴算了,花点时间自己继续研究破解..也是自己的水平太菜了,谢谢前面那些人的帮忙,..
2010-2-23 09:51
0
游客
登录 | 注册 方可回帖
返回
//