laujanwing007 / AppDroid_Sec

Something To Do Android Application Security Research

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AppDroid_Sec

Something To Do Android Application Security Research

基础知识

文件格式相关

不知名网友的统概图(待完善)


工具包

  • Android-Crack-tool for Mac
    支持常规的 APK 编译与反编译功能

  • GDA
    国内研发的 APK 分析工具 【注:目前体验感不是太好】

  • Androguard
    用来处理 APKPython 工具包,很多自动化分析项目都内嵌

  • MobSF
    跨平台开源自动化动态分析框架

分析工具

辅助工具

  • dex-finder
    快速寻找一个类所在 dex 的小工具

系统


HOOK 与注入

HOOK 类型:

  • Dalvik Hook
  • ART Hook
  • So Hook
    • LD_PRELOAD Hook
    • GOT Hook
    • Inline Hook

Hook 注入框架:

动态注入:

  • DEX 注入
  • SO 注入

注:

  1. 当在进行 Hook 时,如果遇到错误,可以使用 cat /proc/pid/maps 查看所要 hook 的代码是否已经加载

反破解

  • 资源加密
  • 代码混淆
    • 源码混淆
    • 模版混淆
    • AST 混淆
    • IR 混淆
    • DEX 混淆
    • DEX 二次混淆
  • 反调试技术
    • 调试器状态
    • 调试器端口
    • 进程状态
  • 运行环境检测
    • 模拟器检测
    • Root 检测
    • Hook 检测

软件壳

Android 壳迭代

  • 动态加载型壳
    基于压缩壳和加密壳,主要对本地的 DEX 文件、so 库、资源文件进行加密,运行时进行动态还原。一般会采用一定的反调试方法来阻止动态调试
    • 缓存脱壳法
    • 内存 Dump 脱壳
    • 动态调试脱壳
    • Hook 脱壳
    • 系统定制脱壳
  • 代码抽取型壳
    提取 DEX 方法进行加密保存,运行时调用 Native 解密方法进行还原,甚至会通过执行前解密,执行后加密方法防止内存 Dump。通常会采用多进程保护、API Hook 等反调试与反内存 Dump 技术
    • 内存重组脱壳
    • Hook 脱壳
    • 系统定制脱壳
  • 代码混淆壳
    基于 LLVM Pass 实现的代码混淆壳,使用较多的技术有指令变换、花指令混淆、指令混淆、代码流程混淆等
    • Obfuscator-LLVM
      • 指令替换
      • 控制流平坦化
      • 伪造控制流
    • 指令模式匹配 + 垃圾代码消除
    • 确定相关块关系并修正
    • 修改 bl 指令并修正

学习笔记

刷机

编译

About

Something To Do Android Application Security Research