04 2023 档案
摘要:应用启动源码分析 在HomeActvity中的OnCreate方法会调用initLaunchpad private void initLaunchpad() { mLauncherView.setHasFixedSize(true); StaggeredGridLayoutManager layou
阅读全文
摘要:1. HomeActivity 为处理的入口 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, r
阅读全文
摘要:virtualapp启动流程分析 1. 首先是启动本身,执行Vpp 的attachBaseContext @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); mPrefer
阅读全文
摘要:xHook 是爱奇艺开源的一个PLT Hook 框架 项目地址: https://github.com/iqiyi/xHook 该项目实现了 PTL/GOT Hook PTL hook 的本质是修改内存中,PLT表对应的值,来实现跳转到自定义函数的 .got和.plt它们的具体含义。 The Glo
阅读全文
摘要:使用方法 修改r0tracer.js文件最底部处的代码,开启某一个Hook模式。 function main() { Java.perform(function () { console.Purple("r0tracer begin ... !") //0. 增加精简模式,就是以彩虹色只显示进出函数
阅读全文
摘要:r0capture 是比较好用的抓包工具 仅限安卓平台,测试安卓7、8、9、10、11、12 可用 ; 无视所有证书校验或绑定,不用考虑任何证书的事情; 通杀TCP/IP四层模型中的应用层中的全部协议; 通杀协议包括:Http,WebSocket,Ftp,Xmpp,Imap,Smtp,Protobu
阅读全文
摘要:由于在加壳时插入了System.loadLibrary("advmp");,看一下JNI_OnLoad JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void* reserved) { JNIEnv* env = NULL; if (vm->GetEnv
阅读全文
摘要:开源项目地址 https://github.com/chago/ADVMP vmp 加固可以说时各大加固厂商的拳头产品了,这个开源项目虽然不是十分完善,让我们可以一览vmp加固的原理,是十分好的学习资源 vmp 全称: virtual machine protect , 本质是将原来smali对应的
阅读全文
摘要:开源项目位置(为大佬开源精神点赞) https://github.com/luoyesiqiu/dpt-shell 抽取壳分为两个步骤 加壳逻辑: 一 对apk进行解析,将codeItem抽出到一个文件中,并进行nop填充 二 对抽取后的apk进行加密 三 注入壳程序相关文件即配置信息 执行逻辑:
阅读全文
摘要:开源项目位置(为大佬开源精神点赞) https://github.com/luoyesiqiu/dpt-shell 抽取壳分为两个步骤 加壳逻辑: 一 对apk进行解析,将codeItem抽出到一个文件中,并进行nop填充 二 对抽取后的apk进行加密 三 注入壳程序相关文件即配置信息 执行逻辑:
阅读全文
摘要:FART是一个基于Android 源码修改的脱壳机 可以脱整体壳和抽取壳 FART脱壳的步骤主要分为三步: 1.内存中DexFile结构体完整dex的dump 2.主动调用类中的每一个方法,并实现对应CodeItem的dump 3.通过主动调用dump下来的方法的CodeItem进行dex中被抽取的
阅读全文
摘要:Youpk 是一个针对整体加固和Dex抽取加固壳的脱壳机 主要是基于虚拟机的,也就是基于VA的脱壳机, 相对FART出来的更晚一些, 厂商针对少一些, 脱壳位置相对更底层一些,还提供了Dex修复的工具,简直棒棒 1. 先分析整体脱壳的原理 在ActivityThread 的 handleBindAp
阅读全文
摘要:常用快捷键1 1、切换文本视图与图表视图 空格键 2、返回上一个操作地址 ESC 3、搜索地址和符号 G 4、对符号进行重命名 N 5、常规注释 冒号键 6、可重复注释 分号键 7、添加标签 Alt+M 8、查看标签 Ctrl+M 9、查看段的信息 Ctrl+S 10、查看交叉应用 X 11、查看伪
阅读全文
摘要:frida注入的主要思路: 1.找到目标进程,使用ptrace跟踪目标进程 2.获取mmap,dlpoen,dlsym等函数库的偏移 3.获取mmap,在目标进程申请一段内存空间,将在目标进程中找到存放(frida-agent-32/64.so),在此内存空间启动执行各种操作由agent去实现。 补
阅读全文
摘要:Xposed 使用替换app_process的方式(这是个二进制文件) xposed 的 app_main2.cpp中做了xposed的初始化 /** Initialize Xposed (unless it is disabled). */ bool initialize(bool zygote,
阅读全文