Reversing.kr Direct3D FPS

直接上图,经典第一人称射击游戏,不过这走路也走的太慢了。

有点像玩我的世界的既视感,再附一张妹子图,话说长着这么漂亮一定是一个男孩子。

国际惯例,用od打开,搜索字符串,

这个很明了,Game Over和Game Clear。肯定就是游戏失败和游戏胜利。我们跟随Game Clear。

看到没有,这里弹窗的文本被加密了,跟随到数据窗口,这个加密后的字符总共有52字节大小。解密该段数据时肯定要访问这段内存,在00d47028下个硬件访问断点,大小随意,都可以断下的。

然后运行,开始打怪升级,打死几个怪,然后OD断下停在pop ecx的位置,这里的代码段解密数据的代码了。

我们可以看出这是一个简单异或加密,没有用到循环,表示这里只解密一个字节。根据这算法用python写个脚本代码如下

for i in range(0,52):
 text = chr( (byte_47028+i)^(byte_49184+i*0x210))

需要操作两个数,但是xorkey存放在不连续的内存,需要动态获取,用IDA写python脚本解密比较方便。IDA在0xD43400 解密代码处下断。

运行脚本

print bytearray( [(Byte( 0xd47028+i )^Byte(0xd49184+(i*0x210))) for i in range(52)] )

×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
,