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), … Continue reading [分享]Android逆向知识汇总
Copy and paste this URL into your WordPress site to embed
Copy and paste this code into your site to embed