安全
反编译#
Android 基于 Java/Kotlin 开发的,所以容易被反编译。
java 编译过程: .java -> .class -> dex。
反编译: dex -> .class -> .java
通常我们会用代码混淆,增加反编译后的代码阅读难度。
hook 技术#
在不改变二进制文件的情况下,动态的改变程序逻辑。
hook 工具: VirtualXposed, frida
VirtualXposed#
- 使用的时候需要 root。
 - 插件丰富
 - 基于 epic
 
HTTPS 抓包,中间人攻击#
HTTPS 中间人攻击的方式: charles 生成一个证书,并且手机上把这个证书设置成信任。
App 禁止抓包的方法:自己实现证书的校验,对证书的跟证书做校验。
VirtualXposed 可以通过hook App 的校验代码,使 App 可以被抓包。
frida#
- root 和 非 root 都可以使用。root 模式下使用 ptrace attach 到 app 进程。非 root 模式修改 app,插入代码加载 frida so
 
so 安全#
so 也可以混淆
so 方法直接调用#
so 包可以看到里面有哪些函数。使用 java 直接调用这个函数就能实现破解。
so hook#
inline hook
加固如何保证按钮#
- Dex 加固
 - So 加固
 - 防止调试
 
360免费加固,加固了 Dex。加固过程实际上是给 Dex 加层壳。App 运行过程中去解密,所以加固后的 app 启动会变慢。