哈哈辅助的破解方法已经找到但是本人不精通破解~~~~

社区服务
高级搜索
猴岛论坛综合游戏交流哈哈辅助的破解方法已经找到但是本人不精通破解~~~~
发帖 回复
正序阅读 最近浏览的帖子最近浏览的版块
2个回复

哈哈辅助的破解方法已经找到但是本人不精通破解~~~~

楼层直达
Black_Turn-

ZxID:11215425

等级: 上等兵
举报 只看楼主 使用道具 楼主   发表于: 2010-03-15 0
作者:juckerpp
文件夹内有几个文件,分别是main.dat,start.exe

OD加载start.exe,退出,弹出软件窗口,OD下断CreateProcess,发现其打开的是main.dat,用UE查看main.dat, 原来是个可执行文件被改名了,于是改名为main.exe。

PE查壳 ASPack 2.12 -> Alexey Solodovnikov
直接cooldumper搞定

开始分析
点击登录,出现MessageboxW,未注册用户,窃喜,bp MessageBoxW.
果断断住,看堆栈调用情况

0013F550  0065A066  /CALL 到 MessageBoxW
0013F554  007802CC  |hOwner = 007802CC ('三国哈哈 1.17',class='TLoginForm',parent=018803B2)
0013F558  00C6F33C  |Text = "?,B4,"",D7,"",A2,"",B2,"嵊?,BB,"?
0013F55C  00C76544  |Title = ""D7,"",A2,"意"
0013F560  00000000  \Style = MB_OK|MB_APPLMODAL
0013F564  0013F93C  指向下一个 SEH 记录的指针
0013F568  00546D1F  SE处理程序
0013F56C  0013F5F8
0013F570  0013F798
0013F574  0044E700  dumped_.0044E700
0013F578  00BC67C0  ASCII "pkD"
0013F57C  00000000
0013F580  00000000
0013F584  00000000
0013F588  00000000
0013F58C  00000000
0013F590  00000000
0013F594  00000000
0013F598  00000000
0013F59C  00000000
0013F5A0  00C6F33C  ASCII "*g鑜孮(u7b"
0013F5A4  00C76544
0013F5A8  00000000
0013F5AC  00000000
0013F5B0  00C8AA7C  UNICODE "d00b-207dcdd2"
0013F5B4  00C8AA1C  UNICODE "D00B-207DCDD2"
0013F5B8  00C8AA4C  UNICODE "d00b-207dcdd2"
0013F5BC  00C8EC14  UNICODE "D:\sg117\script\"
0013F5C0  00000000
0013F5C4  00000000
0013F5C8  00000000
0013F5CC  00000000
0013F5D0  00CA581C  UNICODE "D:\sg117\upup.exe"
0013F5D4  00000000
0013F5D8  00CA57E4  UNICODE "D:\sg117\start.exe"
0013F5DC  00C8EC14  UNICODE "D:\sg117\script\"
0013F5E0  00000000
0013F5E4  00CA5774  UNICODE "D:\sg117\updata.exe"
0013F5E8  00000000
0013F5EC  00000000
0013F5F0  00C8A9EC  UNICODE "D00B-207DCDD2"

看到最后面几行有D00b什么的,是软件上提示的机器码。其他没什么营养,先放住不管。
可能我才疏学浅,认为这种外挂一定是网络验证的,所以也没去深究这个D00B什么的,既然MessageBox没看出什么端倪,换方法。

bp send, bp recv全部打好断点

点击登录。断下在bp send ,看发包data,是明文,如下
0013F2A8  |00C214F8  ASCII "GET Http://60.190.222.188:8000/wglogin/wglogin.asp?id=9D1669ADA23091A6F454E45991E4EB2258E2B2DF5B591B9EA8330EFCB1E3BCF8E6CA50C8AA1E6B98F7A78CB1449ADBF6DC2C2DECE8F09C85&port=8020 HTTP/1.1",CR,LF,"Host: 60.190.222.188",CR,LF,"Connection: Ke"...

