unidbg 运行 so 流程说明文档¶
本文为简要介绍
unidbg
运行so
文件的方法,详细的教程请在互联网上冲浪吧。
1. 前言¶
简单介绍下
unidbg
的使用场景
本文介绍在遇到复杂算法的 so
时,其中会含有过多魔改后的加密方法或者自写算法,尝试用 py
或其它语言算法实现其逻辑时过于头秃和耗时。这时又不想使用 frida-rpc
和 xposed
脚本之类的方法(此方法依赖真机或模拟器,不可靠)时,推荐使用凯神的 unidbg
框架。
unidbg
脚本也不是任何情况下都是易开发的,在 so
的 native
层含有与 java
应用层交互时,就需要我们来补环境。js
逆向逃不过补环境,app
逆向也是,让我怀疑宇宙的尽头是不是就是补环境╮(╯▽╰)╭。
本文档过于简洁,主要用于展示功能。unidbg
完全可以单开一个板块来介绍!
本文档的说明文档过于简单,请在 github
上和网上冲浪来查看详细教程。
2. 前提准备¶
由于 unidbg 主要为 java 语言开发,依赖 java 和 maven 环境,以下为我的环境机器版本:
- unidbg 下载地址
java v11.0.13
maven v3.8.4
- 安装
idea
注:java
和 maven
版本尽量新,否则会有蜜汁 bug
3. 跑通 unidbg 示例¶
如果能正常跑通
unidbg
的任一示例,则说明环境配置成功。
- 我们先下载
unidbg
源码 - 然后我们需要在
idea
上配置自己的maven
的环境,网上教程很多,略 - 最后跑通
unidbg-android
目录下的 "安居客","看雪" 等等示例即可
4. unidbg 运行 so¶
最终的目的就是使用
unidbg
运行so
文件,这个时候就需要idea
打包跑通的java
文件为jar
包,然后其它任意语言调用jar
包即可。如何实现?是搞成http
接口,还是jsonrpc
调用,还是直接执行java
指令生成结果等就请群魔乱舞吧。
- 不想写了,看下
csdn
上的教程(Unidbg的初步使用)吧 ,我也参考的这个。
5. 补充¶
-
想起在初接触
unidbg
时,有种和遇到内存漫游,rpc
,自吐等方法一样的激动心情。此文章只是用来向你传递同样的种子,希望你自己去深入探索和实践。 -
这里补上我的一个示例:
- 补充一下
python subprocess
库执行jar
包结果