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

1. apk安装到手机,随便输入点内容,提示错误 2. jadx打开apk btn.setOnClickListener(new View.OnClickListener() { // from class: com.testjava.jack.pingan2.MainActivity.1 @Ove

【Android 逆向】【攻防世界】easyjni

1. apk 安装到手机,提示需要输入flag 2. jadx打开apk public class MainActivity extends c { static { System.loadLibrary("native"); } /* JADX INFO: Access modifiers cha

【Android 逆向】【攻防世界】RememberOther

1. apk安装到手机,提示输入用户名注册码 2. jadx 打开apk public boolean checkSN(String userName, String sn) { try { if (userName.length() == 0 && sn.length() == 0) { retu

【Android 逆向】【攻防世界】easyjava

1. apk 安装到手机,提示输入flag 2. jadx 打开apk看看 private static char a(String str, b bVar, a aVar) { return aVar.a(bVar.a(str)); } /* JADX INFO: Access modifiers

【Android 逆向】【攻防世界】Ph0en1x-100

1. apk 安装到手机,老套路需要输入flag 2. jadx 打开apk,没有加壳 ...... public void onGoClick(View v) { String sInput = this.etFlag.getText().toString(); if (getSecret(get

【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