安卓逆向入门

Author Avatar
贾康 12月 29, 2017

为什么要学这个.

因为最近加到了亲戚的群里,有个人每天都要发四条广告,实在受不了,即使是屏蔽了群消息,还是会有一个小红点,微信又没有提供完全屏蔽的功能,所以只能自己写个xposed模块来搞一搞了.

为什么是xposed

能想到的方案就两种,1. 改包重新编译,这个有三点不好,微信一升级就得重新搞,签名不一样分享到微信功能就不好使了,而且据说容易封号,2. xposed,唯一的不好就是总得重启.

遇到什么问题?

我首先应该把apk反编译了,找到合适的类和方法来hook,但是第一步就难到了我,反编译出来了5个dex,用dex2jar 转jar包的时候报错,
upload successful
网上搜说是该加些jvm选项.可是加上后仍然报错,于是换jadx试,也是转到一半就进程就死掉了.我想这是微信为了防破解做了些什么事情.但是做了什么事情我就不知到了.所以还是先从基础学起吧.

开始!

我决定先学下改apk,改一个别人的apk可以让我快速了解apk的结构和smali的语法.说干就干,柿子要捡软的捏,我看了一眼手机上的app,决定就挑这个软柿子了.目标为破解vip后重新打包.

过程

先把包扔到apkstudio里边,按照以前在windows上的经验,找提示入口
upload successful.这个柿子果然很软,几乎没有什么保护手段.一路跟到这里
upload successful在smali把返回值中改成1.
upload successful
重新打包,签名,安装.
upload successful

结论

通过一次简单的逆向了解了安卓的逆向的过程,以及smali的语法.发现安卓端的逆向要比windows上简单很多.可能这就是汇编和字节码的区别吧.接下来就是调研微信究竟为了反调试做了哪些事情了.