俗话说:工欲善其事,必先利其器。逆向也是,想要逆向你需要搭好逆向的环境,准备逆向的工具,好用的工具会节省不少时间,站在巨人的肩上你会看的更远。
逆向工具
手机root
Android逆向必要条件是你需要有个Root的手机,最好是真机。没有root的手机,逆向工作很难继续下去,手机的话,能解锁OEM的都可以。手机Root的话一般有以下几步:
- 解锁OEM
- 解锁BootLoader
- 安装Magisk
- 制作root包
- 刷入手机
Android系统的话,不推荐用最新的,因为有的逆向工具没有支持最新版的系统。
反编译工具
反编译工具有很多,老牌的apktool、jeb及一些小众的反编译工具,这里我推荐使用MT文件管理器
,真的很好用,可以提取apk、反编译、查看源码、smali转java,打包签名等,功能很多,使用起来也很方便,美中不足的就是需要开通会员,不过终身会员也很便宜。还是那句话,好的工具可以省很多时间。
Hook工具
Hook的工具也有很多,Android的话有分为jvm层的Hook和native层的Hook。这里我只列举一些我常用的Hook工具
- java层的Hook工具有:算法助手.apk、JSHook.apk,Frida
- native层的Hook工具有:Frida、Unidbg
这些工具都可以在星球中获取。
WebView工具
我这里说的WebView的工具,指的是可以使应用内的H5可以调试,这样就可以使用inspect
来做调试了。
这类的工具有:
- 算法助手.apk
- WebViewPP.apk
抓包工具
抓包工具的话,也分两类,一类是手机端,一类是电脑端。
- 手机端:HttpCanary
(android)
、Stream(ios)
- 电脑端:Charles、Fiddler
动态调试工具
先说下什么是动态调试,动态调试就是在程序运行的时候,在代码中下断点,这时可以一步步的调试,看一些变量的值及代码的业务逻辑。
Android逆向常用的动态调试工具有:AndroidStudio和IDA,AS主要是动态调试smali语言,IDA的话是调试so库,汇编语言。
总结
磨刀不误砍柴工,在开始逆向前,先把逆向的环境和工具准备好,在逆向的过程中才会得心应手。本篇主要是介绍逆向用到的工具,一些工具的使用方法会在后面的文章中讲解。