当前位置: 首页 > 软件库 > 手机/移动开发 > >

unidbg

授权协议 Apache-2.0 License
开发语言 Java
所属分类 手机/移动开发
软件类型 开源软件
地区 不详
投 递 者 王嘉木
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

unidbg

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 !

License

Simple tests under src/test directory





More tests

Features

  • Emulation of the JNI Invocation API so JNI_OnLoad can be called.
  • Support JavaVM, JNIEnv.
  • Emulation of syscalls instruction.
  • Support ARM32 and ARM64.
  • Inline hook, thanks to Dobby.
  • Android import hook, thanks to xHook.
  • iOS fishhook and substrate and whale hook.
  • unicorn backend support simple console debugger, gdb stub, instruction trace, memory read/write trace.
  • Support iOS objc and swift runtime.
  • Support dynarmic fast backend.
  • Support Apple M1 hypervisor, the fastest ARM64 backend.
  • Support Linux KVM backend with Raspberry Pi B4.

Thanks

One-time Donation

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;