滑雪大冒险2.0.5破解之道

来源:互联网 发布:淘宝上可以买烟吗 编辑:程序博客网 时间:2024/05/01 20:26

滑雪大冒险2.0.5破解之道

昨天下载了一个游戏滑雪大冒险,挺好玩的,可惜玩了3把以后,蹦的弹出一个框,要收费,实在是扫我的兴,尼玛,刚好想找个安卓程序练练手,就那你开刀了....

破解安卓程序比Windows程序容易多了,掌握了方法,傻瓜都可以破解,哈哈...下面偶就记录下我破解的过程,算是一个总结吧,有兴趣的朋友可以试试这种方法的效果,算是抛砖引玉吧~

破解环境:apktools+华为G525+Total Command 8.0.

第一步:先把安装包com.DefiantDev.SkiSafari_1005.apk下载下来,包有点大。我下的版本是2.0.5将后缀改成zip,如果可以成功解压的话,则下载的文件是完整的。其实apk文件用的压缩算法就是zip

第二步:反编译apk文件。命令如下:

       Apktool  d  com.DefiantDev.SkiSafari_1005.apk  outputfile

我的目录是hxdmx.

第三步:查找支付成功调用的函数。用TotalCommander查找提示字符串——“支付成功”,查找到有两个文件包含该字符串。

好家伙,中国通信运营商三巨头都在里头。我选择了Unicom,打开看看.

发现里面有个标签:

顺蔓摸瓜,再搜successMessage。找到了5个文件:

一个一个看,发现YgSmsPayAdapterBase里面有一个函数:

.method public static getBillingSuccessMessageKey()Ljava/lang/String;

    .locals 1

    .prologue

    .line 177

    const-string v0, "successMessage"

    return-object v0

.end method

返回值就是successMessage。好的再搜getBillingSuccessMessageKey。找到了2个文件:

打开Yodo14GameSmsPay$2,发现了宝藏:

    .line 178

    :cond_0

    invoke-static {}, Lcom/yodo1/sdk/game/smspay/YgSmsPayAdapterBase;->getBillingSuccessMessageKey()Ljava/lang/String;

这里调用了getBillingSuccessMessageKey()函数,调用者为.method public onSuccess()V。既然有成功,那就有失败,网上搜寻,发现了与之配对的函数:

.method public onFailed()V

按理来说,只要把.method public onSuccess()V里面的内容覆盖.method public onFailed()V函数里的内容,则失败后也会调用成功后的代码,从而进行购买成功后的操作。但是这样的话还要进行打包,再复制签名,挺麻烦的。这里直接使用谷歌的工具dalvik字节码编辑工具。该工具可以浏览安卓系统的目录,并能直接打开apk文件并修改。省去了后续很多繁琐的步骤。但是该工具是一个安卓平台工具。

第四步:将文件拷贝到手机上,并在手机里安装dalvik,然后用dalvik找到apk文件并打开。打开xxx\hxdmx\smali\com\yodo1\sdk\game\Yodo14GameSmsPay$,如下图所示:

点开Methiod,发现有几个函数,如图所示:

打开onSuccess,并将里面的文字复制到onFailed里面。

   

dalvikonSuccess()V的内容复制到onFailed()V里面。

第五步:点击安卓返回键,系统会提示你是否需要保存,点击保存即可。

第六步:测试是否破解成功。

笔者经过上述步骤后在AVD里可以无限制地玩了,说明破解成功。还等什么,赶紧体验一把吧!

爱心提示:在手机上面玩时,记得把飞行模式打开,否则会扣费哦。

 

参考文献:

《Android软件安全与逆向分析》 丰生强著

《破解中国移动android游戏收费》 看雪论坛

 

破解文件下载:只破解了联通版本。

 

无奈,被河蟹了...

 
原创粉丝点击