跳转至

unidbg 运行 so 流程说明文档

本文为简要介绍 unidbg 运行 so 文件的方法,详细的教程请在互联网上冲浪吧。

1. 前言

简单介绍下 unidbg 的使用场景

本文介绍在遇到复杂算法的 so 时,其中会含有过多魔改后的加密方法或者自写算法,尝试用 py 或其它语言算法实现其逻辑时过于头秃和耗时。这时又不想使用 frida-rpcxposed 脚本之类的方法(此方法依赖真机或模拟器,不可靠)时,推荐使用凯神的 unidbg 框架。

unidbg 脚本也不是任何情况下都是易开发的,在 sonative 层含有与 java 应用层交互时,就需要我们来补环境。js 逆向逃不过补环境,app 逆向也是,让我怀疑宇宙的尽头是不是就是补环境╮(╯▽╰)╭。

本文档过于简洁,主要用于展示功能。unidbg 完全可以单开一个板块来介绍!

本文档的说明文档过于简单,请在 github 上和网上冲浪来查看详细教程。

2. 前提准备

由于 unidbg 主要为 java 语言开发,依赖 java 和 maven 环境,以下为我的环境机器版本:

注:javamaven 版本尽量新,否则会有蜜汁 bug

3. 跑通 unidbg 示例

如果能正常跑通 unidbg 的任一示例,则说明环境配置成功。

  • 我们先下载 unidbg 源码
  • 然后我们需要在 idea 上配置自己的 maven 的环境,网上教程很多,略
  • 最后跑通 unidbg-android 目录下的 "安居客","看雪" 等等示例即可

4. unidbg 运行 so

最终的目的就是使用 unidbg 运行 so 文件,这个时候就需要 idea 打包跑通的 java 文件为 jar 包,然后其它任意语言调用 jar 包即可。如何实现?是搞成 http 接口,还是 jsonrpc 调用,还是直接执行 java 指令生成结果等就请群魔乱舞吧。

5. 补充

  • 想起在初接触 unidbg 时,有种和遇到内存漫游, rpc,自吐等方法一样的激动心情。此文章只是用来向你传递同样的种子,希望你自己去深入探索和实践。

  • 这里补上我的一个示例:

image-20220223170129861

  • 补充一下 python subprocess 库执行 jar 包结果

image-20220224161745947

评论

回到页面顶部