抓包
HTTP请求类
最常见的代理抓包工具,这两个就不用多说了吧?应该都知道了。
强制全局代理工具。
VPN抓包工具。
基于Xposed写的反SSL Pinning工具。
瘦蛟舞写的一个Frida脚本,功能与JustTrustMe相同,但因为Frida的特殊性,可以随时修改内容,面对一些特殊情况时会很方便。
也是一个很常见的抓包工具,但由于工作方式过于底层,对HTTPS请求的处理比较麻烦,一般不建议对使用HTTP协议的App使用。
非HTTP请求类
非HTTP的还是使用WireShark这类工具方便些,通常需要配合反编译找到协议的组成方式。
建议使用方式:电脑端开热点,然后指定用于创建热点的虚拟网卡,再把手机连上热点开始抓包。
在使用没有无线网卡的电脑或无法开热点的情况下可以直接在手机上运行Tcpdump然后导出文件在电脑端WireShark中打开,与直接使用WireShark抓包效果相同。
破解加密参数
JAVA层
一个非常方便的Java反编译工具,一般用到的功能主要是搜索、反混淆、查找方法调用这几样,性能和反编译出来的代码效果都比使用dex2jar+jd-gui之类的方式好。
Xposed框架大家应该都知道吧?这是一个功能十分强大的Hook框架,很多逆向工具都是基于它来写的,有特殊需求时也可以自己写一个模块使用。
相对于Xposed而言,Frida算是一个在安全圈外没有那么高知名度的Hook工具了,但它的功能在某些方面要比Xposed强得多(当然也有缺点),举个常用到的例子:用它来Hook So库中的函数~。
这是一个基于Xposed写的动态分析工具,Hook了大量逆向时常见的方法,下面是它的GitHub中给出的列表:
Shared Preferences (log and file);
Serialization;
Crypto;
Hashes;
SQLite;
HTTP (an HTTP proxy tool is still the best alternative);
File System;
Miscellaneous (Clipboard, URL.Parse());
WebView;
IPC;
Hooks (add new hooks dynamically)
注意它Hook列表中有Crypto和Hash,这两个类型在破解大部分APP的加密参数时可以说是降维打击,因为大部分APP的加密参数都逃不过MD5、SHA1、AES、DES这四种,而它们都被Hook了(不仅仅只有这四种)。基本上就是打开Inspeckage再打开它的Web端,然后打开指定的APP操作一下,一个搜索,加密参数就原形毕露了。
一个基于Xposed写的辅助工具,通常会用到的功能是查看Activity名、查看加固类型、查看Activity结构、自动脱壳这几个。
也是一个基于Xposed写的辅助工具,集成了自动网络抓包、网络堆栈爆破、文件日志、WebView调试环境、自动脱壳、Native函数注册监控、记录程序自杀堆栈等功能,这个工具是我之前偶然发现的,还没有使用过,有兴趣的同学可以用用看。
C/C++层(So库)
非常强大的反汇编和动态调试工具,强烈不推荐使用NSA开源的Ghidra,效果跟IDA比起来差太多了。IDA可以在反汇编之后将汇编代码转成伪C代码,并且能在手机端启动了服务端之后注入APP进程使用动态调试功能。
上面讲过了
上面讲过了
上面讲过了
其实就是把几行代码包了一层而已,原理就是Hook ClassLoader的loadClass方法,反射调用getDex方法取得Dex(com.Android.dex.Dex类对象),再将里面的dex写出。