黑客破解 APP 常用工具,低调低调!

抓包

HTTP请求类
  • Fiddler/Charles(必备常用工具之一)

最常见的代理抓包工具,这两个就不用多说了吧?应该都知道了。

  • ProxyDroid(必备常用工具之一)

强制全局代理工具,详细介绍见当你写爬虫抓不到APP请求包的时候该怎么办?【初级篇】。

  • PacketCapture/HTTPCanary(必备常用工具之一)

VPN抓包工具,详细介绍见当你写爬虫抓不到APP请求包的时候该怎么办?【初级篇】。

  • JustTrustMe(必备常用工具之一)

基于Xposed写的反SSL Pinning工具,详细介绍见当你写爬虫抓不到APP请求包的时候该怎么办?【中级篇】。

  • ObjectionUnpinningPlus(必备常用工具之一)

瘦蛟舞写的一个Frida脚本,功能与JustTrustMe相同,但因为Frida的特殊性,可以随时修改内容,面对一些特殊情况时会很方便。

  • WireShark

也是一个很常见的抓包工具,但由于工作方式过于底层,对HTTPS请求的处理比较麻烦,一般不建议对使用HTTP协议的APP使用。

非HTTP请求类
  • WireShark

非HTTP的还是使用WireShark这类工具方便些,通常需要配合反编译找到协议的组成方式。
建议使用方式:电脑端开热点,然后指定用于创建热点的虚拟网卡,再把手机连上热点开始抓包。

  • Tcpdump

在使用没有无线网卡的电脑或无法开热点的情况下可以直接在手机上运行Tcpdump然后导出文件在电脑端WireShark中打开,与直接使用WireShark抓包效果相同。

破解加密参数

Java层
  • Jadx(必备常用工具之一)

一个非常方便的Java反编译工具,一般用到的功能主要是搜索、反混淆、查找方法调用这几样,性能和反编译出来的代码效果都比使用dex2jar+jd-gui之类的方式好。

  • Xposed(必备常用工具之一)

Xposed框架大家应该都知道吧?这是一个功能十分强大的Hook框架,很多逆向工具都是基于它来写的,有特殊需求时也可以自己写一个模块使用。

  • Frida(必备常用工具之一)

相对于Xposed而言,Frida算是一个在安全圈外没有那么高知名度的Hook工具了,但它的功能在某些方面要比Xposed强得多(当然也有缺点),举个常用到的例子:用它来Hook So库中的函数~。

  • inspeckage(必备常用工具之一)

这是一个基于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操作一下,一个搜索,加密参数就原形毕露了。

  • DeveloperHelper

一个基于Xposed写的辅助工具,通常会用到的功能是查看Activity名、查看加固类型、查看Activity结构、自动脱壳这几个。

  • UCrack

也是一个基于Xposed写的辅助工具,集成了自动网络抓包、网络堆栈爆破、文件日志、WebView调试环境、自动脱壳、Native函数注册监控、记录程序自杀堆栈等功能,这个工具是我之前偶然发现的,还没有使用过,有兴趣的同学可以用用看。

C/C++层(So库)
  • IDA(必备常用工具之一)

非常强大的反汇编和动态调试工具,强烈不推荐使用NSA开源的Ghidra,效果跟IDA比起来差太多了。IDA可以在反汇编之后将汇编代码转成伪C代码,并且能在手机端启动了服务端之后注入APP进程使用动态调试功能。

  • Frida(必备常用工具之一)

上面讲过了

  • 有壳(加固)的

  • DeveloperHelper

上面讲过了

  • UCrack

上面讲过了

  • FDex2

其实就是把几行代码包了一层而已,原理就是Hook ClassLoader的loadClass方法,反射调用getDex方法取得Dex(com.android.dex.Dex类对象),再将里面的dex写出。 

版权申明:内容来源网络,版权归原创者所有。除非无法确认,都会标明作者及出处,如有侵权,烦请告知,我们会立即删除并致歉!

逆锋起笔是一个专注于程序员圈子的技术平台,你可以收获最新技术动态最新内测资格BAT等大厂大佬的经验增长自身学习资料职业路线赚钱思维,微信搜索逆锋起笔关注!

推荐阅读:一些恶心的代码片段(20 个 if ?)
为什么 HTTPS 是安全的?
API 快速开发平台设计思考
必备的 VS code 插件
最近很火的一组图,看一次笑一次




明天见(。・ω・。)ノ♡

你可能感兴趣的:(反编译,java,编程语言,python,linux)