好长的一段串啊,不管它查下堆栈很容易发现它的组包过程。
几个Unicode串摆在堆栈里面,是由之前的D00B-207DCDD2+我硬盘号+我MAC地址+一个时间数,然后看长度好像将这些参数组合进行了一 次SHA运算,得出的这个串.当然这只是猜想,我认为没必要去跟组包的算法。毕竟网络验证都是通过回包的信息进行各种跳,各种逻辑的。


直接F9跑到recv这里看看,收包明文,如下


0013F274  |0110A048  ASCII "HTTP/1.1 200 OK",CR,LF,"Connection: keep-alive",CR,LF,"Content-Type: text/html",CR,LF,"Content-Length: 20",CR,LF,"Server: Indy/9.00.10",CR,LF,CR,LF,"REG:AAEDGWE29AB8C"

恩服务器回来的包很短REG:AAEDGWE29AB8C

分析一下发包的包值吧,每次发包相同值都是9D1669ADA23091A6F454E45991E4EB2258E2B2DF5B591B
不同点的地方在于后面,如果我每次把不同的值记录下来,发一样的,服务器是否会给我回一样的包呢,测试一下。

使用一次截获的包进行测试F7A78CB1449ADBF6DC2C2DECE8F09C85

013F2A8  |00C214F8  ASCII "GET Http://60.190.222.188:8000/wglogin/wglogin.asp?id=9D1669ADA23091A6F454E45991E4EB2258E2B2DF5B591B9EA8330EFCB1E3BCF8E6CA50C8AA1E6B98F7A78CB1449ADBF6DC2C2DECE8F09C85&port=8020 HTTP/1.1",CR,LF,"Host: 60.190.222.188",CR,LF,"Connection: Ke"...


服务器回的
结果两次完全一致
0013F274  |0110A048  ASCII "HTTP/1.1 200 OK",CR,LF,"Connection: keep-alive",CR,LF,"Content-Type: text/html",CR,LF,"Content-Length: 20",CR,LF,"Server: Indy/9.00.10",CR,LF,CR,LF,"REG:AAED1FAE8829AB8C"

0013F274  |0110A048  ASCII "HTTP/1.1 200 OK",CR,LF,"Connection: keep-alive",CR,LF,"Content-Type: text/html",CR,LF,"Content-Length: 20",CR,LF,"Server: Indy/9.00.10",CR,LF,CR,LF,"REG:AAED1FAE8829AB8C"

由此断定,服务器那边并没有随机算法。客户端和服务器端只有一方进行了随机处理,外挂并没有做双面的随机同步。

那么请各位大牛帮小弟分析一下这样做是否可行?
hook其Send Api,修改验证服务器地址,改写为本地
购买一个正版KEY,截获正确的发包收包的数据,记录
然后每次hook Send将包重组,发给本地服务器,本地服务器返回刚才截获到的正确回包值,是否就可以破解。

追到了一个地方,那个地方将Reg后面的值push进去,但是在里面没进行什么操作就ret了。不知道是不是关键点。

00426FB5    85C0            test    eax, eax
00426FB7    74 05          je      short 00426FBE
00426FB9    83E8 04        sub    eax, 4
00426FBC    8B00            mov    eax, dword ptr [eax]
00426FBE    8BD8            mov    ebx, eax
00426FC0    85DB            test    ebx, ebx
00426FC2    74 16          je      short 00426FDA
00426FC4    8BCB            mov    ecx, ebx
00426FC6    03C9            add    ecx, ecx
00426FC8    8B55 E0        mov    edx, dword ptr [ebp-20]          ; 将 服务器返回信息给edx
00426FCB    8B45 F8        mov    eax, dword ptr [ebp-8]
00426FCE    E8 81C4FDFF    call    00403454


下了内存访问断追到这里。EDX里面保存着服务器返回REG后面的信息,但是不知如何追到比对算法。

xvwenjiao

ZxID:10937066

等级: 上等兵
举报 只看该作者 板凳   发表于: 2010-03-16 0
外G会毁了任何游戏
skulllog

ZxID:10240948

等级: 少将
重庆一区求奶爸。。。最好是人妖

举报 只看该作者 沙发   发表于: 2010-03-15 0
我是程序小白,,你把方法发到黑客论坛请他们破解撒,,
« 返回列表
发帖 回复