Allows you to emulate an Android native library, and an experimental iOS emulation.
This is an educational project to learn more about the ELF/MachO file format and ARM assembly.
Use it at your own risk !
Simple tests under src/test directory
We accept donations via WeChatPay:
一、前言 这是一篇漫谈Unidbg的文章,我对Unidbg的使用和理解都还很浅,日后会更新或修改看法,欢迎大佬指点,也期待同侪讨论。 二、使用Unidbg的工作量是什么 我们常规使用Frida + IDA的动静态分析中,工作可能是这样的 找线索→Frida Hook验证→验证成功继续下一步/验证失败继续找线索 而以Unidbg为中心去做模拟执行/算法还原时,工作是这样的 Frida 主动调用获取一
http://zhuoyue360.com/crack/75.html 什么是unidbg就不多说了,大家自行百度。 写个demo,搭架子 写个简单的加减法来给unidbg调用。 public native String add(int a,int b); extern "C" JNIEXPORT jint JNICALL Java_com_example_lesson2_MainActivit
讲解例子 com.github.unidbg.android.CrackMe 需求 1:trace code 2:打印函数调用链 实现步骤: 2.1:实现目标trace code的具体步骤如下 2.1.1:需要将DynarmicFactory替换成Unicorn2Factory,否则会报异常java.lang.UnsupportedOperationException。修改后的代码如下: pub
一、app中代码 package com.example.jnitest4.jni; import android.content.Context; public class JniManager { // Used to load the 'native-lib' library on application startup. static { System.
1 学习内容 1.1:调用native方法 1.1 .1使用方法:callStaticJniMethodObject 1.1.2 先new出对象再调用方法callJniMethodObject 1.2:传不同的参数: 1.2.1 调用无参函数 1.2.2 int类型参数 1. 2.3 btye数组类型参数
Unidbg的功能可以分成两大块 模拟执行 辅助算法还原 模拟执行的所有任务,一言以蔽之,就是补环境,补环境并不是一件容易的事,我总结一下常见情况。 首先是JNI这个桥梁相关的补环境问题 1.样本存在初始化函数,研究者没有意识到这个问题就会出大问题(好吧我是废话大王),参考资料: 《csdn 样本七》 https://blog.csdn.net/qq_38851536/article/detail
本篇文章仅适用于学习。 最近一直在研究阿里系的请求问题,原来一直都是hook请求端口,虽然和很多人的hook参数生成x-sign不一样,可以说更稳定一些。但总归是脱离不了安卓环境——或者用模拟器,或者用真机。 对于逆向来说,非常的没有档次,没有逼格。 相对于直接逆向x-sign的算法而言,用unidbg调用so文件的难度要小很多。由易入难,unidbg这时候势在必行了。 但是,随着研究的深入,相关
package com.com.dta.jd; import com.github.unidbg.AndroidEmulator; import com.github.unidbg.Module; import com.github.unidbg.linux.android.AndroidEmulatorBuilder; import com.github.unidbg.linux.androi
Ollvm字符串解密 原理 使用unidbg框架,模拟调用So文件,并Hook内存写操作,当so解密操作写入内存时,回调获取解密字符串,并将其写入新so文件中,达到反OLLVM字符串加密的目的。 解密脚本 package com.xCrack; import com.github.unidbg.AndroidEmulator; import com.github.unidbg.Emulator;