学会使用WPE封包破解软件
本帖最后由 520Kelly 于 2016-5-16 22:37 编辑跟着揰掵佲师傅的教程学了一天的Hook 发现看起来so easy 但是自己单独写起来我就不知道怎么动手,都不知道为什么要这样写{:5_118:}
什么返回(CreateWindowExA) 什么局部_Hook变量 什么传值跟缓冲区,一头雾水 也不知道到底为什么要写变量跟返回 {:5_188:}
那就用揰掵佲师傅写的一个课件,玩一玩WPE封包吧,今天也是第一次用WPE,说的不对还请指正一下,求教育{:5_187:}
此为源码(说实话我是写不出来的,我就会写一个信息框),大概的意思就是说 点击按钮一个按钮 然后发送一个key,服务器判断key是否正确
如果key正确就返回一个登录成功的数据给客户端,如果不正确就返回登录失败的数据给客户端
注:大家要这么理解一下:首先是客户端发送key,其次服务器判断key 然后服务器给出判断结果数据,最后传回给客户端
网络验证基本上也是这4步,但是网络验证的key是加密的,除此之外都差不多、
这个时候 WPE这个工具可以改变这些内容,能改的是客户端发送的key跟服务器给出的判断结果数据,这两个都是可以修改的
按照源码来看 客户端只要发送的内容为1234567 服务器就能返回登录成功给客户端,否则就是失败
首先来简单介绍下WPE,WPE三件套:
CCProxy:伪造的本地代理服务器(相当于在你的电脑里面建立了一个服务器)
Easy2Game:代理程序(将程序转到使用代理服务器访问,这样才能拦截到数据)
WPE:拦截程序封包
反正这三件套基本上用在拦截游戏比较多,有的程序隐藏了进程的话 WPE直接是拦截不到进程的,所以用了代理以后,直接拦截代理服务器即可
咱们今天的话,因为用的服务器跟客户端都在一个文件 也没有任何加密措施,直接用WPE即可拦截,目标就是修改客户端发送的key跟返回数据
这里4的意思是开始拦截封包,然后下面有一个过滤器跟发送
过滤器:顾名思义就是过滤东西的(过滤器可以拦截封包,也就是拦截修改封包,比如拦截到的1234567可以改成123456等等)
发送:发送封包,将软件或者服务器的封包进行发送
进行到4以后 我们直接点软件的连接服务器,然后跟着我图上的步骤走就行
这里我一条一条封包解释一下:
1.客户端发送key给服务器,所以第一条是发送
2.服务器接收到key,所以第二条是接收
3.服务器给出判断的结果,所以第三条是发送
4.客户端接收到服务器给出的结果,第四条就是接收
这里因为我们的封包都是没有加密的 所以看到的都是明文,但是坑爹的是好像WPE不能显示中文的明文封包,只能现实出登录成功4个字的16进制
这里的话我们自己用16进制转换到文本就可以了 工具用小生我怕怕的逆向计算器就ok
咱们今天的目的:修改错误key为正确key 发送给服务器让他返回登录成功;修改服务器返回的登录失败为登录成功
那么我们按上面的步骤 抓一遍错误数据按钮的包
我们在第一条数据右键,添加到发送列表
首先错误的数据发送的是6500,所以大小是4个字节,我们要发送的是1234567,大小应该是7个字节,我们把大小改成7
点个确定就可以了,然后我们再在第一条封包里面右键--设置此端口ID的发送列表,意思是说数据原本要发A位置,我们改了以后也发A位置
这里能设置发送的次数 发送的时间间隔 然后我这里出现的问题就是这里新开端口,无论我是填来源还是目标IP,都无效 只能右键--设置此端口ID的发送
我也不知道为什么、、、
ps:(由于源码里面写成了12345467为登录成功,所以我这里改1234567是无效的,但是并不影响我们的步骤,这只是一个意外{:5_185:})
所以按照我们理论的结果来说,点3以后发送,客户端自动会弹一个信息框 客户1:登录成功 也就是说我们把错误的包手工换成了正确包,所以他成功了
未完待续。。。。(下一篇写过滤器的使用)
http://www.ucbug.cc/soft/5708.htmlWPE三件套
大神 学习! 感谢分享学习的思路先收藏着 学习学习 真心不懂这些东西。 我也在看揰掵佲师傅的hook教程,平时可否交流一下学习的经验?也可促进我们之间的浓厚感情{:5_121:} {:5_116:}{:5_116:}收藏,感谢分享 给力的教程 感谢分享学习的思路先收藏着 写了这么一大堆看不懂的字体 还是要赞一个的! 一大早就跟着大神来学习{:5_116:}