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
被易码编辑
,原因: