VMP入门: VMP1.81 Demo分析 一、前言本文主要是通过分析VMProtect 1.81 Demo版加密后的程序,讲述VMP的基本结构,并尝试分析虚拟代码的功能以及虚拟代码还原。 二、虚拟机结构虚拟机保护技术是将程序的可执行代码转化为自定义的中间操作码(一字节或多字节),用以保护源程序不被逆向和篡改,这些中间操作码通过虚拟机解释执行,实现程序原来的功能。在这种情况下,如果要逆向程序,就需要对整个虚拟机结构进行逆向,理解程序功能,还 2025-03-31 加壳与脱壳 #VMP
WPeChatGPT: IDA插件辅助逆向分析 一、前言有时候对于IDA反汇编代码,我们可能会copy给gpt询问代码对应功能。其实,也存在这样的IDA插件,通过AI来辅助逆向。 二、插件介绍WPeChatGPT:https://github.com/WPeace-HcH/WPeChatGPT 它支持的功能如下: 分析函数的使用环境、预期目的、函数功能。 重命名函数的变量。 尝试用 python3 对函数进行还原,此功能主要是针对较小块的函数 2025-03-18 IDA #IDA插件 #AI加持
Android Studio 动调 APK 一、引言在逆向过程中,发现一些实例对象和方法是动态代理创建并调用的,这就使得静态分析非常困难。而 Android Studio 却能够很好的处理这一问题。因此本文将讲述如何使用 Android Studio 动态调试 APK。 二、事前准备2.1 使 APK 可调试正常情况下 release 包是不允许调试的,所以必须先让 APK 可调试,一般有两种方法: 反编译 APK,修改 Android 2024-12-07 Android #Android Studio #动调APK
从案例中学习unidbg补系统调用(二) 一、引言目标 APK:kuaishou.apk 目标方法:com.kuaishou.dfp.envdetect.jni.Watermelon.jniCommand 目标方法实现:libksse.so 二、任务描述JADX 反编译目标 APK,找到com.kuaishou.dfp.envdetect.jni.Watermelon类,其中的jniCommand就是目标函数,它位于 libksse.so 2024-12-05 Unidbg #Unidbg
从案例中学习unidbg补系统调用(一) 一、引言目标 APK:dewu.apk 目标方法:com.shizhuang.stone.main.SzSdk.lf 目标方法实现:libszstone.so 二、任务描述unidbg 模拟执行如下函数。 1public static native byte[] lf(String str, int i2, int i3); 三、初始化基本框架以及补 JNI 环境代码如下 123456789 2024-12-05 Unidbg #Unidbg
unidbg处理Context所需注意事项 一、引言fork from Unidbg 的基本使用(九) 二、初探 Context报错如下 123WARN [com.github.unidbg.linux.ARM32SyscallHandler] (ARM32SyscallHandler:532) - handleInterrupt intno=2, NR=-1073744548, svcNumber=0x170, PC=unidbg@0xf 2024-12-05 Unidbg #Unidbg
总结unidbg补JNI环境时的代码逻辑 一、引言fork from [Unidbg 的基本使用(八)](https://www.yuque.com/lilac-2hqvv/xdwlsg/td2t5cvohdedb878?# 《Unidbg 的基本使用(八)》)。 二、处理一对于 JDK 里包含的类库,可以直接复现其方法逻辑。 比如对 SimpleDateFormat 的操作 123456case "java/text/Simp 2024-12-05 Unidbg #Unidbg
unidbg中参数传递时的类型封装 一、引言众所周知,在Native层编写代码时,倘若Java层和Native层进行数据传递,则需借助JNI进行类型的转变,它们之间的类型对照表如下: 基本类型对照表 Java Native Boolean jboolean Byte jbyte Char jchar Short jshort Integer jint Long jlong Float jfloat 2024-12-05 Unidbg #Unidbg
从案例中学习unidbg的使用(五) 一、引言目标 APK:dazhongdianping.apk 目标类:com.meituan.android.common.mtguard.NBridge$SIUACollector 目标方法:见第二小节 目标方法实现:libmtguard.so 二、任务介绍JADX反编译 APK,找到com.meituan.android.common.mtguard.NBridge类,其中有一个叫SIUACo 2024-12-05 Unidbg #Unidbg
从案例中学习unidbg的使用(四) 一、引言目标 APK:bilibili.apk 目标方法:com.bilibili.nativelibrary.LibBili.s 目标方法实现:libbili.so 二、任务介绍JADX反编译 apk,找到com.bilibili.nativelibrary.LibBili类,其中的 s 方法是本篇的目标函数。它是一个静态方法,参数是 Map,返回值是 SignedQuery 对象。 12345 2024-12-05 Unidbg #Unidbg