Skip to main content

[分享]Android逆向知识汇总

https://bbs.pediy.com/thread-272636.htm 原文地址

 

1,开发语言

Platform: Java/kotlin –> Dex文件
Native:C,C++,汇编,Arm/Arm64指令集 –> so文件,exe文件
Java script.
第三方框架语言:flutter(Dart),react native, H5,小程序,jsPath,javascript,lua,依赖自定义解释器、浏览器。如:webkit\v8\jscore\自定义浏览器引擎

2,基础技术

linux操作系统

CPU:

进程/进程调度,进程优先级;线程/线程优先级;系统调用 fork,exec,clone,进程控制块PCB,进程映像,进程地址空间(4GB: 高1G,低3G),/proc/pid/map目录

内存:
虚拟进程地址空间,地址空间换算,物理地址–>虚拟地址, 分页机制,页面加载机制。用户空间+内核空间。malloc/free,mmap
文件系统:一切皆文件的思想,文件系统的实现,open/close/read/write。
IO: 网络驱动、设备驱动 /dev/,/sys/目录

应用相关

用户,用户组,文件权限控制系统,selinux,root
进程通讯IPC,命名/匿名管道、socket、共享内存、信号量、消息,线程同步mutex

Android系统

init进程启动过程:
系统Native服务(mediaserver,surfaceflinger,audioflinger…)启动,netd,vold,installd,ueventd,adbd,rild,zygote启动,系统服务SystemServer(AMS,PMS,WMS,SMS…)启动,Launcher和SystemUI启动
Android进程通讯: Binder,socket,匿名共享内存
Android Rumtime: Art/Dalvik

App启动过程:
ActivityThread->LoadedApk->Instrumentation->attch->attachbasecontext->onCreate

Apk安装过程:
组件注册过程,Android权限控制(PMS–>install,dex2oat,dex/odex/oat/vdex)

3,Android逆向:

Platform:

Java/kotlin,Dex文件格式/字节码格式/指令格式,DEX文件加载(ClassLoader/PathClassLoader/DexClassLoder),解释执行过程(JIT,AOT),Dex反编译、smali,加密解密,指令抽取/回填,VMP;修改Dex,Java反射调用内部方法

Native:
C,C++,汇编,SO文件,ELF文件格式,SO文件加载执行过程(进程执行映像)
SO反编译,VMP,加密解密;inlineHook,ptrace注入

Web:
WebKit/V8/JSCore等引擎,lua
编译与反调试:gcc/clang,llvm/IR; gdb,lldb;项目构建,GUNMake,cmake,gradle;
网络抓包/解包/封包: http/https/websocket/socket, json/xml/probouf 等序列化反序列化框架
加密与解密: 对称AES,DES,3-DES;非对称RSA;
哈希摘要:sha1,md5
插件化技术/热修复/加壳:Tinker, virtualAPK, multiDex原理,instantRun原理.
代码(dex,so),资源(AssetManager),Manifest中插入组件
插件化的安全措施,热修复或插件代码的签名验证

Hook大法: Xposed/frida/sandhook/virtalapp/edXposed/virsualXposed/yahfa/epic/inlinehook/太极+ Magisk/ptrace

自动化/手机爬虫:借助辅助服务实现,借助UIAutomator实现,Robotium/Apptium.

程序脱壳与修复:dex脱壳,Native脱壳修复。

4,服务器端逆向:

Ngix、防火墙,参透/透视,sql注入,暴力破解,ddos流量攻击

5,工具集

Android SDK/NDK, bin目录下的tool. UIAutomator,adb,ddms, DEX related(dex2jar,dex2oat), so解析(readelf,ar,as,objdump)
Android Studio/gradle
jad/jad-gui,jeb,apktool
010Editor
IDA-pro
gcc/gdbserver,clang/llvm/IR,cmake, Gnumake

抓包工具:charles,fiddler,wireshark,httpcanary
辅助工具:MT管理器,天鉴,应用转生,cnfix,反射大师

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: