水果忍者pc版《3DM-Fruit Ninja HD-CHS-full》 fruit.bin zip解压密码分析

无聊耍水果忍者,对于这类单击游戏,习惯性产生一个想法,作弊- –

安装目录下有个文件fruit.bin,越43M,除此之外,没有什么敏感性文件。应该是存储了水果忍者用到的主要资源文件等物质。随便拿个winrar尝试打开,居然正常打开文件- -,果然猜的没错,不过文件被加密了。揪心。。。

由于最初安装程序,启动的时候,提示无法找到zlib1.dll,后经过一番百度,google,确认,该程序采用zlib库对zip文件进行解压处理

基本思路:既然文件被加密,那么,无论怎么样,程序要解压的时候,一定要告诉zlib库解压密码,否则,他自己就不能解压出需要的资源文件。所以只要找到程序设置zlib解压密码的地方,不出意外,应该能找到明文密码。继续- –

于是准备工具,OllyDbg,notepad++

首先OllyDbg打开FruitNinja.exe,个人习惯问题,将所有反汇编出来的代码复制到txt文档,采用notepad++分析

一段时间过去,找到如下代码

0042FDD2   |.  50            push eax                                 ; /Arg3
0042FDD3   |.  33FF          xor edi,edi                              ; |
0042FDD5   |.  57            push edi                                 ; |Arg2 => 00000000
0042FDD6   |.  68 2CBD5400   push FruitNin.0054BD2C                   ; |Arg1 = 0054BD2C ASCII “fruit.bin”
0042FDDB   |.  897C24 24     mov dword ptr ss:[esp+24],edi            ; |
0042FDDF   |.  E8 4CAF0200   call FruitNin.zip_open                   ; zip_open
0042FDE4   |.  83C4 0C       add esp,0C
0042FDE7   |.  68 D8BC5400   push FruitNin.0054BCD8                   ;  ASCII “f83j#j;.!nZ+94(mB523+=+*vaeuq4TyU2bxoe,bcuy%zXz3719#YDWb531&^724h3#12b34”
0042FDEC   |.  50            push eax
0042FDED   |.  8946 0C       mov dword ptr ds:[esi+C],eax
0042FDF0   |.  E8 5BBB0200   call FruitNin.zip_set_default_password

这段代码大致意思,采用zip方式打开文件(当然,这个函数名他自己定义的),后面紧跟了一句,设置默认密码。这个应该就是传说中的密码了吧,也太长了点- –

直接用winrar解压fruit.bin,输入密码

f83j#j;.!nZ+94(mB523+=+*vaeuq4TyU2bxoe,bcuy%zXz3719#YDWb531&^724h3#12b34

成功解压。(不同版本的也许会不一样,这个就要看反汇编出来的代码了)

现在资源文件已经成功获取,要思考如果修改达到作弊的目的了,好比修改水果分值之类的,只是一个思路。

代码写久了,偶尔搞搞逆向分析,有点意思。有兴趣的可以一起研究,分享下经验。

文章知识点与官方知识档案匹配,可进一步学习相关知识C技能树首页概览113281 人正在系统学习中

来源:hkNaruto

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2012年1月11日
下一篇 2012年1月11日

相关推荐