Android逆向系列1:滑雪大冒险
2017-08-22 本文已影响55人
Henry3II
声明:本文内容只用作学习交流使用,若有人利用本文内容进行任何商业目的和非法牟利,带来的任何法律责任将由操作者本人承担,和本文作者没有任何关系。
这次要破解的软件原始版本和破解后的版本在这里:http://pan.baidu.com/s/1nv7Mpnz,密码:zhuk
首先打开软件,分析软件的行为:
看到购买道具那里需要支付,打开monitor监视该程序行为,在点击商店购买前将logcat信息清空,然后点击购买:
发现一些有用的东西:Yodo14GameSmsPay_SetPayCallback,YgSmsPayAdapterBase。
使用Androidkiller反编译apk文件,搜索下这几个敏感的字符串。
右键查看这部分的java源码,发现敏感的地方:
这里是返回支付结果是否成功的地方:
可以看到listener接口的方法作为参数传入了startPay()。
我们再回过头在AndroidKiller中看看startPay的反编译代码:
可以看到传入的第三个参数为listener,破解的思路就是在调用startPay() 函数时直接传入onSuccess。即在函数开始位置插入如下代码:
invoke-interface {p3}, Lcom/yodo1/sdk/game/Yodo14GameSmsPayListener;->onSuccess()V #调用listener接口的onSuccess()方法
return-void #返回出去
如图:
然后编译,安装。此时可以看到,已经可以直接购买了: