内购的游戏是小米版的滑雪大冒险,比价有意思的小游戏;通过对滑雪大冒险小游戏综合运用apk逆向、java代码分析、smali分析、动态调试等基础方法。内购破解之前的游戏,地图和道具都需要付费: 首先还是需要使用Androidkiller对apk进行反编译,同时使用JEB获取java源码,但是在本次案例中JEB并不能反编译该apk,原因是内存太小。 因此查看该app对应的源码使用Androidkiller继承的GD-GUI软件,andkiller反编译后如图: 但是该如何下手?如何找到支付相关的模块,有几种思路:观察自带的日志信息、命令行打印出操作界面对应的页面信息,如图: 这里首先去看看日志,在点击支付的时候同时观察日志信息,还是会发现一些有价值的信息: 发现其中疑似支付相关的是:Yodo1PayHelper,startPaycall...,那我们可以查找关键词Yodo1PayHelper、startPay,在查找之后还真有相关的类和方法: .methodpublicpay(Landroid/app/Activity;Ljava/util/List;Ljava/lang/String;DLjava/lang/String;Z)V.locals30.paramp1,"activity"#Landroid/app/Activity;.paramp3,"productId"#Ljava/lang/String;.paramp4,"discount"#D.paramp6,"extraParam"#Ljava/lang/String;.paramp7,"isCheckAccount"#Z.annotationsystemLdalvik/annotation/Signature;value={"(","Landroid/app/Activity;","Ljava/util/List","","L
|