请教大神网页游戏wpe封包解密加密算法解密思路!

【原创】游戏封包之封包解密——游戏call解密 - 看雪安全论坛
『软件调试逆向』 [综合性论坛]本版讨论的主题包括:调试逆向、系统底层、商业保护、虚拟机保护、.NET平台等安全相关的话题。
该主题: "【原创】游戏封包之封包解密——游戏call解密" 因在一定的时间里没有任何回复而自动关闭。如果您还对该主题感兴趣或者想参与对此主题的讨论,请您重新发表一篇相关的新主题。
注册日期: Nov 2010
现金: 141 Kx
获感谢文章数:2获会员感谢数:7
, 22:12:07
【原创】游戏封包之封包解密——游戏call解密
现在大部分游戏的封包都采用了加密,异或加密方式,封包加密方式,但是真正要分析出他到底怎么加的密还是挺麻烦的,而且对于那些数据感觉特头痛。。。。。。。。。
感谢 kwting 此篇文章之用户:
注册日期: Nov 2010
现金: 141 Kx
获感谢文章数:2获会员感谢数:7
, 22:45:09
【原创】【原创】游戏封包之封包解密——游戏call解密
现在大部分游戏的封包都采用了加密,异或加密方式,封包加密方式,但是真正要分析出他到底怎么加的密还是挺麻烦的,而且对于那些数据感觉特头痛。。。。。。。。。
&&既然封包加密,那么必然会有加密的处理程序,那么如果我们在数据加密之前把明文读出来那么加了密的数据对于我们来说就不算是密了。。。。。
&下面我用一个找棋牌游戏的call&来向大家讲游戏是如何加密的。。。具体加密方法在这里我不分析(人太懒了)
&&我找的是抢位置的call&&&大家都知道位置肯定有2个关键参数&&一个是多少桌,一个是哪个位子
&&首先我们用od&加载游戏&&不用说找这种加密封包数据的call&下的是bp&send&&断点screen.width*0.6) {this.width=screen.width*0.6;this.alt='';this.onmouseover=this.style.cursor='pointer';this.onclick=function(){window.open('/attachment.php?attachmentid=58441&stc=1&d=')}}" />
&&返回到上级call&
screen.width*0.6) {this.width=screen.width*0.6;this.alt='';this.onmouseover=this.style.cursor='pointer';this.onclick=function(){window.open('/attachment.php?attachmentid=58442&stc=1&d=')}}" />
&好了,。。现在我们开始分析数据。。。。。。。。。。。。。。。。。。。。。
&&当我wS_send32&这里下断点&断下来的时候&&&
&&screen.width*0.6) {this.width=screen.width*0.6;this.alt='';this.onmouseover=this.style.cursor='pointer';this.onclick=function(){window.open('/attachment.php?attachmentid=58443&stc=1&d=')}}" />&
&我们可以看到坐下方的数据&&一大堆&不知道是什么。。。。也不关心&&我强的位置是&19&桌&2&号
&在软件中应该是&18&,1&这2个数据才对。。。。但是看了一下没看到,。。。没找到这2个相关的数据,。。。。算了&不找了。(这个是我之前写的一个软件&这里发帖也就没具体分析了)
&&我换一个位置&向服务器发出的数据时改变了的&&&但是存放该数据的地址&都不变&&在我这个游戏中是在&dd&&edi&中。。。这个根据游戏而定了
&既然数据变了,但是地址没变。。直接下个内存断点。。。。在该地址下一个内存写入断点&&,断在了screen.width*0.6) {this.width=screen.width*0.6;this.alt='';this.onmouseover=this.style.cursor='pointer';this.onclick=function(){window.open('/attachment.php?attachmentid=58444&stc=1&d=')}}" />
&取消内存断点
026B369B&&&&81FA&&&&cmp&edx,0x32000
026B36A1&&&&7D&34&&&&&&&&&&&jge&short&BD_NetWi.026B36D7
026B36A3&&&&8D7C18&04&&&&&&&lea&edi,dword&ptr&ds:[eax+ebx+0x4]
026B36A7&&&&8BC1&&&&&&&&&&&&mov&eax,ecx
026B36A9&&&&C1E9&02&&&&&&&&&shr&ecx,0x2
026B36AC&&&&8D7424&1C&&&&&&&lea&esi,dword&ptr&ss:[esp+0x1C]
026B36B0&&&&F3:A5&&&&&&&&&&&rep&movs&dword&ptr&es:[edi],dword&ptr&ds:[esi]&&&&&&&&&&;&断在这里了
026B36B2&&&&8BC8&&&&&&&&&&&&mov&ecx,eax
026B36B4&&&&83E1&03&&&&&&&&&and&ecx,0x3
026B36B7&&&&F3:A4&&&&&&&&&&&rep&movs&byte&ptr&es:[edi],byte&ptr&ds:[esi]
026B36B9&&&&8BB3&&&&mov&esi,dword&ptr&ds:[ebx+0x64030]
026B36BF&&&&8B4C24&10&&&&&&&mov&ecx,dword&ptr&ss:[esp+0x10]
026B36C3&&&&8B93&&&&mov&edx,dword&ptr&ds:[ebx+0x64078]
026B36C9&&&&53&&&&&&&&&&&&&&push&ebx
026B36CA&&&&03F1&&&&&&&&&&&&add&esi,ecx
026B36CC&&&&6A&03&&&&&&&&&&&push&0x3
026B36CE&&&&89B3&&&&mov&dword&ptr&ds:[ebx+0x64030],esi
&rep&movs&dword&ptr&es:[edi],dword&ptr&ds:[esi]&&&&
这句话就是把[esi]&中的数据复制到【edi】这个地址里面&&
这里我们返回到调用这段代码的call&看看,,。。。应该上级call&就是加密的call&了(这个因程序而定)
screen.width*0.6) {this.width=screen.width*0.6;this.alt='';this.onmouseover=this.style.cursor='pointer';this.onclick=function(){window.open('/attachment.php?attachmentid=58445&stc=1&d=')}}" />&晕上级call&的代码成这个了。。。没关系&用od&分析一下代码应该就行了screen.width*0.6) {this.width=screen.width*0.6;this.alt='';this.onmouseover=this.style.cursor='pointer';this.onclick=function(){window.open('/attachment.php?attachmentid=58446&stc=1&d=')}}" />&od&分析了一下数据就恢复正常显示了
在这个call&下断点
screen.width*0.6) {this.width=screen.width*0.6;this.alt='';this.onmouseover=this.style.cursor='pointer';this.onclick=function(){window.open('/attachment.php?attachmentid=58447&stc=1&d=')}}" />
我们看看堆中的数据,,,,我抢的位置是&25&,1&十六进制应该是&19&,1&&
screen.width*0.6) {this.width=screen.width*0.6;this.alt='';this.onmouseover=this.style.cursor='pointer';this.onclick=function(){window.open('/attachment.php?attachmentid=58448&stc=1&d=')}}" />
001900&&///桌号
00115B8C&&&//&第几号。。。。他是逆时针开始计数的&所以就该是&19&,4&&
00115B9C&&
这里就找到了游戏的加密call&了&既然加密的call&都找到了&那么下面加密的具体方式就自己去分析吧
由于我不需要解密&所以我直接调用这个call&吧参数传进去后就行了。。。那么这个call&的返回值就是加密后的数据了。。。放到哪个寄存器里指向的地址就自己分析吧,。。。。
我最近写一款456棋牌游戏的抢位置软件&由于我发现他在call&&ws_send32&的时候存放发包的地址都不一样。。。。。。我就把包中的数据提出来。用ce&查找多过滤几次&&就找到一个地址是存放发包的数据的。。。于是在那个地址下写入断点&&然后向上找。。具体分析几下就能找到最初的加密call&了&有的时候会有几层加密所以要多向上找几次。。。。。。。。。
找到加密call&后那我们怎么才能利用它呢?&有2中可能。。。在这个call&里面就有发包函数。。。直接调用这个call&就行了。。。。
或者这个只是对数据进行加密。。。不发包。。那么我们调用这个call&把返回的数据再自己想办法发送就行了
上传的缩略图
注册日期: Nov 2007
现金: 243 Kx
获感谢文章数:1获会员感谢数:1
, 23:01:55
我以为是动画教程呢
注册日期: Nov 2007
现金: 243 Kx
获感谢文章数:1获会员感谢数:1
, 23:02:47
你发重复了?
注册日期: Sep 2010
现金: 479 Kx
获感谢文章数:21获会员感谢数:28
, 23:16:34
注册日期: Jan 2008
现金: 379 Kx
获感谢文章数:6获会员感谢数:7
, 00:47:54
真好,正适合我这样从没接触过挂的新手学习,谢谢&
注册日期: Jan 2008
现金: 379 Kx
获感谢文章数:6获会员感谢数:7
, 00:48:48
重复了?...
注册日期: Nov 2010
现金: 141 Kx
获感谢文章数:2获会员感谢数:7
, 01:33:06
那个没写完就发表了,,,,确实抱歉。。。
注册日期: Jan 2011
现金: 577 Kx
获感谢文章数:0获会员感谢数:0
, 11:44:35
感谢lz分享。
注册日期: Dec 2006
现金: 317 Kx
获感谢文章数:2获会员感谢数:2
, 10:28:59
你这种只需要用一个方法就可以秒杀
逻辑线程打包,&转给专门的发送线程去发送,&你断send看到的是个发送循环而已
注册日期: Jul 2005
现金: 141 Kx
获感谢文章数:0获会员感谢数:0
, 12:07:18
我OD找SEND
然后IDA去看逻辑。。。。IDA有个反汇编成C语言的。便于掌握游戏的逻辑。
该主题: "【原创】游戏封包之封包解密——游戏call解密" 因在一定的时间里没有任何回复而自动关闭。如果您还对该主题感兴趣或者想参与对此主题的讨论,请您重新发表一篇相关的新主题。
您不可以发表主题
您不可以回复帖子
您不可以上传附件
您不可以编辑自己的帖子
论坛论坛启用
用户控制面板
会员在线状态
看雪CrackMe攻防大赛:防守篇-题目提交区
『看雪众测/众包』
『求助问答』
『经典问答』
『资料导航』
『软件调试逆向』
『密码学』
『编程技术』
『C32Asm』
『MDebug』
『安全工具开发』
『加壳与脱壳』
『CrackMe&ReverseMe』
『资源下载』
『Android 安全』
『Android 开发』
『iOS安全』
『WEB安全』
『漏洞分析』
『外文翻译』
『招聘专区』
『职业生涯』
『15PB培训』
『麦洛克菲培训』
『茶余饭后』
『安全资讯』
『论坛活动』
6)PEDIY Crackme竞赛2009
7)看雪十周年专版
8)腾讯公司2010软件安全竞赛
9)2011 Exploit Me竞赛
『图书项目版』
《加密与解密(第三版)》
《C++反汇编与逆向分析技术揭秘》
《Android软件安全与逆向分析》
『论坛版务』
所有时间均为北京时间, 现在的时间是 .
&&& 看雪学院()
| 提供带宽资源
|&微信公众帐号:单看网游封包,怎么确定加密算法。。封包如何解密。。逆向的方法除外。。--------------------------------------------------------------有能力的话,逆向客户端要比破解封包简单N倍...封包的加密与解密算法的破解_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
封包的加密与解密算法的破解
上传于||文档简介
&&W​P​E​ ​封​包​解​密
你可能喜欢}

我要回帖

更多关于 封包解密工具 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信