【Android 逆向】【攻防世界】黑客精神

1. apk 安装到手机,提示输入注册码 2. jadx打开apk MainActivity.java @Override // android.app.Activity public void onCreate(Bundle savedInstanceState) { String str2; s

【Android 逆向】【攻防世界】easy-dex

这一题不easy,不知为何叫这个名字。。。。 1. apk 安装到手机,不知所云,各种亮瞎眼闪光 2. jadx 打开apk,一行java代码都没有,打开AndroidManifest看看

【Android逆向】定位native函数在哪个so中方法

1. 在逆向过程中经常需要定位方法在哪个so中,而app加载的so很多,比如 那么如何快速定位方法在哪里呢 2. 比如如下案例,首先看日志 03-28 11:01:56.457 14566 14566 D KM-NATIVE: JNI_OnLoad 03-28 11:01:56.457 14566

【Android逆向】apk 反编译

1. Kali搭建apktool环境 1. 访问apktool 官网https://ibotpeaches.github.io/Apktool/install/ 参考红圈里的步骤处理即可 2. 执行命令反编译apk apktool d ./xxxx_v5.4.apk 注意这里有可能因为assert目

【Android 逆向】apk反编译后重打包

1. 执行 apktool b smali_dir smali_dir 为反编译出来的数据目录 执行后可能会报错 I: Building resources... W: /root/Desktop/tmp/qimao_dir/qimao_v5.4/AndroidManifest.xml:1: err

【Android逆向】某小说网站签名破解

1. 豌豆荚下载v5.4的版本 2. 参考前面两篇文章进行反编译和重打包后,安装到手机发现会有验签失败的报错 抓取log 03-29 16:15:37.545 25910 26539 D KM-NATIVE: call Java_com_km_encryption_api_Security_sign

Xposed 原理

Xposed 使用替换app_process的方式(这是个二进制文件) xposed 的 app_main2.cpp中做了xposed的初始化 /** Initialize Xposed (unless it is disabled). */ bool initialize(bool zygote,

Frida 原理

frida注入的主要思路: 1.找到目标进程,使用ptrace跟踪目标进程 2.获取mmap,dlpoen,dlsym等函数库的偏移 3.获取mmap,在目标进程申请一段内存空间,将在目标进程中找到存放(frida-agent-32/64.so),在此内存空间启动执行各种操作由agent去实现。 补

IDA 常用快捷键记录

常用快捷键1 1、切换文本视图与图表视图 空格键 2、返回上一个操作地址 ESC 3、搜索地址和符号 G 4、对符号进行重命名 N 5、常规注释 冒号键 6、可重复注释 分号键 7、添加标签 Alt+M 8、查看标签 Ctrl+M 9、查看段的信息 Ctrl+S 10、查看交叉应用 X 11、查看伪

Youpk 脱壳机脱壳原理分析

Youpk 是一个针对整体加固和Dex抽取加固壳的脱壳机 主要是基于虚拟机的,也就是基于VA的脱壳机, 相对FART出来的更晚一些, 厂商针对少一些, 脱壳位置相对更底层一些,还提供了Dex修复的工具,简直棒棒 1. 先分析整体脱壳的原理 在ActivityThread 的 handleBindAp

FART 脱壳机原理分析

FART是一个基于Android 源码修改的脱壳机 可以脱整体壳和抽取壳 FART脱壳的步骤主要分为三步: 1.内存中DexFile结构体完整dex的dump 2.主动调用类中的每一个方法,并实现对应CodeItem的dump 3.通过主动调用dump下来的方法的CodeItem进行dex中被抽取的

dpt-shell 抽取壳实现原理分析(加壳逻辑)

开源项目位置(为大佬开源精神点赞) https://github.com/luoyesiqiu/dpt-shell 抽取壳分为两个步骤 加壳逻辑: 一 对apk进行解析,将codeItem抽出到一个文件中,并进行nop填充 二 对抽取后的apk进行加密 三 注入壳程序相关文件即配置信息 执行逻辑:

dpt-shell 抽取壳实现原理分析(执行逻辑)

开源项目位置(为大佬开源精神点赞) https://github.com/luoyesiqiu/dpt-shell 抽取壳分为两个步骤 加壳逻辑: 一 对apk进行解析,将codeItem抽出到一个文件中,并进行nop填充 二 对抽取后的apk进行加密 三 注入壳程序相关文件即配置信息 执行逻辑:

ADVMP 三代壳(vmp加固)原理分析(加壳流程)

开源项目地址 https://github.com/chago/ADVMP vmp 加固可以说时各大加固厂商的拳头产品了,这个开源项目虽然不是十分完善,让我们可以一览vmp加固的原理,是十分好的学习资源 vmp 全称: virtual machine protect , 本质是将原来smali对应的

ADVMP 三代壳(vmp加固)原理分析(执行流程)

由于在加壳时插入了System.loadLibrary("advmp");,看一下JNI_OnLoad JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void* reserved) { JNIEnv* env = NULL; if (vm->GetEnv

r0capture 原理分析

r0capture 是比较好用的抓包工具 仅限安卓平台,测试安卓7、8、9、10、11、12 可用 ; 无视所有证书校验或绑定,不用考虑任何证书的事情; 通杀TCP/IP四层模型中的应用层中的全部协议; 通杀协议包括:Http,WebSocket,Ftp,Xmpp,Imap,Smtp,Protobu

r0tracer 源码分析

使用方法 修改r0tracer.js文件最底部处的代码,开启某一个Hook模式。 function main() { Java.perform(function () { console.Purple("r0tracer begin ... !") //0. 增加精简模式,就是以彩虹色只显示进出函数

xHook 源码解析

xHook 是爱奇艺开源的一个PLT Hook 框架 项目地址: https://github.com/iqiyi/xHook 该项目实现了 PTL/GOT Hook PTL hook 的本质是修改内存中,PLT表对应的值,来实现跳转到自定义函数的 .got和.plt它们的具体含义。 The Glo

virtualapp启动流程源码分析

virtualapp启动流程分析 1. 首先是启动本身,执行Vpp 的attachBaseContext @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); mPrefer

virtualapp安装应用流程源码分析

1. HomeActivity 为处理的入口 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, r