本帖最后由 Sarkozy 于 2014-11-22 19:27 编辑
原软件地址:http://www.yxdown.com/shouji/82887.html 工具:apkide、reflector http://img.blog.csdn.net/20140912103543091?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvU2Fya296eTIwMTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
从smali文件夹中发现了一个MM文件夹,这是典型的移动支付接口。遇到这个直接搜onbillingfinish即可,搜索结果如下图: http://img.blog.csdn.net/20140912103527578?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvU2Fya296eTIwMTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
箭头所指为本次搜索结果中唯一一个method。我们来查看他的java源码: http://img.blog.csdn.net/20140912103720593?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvU2Fya296eTIwMTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
方框中我们看到了,这个onbillingfinish没有任何的判断,难道我们找错了吗?可是这个onbillingfinish就这一个方法啊!仔细看图中红色方框处,发现了一行命令: sendMsgToUnity("onBillingFinish", arrayOfString);
也就是最后执行了这一行命令,简单翻译一下,得出这是向unity发送信息的命令。 翻译为smali代码就是这样: aput-object v3, v1, v2 invoke-virtual {p0, v0, v1}, Lcom/juxiang/game01/mmIAPListener;->sendMsgToUnity(Ljava/lang/String;[Ljava/lang/String;)V
接下来,我们要用到reflector这个工具了。用这个工具打开assembly-csharp文件【不会的请查阅本博客中伊甸分析教程】,如图所示: http://img.blog.csdn.net/20140912104256203?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvU2Fya296eTIwMTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
同样的,既然是移动的支付接口,上文中有说道,目前的MM接口支付判断就是在onbillingfinish,按下F3搜索,记得切换到方法搜索,如图所示: http://img.blog.csdn.net/20140912104432531?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvU2Fya296eTIwMTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
由于字数限制,所以分为两章 下一章:【Android逆向教程】Unity3D付费逆向思路+实例(2) http://www.pd521.com/forum.php?mod=viewthread&tid=57&fromuid=18
|