查看原文
其他

Android逆向之一款有缘的apk 第一篇

cjcld 看雪学院 2021-03-07

本文为看雪论坛优秀文章
看雪论坛作者ID:cjcld


‘胆儿肥而美’ 的第一篇其实我已经发过了,戳这里查看:Android逆向之unity3D游戏初探 第一篇


第一部分


机缘巧合下有大佬在微信群在开车,看了下图片网站是个apk,这种类型的apk正好可以作为 ‘胆儿肥而美’ 的基础apk。(上款apk好说是个正规apk,把他代码在网上分析来分析去终归不太好。)


先打开apk,看下如果要看视频的话 是一次买断 还是充值会员的 或者其他乱七八糟的,总之我们要的是既要看视频,而且又不要花钱。



运行后发现每个视频只能观看一定时间,如果要继续看,那么需要充值冲VIP。这个充值在 ‘ 胆儿肥而美 ’ 系列后续篇幅中会给替换成我们的接口,第一步先搞清楚他是怎么限制的,先把限制给去掉,便于在后面添加我们自己的限制。

开始分析!

反编译查看源码:



没加固。查找 ‘vip’ 字符串(你tmd都没看代码,上来直接开查?是的,我猜的,根据前端表现出来的实际情况猜的。上面的充值页面是让我们充值VIP,所以就查 ‘ vip’ 字符)



运气不错,查到上两个关键信息,跟踪后发现调用的地方也特别可疑。



  • 箭头一:判断用户是否是VIP,1:是   非1:不是(修改)

  • 箭头二:VIP时间 - 当前时间 = 剩余时间(修改)

  • 箭头三:显示 vip剩余时间的 天数 和 小时数


总结:结合UserInfoBean的成员变量setXXX、getXXX 方法,虽然还没修改代码,但是基本上就确定了通过setXXX赋值,通过getXXX取值,通过取到的值来走后续的播放逻辑!这就完了?好的,我们继续。

修改相关地方后打开App:



ok,会员剩余时间440天2小时,以上分析全对,结束。打开视频看一下。


还是没对?不要慌,这才是我们的常态,通常一次就成功的很少。

继续:



通过分析,发现set方法是没有调用的,第一反应就是通过反射赋值的?



原来如此,查看了一下JsonTools源码,他的主要作用就是把JsonElement对象转成class对象,但是js数据和class成员必须要一一对应。

查看一下此方法调用情况(如果本地所有有关数据的对象都是通过这类方法来的,那么数据就是直接从服务器上下发到客户端然后直接转成了对象,这样前面不会去走给对象赋值的方法也就说得通了)



还挺多,那就简单了, 直接勾住它,查看本地有那些对象实例化了。



通过逐一分析找到了嫌疑很大的类:




为什么是他而不是其他类?

购买状态如果是0,没有购买,(修改)

是否免费如果是1,则不是免费,(修改)

if(作品没有购买 && 作品不是免费){

  //.....

}



以上就是原因。

修改相关地方后运行App:


后尝试直接修改 getFree_time的返回值也是可以成功的,只是播放时间不会大于具体修改的值:


如我这里修改的是0x547e,播放时长就不会大于它。

好了第一部分结束了,现在我们来聊聊第二部分的话题。

上分析所牵涉的修改的代码并没有列出。

一是我不会放出demoAPK(放了要出事儿 0 0.)

二是调试所用的框架是自己编译的,发出来也没用。主要是列出破解的心路历程,以及如何定位到修改的关键点的。


第二部分:胆儿肥而美


我们重打包了一个App,并取消了他的一些限制,我们还能做些什么?

有人会说 我们还能继续改,加金币,加能力。或许吧。

但是据我所知的,一些人是可以让它产生一定收入的, 这个就需要胆儿肥了。但是的确是有人正在这样做 (反正我是不敢的) 。往后本系列就分析这样做需要哪些要求(仅在技术层面),并可能加以实现。

1. 广告方式。

添加广告接口到重打包的应用,通过千展和点击盈利。



往往重打包的apk已经有广告了,如本apk就是facebook的广告,如果需添加自己的广告,最好的方式就是破解对应的广告sdk,让广告sdk认为我是源apk,还能拿给别人用,爽歪歪。(本apk就是使用的这种方式,不过他所破解的facebook广告现在已经无效了,已经不能使用。一些原因,非本系列重点)

2. 内容付费。

什么内容可以让我付费观看?反正我也不知道。

用上App举例,因为已经去除了他本身的限制,或许可以添加一些我们自己定义的玩法。

如:每天免费播放n次,第n次开始需要付费才能继续播放。本系列往后就以此为模板,相关app的分析工作。

总的来说 按目前使用习惯会牵涉以下接口:

(1)两个大厂指定金额收款二维码即时生成

(2)交易记录的获取

(3)转账。


以上功能所涉及的apk比较特殊,后续的分析也只会列出分析过程,并不会牵涉具体的代码。

好了,本篇完!拜了个拜。


- End -





看雪ID:cjcld

https://bbs.pediy.com/user-880781.htm 

*这里由看雪论坛 cjcld 原创,转载请注明来自看雪社区。



推荐文章++++

*  手把手教你入门V8突破利用

*  Android微信逆向-实现发朋友圈动态

*  病毒样本半感染型分析的方法

*  对宝马车载apps协议的逆向分析研究

*  x86_64架构下的函数调用及栈帧原理


好书推荐





公众号ID:ikanxue
官方微博:看雪安全
商务合作:wsc@kanxue.com



“阅读原文一起来充电吧!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存