Skip to main content

安全

反编译#

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 启动会变慢。