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), […]

Read More

小米手机刷机

有一台旧的小米手机。 想做一下刷机,也就是重装系统。 应该要做什么好了? 原来从2010年就很多做这些事情,使用第三方来处理。那时候还是混沌世界朦胧时候,萌芽阶段。 现在是2022年,很多东西已经改变了很多。 所以有些东西不一定有人维护,其实马拉松才是真正的人生。而不是百米冲刺。 这台手机是虽然是小米4,但其实就是小米3,版本安卓4.4。所以很多东西资料找的不是小米4。 差点被骗。 bootloader 上锁,这是厂家为了保护内核安全做的事情。需要根目录权限,就要解开这个保险箱子的钥匙。原来很多厂家的要求都是不一样的,有点简单,有的很复杂。像现在的华为就不让你个人操作。其实linux 本来是开源。现在被这些厂家搞封闭。 这是人家的商业考量。很多时候操作错误就会有9008模式,这是最底层的东西从芯片端救命。其实很多东西都是操作某些机器,但是机器有些很复杂,有些很简单。所以收入也就不一样。 手机背景: 大环境背景: 现在2022.5月底,上海准备解封,背景进入冰冻模式,世界各地进入放开动作。经济走下坡路,民怨四起。稳住是根本?难挂别人都是要保住这份工。 找到对应的线刷包,但是下面是不能下载的,奇怪。 https://www.xiaomi.cn/board/8814010 小米4论坛,但是我的手机实际是小米3的系统,所以开始时候在这里傻了一下。这些旧的论坛,很久没有英雄煮酒。 https://web.vip.miui.com/page/info/mio/mio/detail?postId=17984419&app_version=dev.20051 这个网址找到对应的,不能打开。 V7.1.5.0.KXDCNCK:卡刷包|线刷包 有些有情怀的人做了一下好的事情,但是监管要求,都被删掉。 https://web.vip.miui.com/page/info/mio/mio/detail?postId=24690174&app_version=dev.20051 参考下面的链接找到对应的刷机包,其实我这个手机是小米4 TD-LTE 没有上锁机型。难怪。刷机就是一个校验的过程,人脸识别后确认是老板,就可以动作。 http://www.miui.com/shuaji-393.html ★机型表示为小米有BL锁机型,请先 点击下载通用解锁工具 解锁。(完成解锁后再按照刷机教程步骤操作) ☆机型表示为未上锁机型,可以直接按照教程继续刷机操作。 ☆小米手机4 CDMA/WCDMA/TD-LTE 最新 稳定版 线刷Fastboot完整包点击下载 这里下面小米解锁工具: http://www.miui.com/unlock/download.html 这里的操作都是重新刷入原来的系统。但是又会有一个新的问题。 就是这个安卓的底层运行逻辑是什么样? 然后还是recovery 又是什么? 这里就很需要知道底层的原理,只有这样才很好的理解这个手机的安卓系统。 加入我希望获得ROOT的权限?装入新的系统? 找网上资料来学学习: https://www.jianshu.com/p/c30f46fdcdc3 https://miuiver.com/how-to-root-xiaomi-phone/ 网上资料太多,而且很乱。 这就是互联网的一个大通病。相当一部分当时是使用第三方软件获取root 权限。这是当时的漏洞。现在很多手机都是比较难,山寨时代过去,其实都是流氓证明机会就会又很多。七国之乱吗,毕竟。 recovery  其实又自带,但是功能部分缺失,小米手机的话就是关机状态下电源键和音量键+, 就是可以,不是电源键位和音量-键,这是进入fastboot 模式的。 安装magisk 是需要进入recovery 模式, […]

Read More