首页
社区
课程
招聘
[分享]Android逆向知识汇总
发表于: 2022-5-7 08:27 9966

[分享]Android逆向知识汇总

2022-5-7 08:27
9966

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,反射大师


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2022-5-7 08:35 被易码编辑 ,原因:
收藏
免费 5
支持
分享
最新回复 (1)
雪    币: 362
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
感谢总结分享~~
2024-5-13 09:11
0
游客
登录 | 注册 方可回帖
返回
//