unidbg调用so生成抖音xgorgon Android逆向 原创

冬晨夕阳 5月前 8937


目前很多 App 的加密签名算法都在so文件中,强行逆向so的话可能会消耗大量时间和资源。

之前用 xposed 采用 hook 的方法从程序计算签名,但是需要模拟器或者真机运行这个应用,使用效率不高。
也用过 jtype 启动JVM,然后通过 native 对so文件进行调用,因为每次都需要启动JVM,所以效率也不高。

unidbg 他不需要运行 app,也无需逆向 so 文件,通过在 app 中找到对应的 JNI 接口,然后用 unicorn 引擎直接调用 so 文件,所以效率相对要高不少。


unidbg特点

  • 模拟JNI调用API,可以调用JNI_OnLoad
  • 支持JavaVM,JNIEnv
  • 模拟系统调用
  • 支持ARM32和ARM64
  • 内联钩子(Inline Hook)
  • Android import hook
  • iOS 的一些hook工具 fishhook and substrate and whale hook
  • 支持简单的控制台调试器,gdb存根,实验性IDA android调试器服务器,指令跟踪,内存读/写跟踪
  • 支持iOS objc和Swift

unidbg环境配置

unidbg下载链接: https://github.com/zhkl0228/unidbg

IntelliJ IDEA可用于编辑unidbg源

下载完成之后示导入到 IDEA 中,当然你需要准备好java环境(jdk、maven)

在这里插入图片描述

选择Maven

在这里插入图片描述

等待加载完成之后,运行src/…/encrypt 中的TTEncrypt测试用例

在这里插入图片描述

如果控制台打印相关调用信息,说明已经导入成功。

在这里插入图片描述


加载libcms.so

看过这篇文章的应该已经知道生成xg函数的位置,所以不具体说了。《抖音xgorgon(0401)

下面准备调用libcms.so文件中的 leviathan 函数

首先在 src/test/resources 目录下新建文件夹dylib,放入libcms.so文件

libcms.so 下载地址: https://download.csdn.net/download/weixin_43582101/12713664

在这里插入图片描述

然后我在 /unidbg/unidbg-android/src/test/java/com/sun/jna/ 目录下新建了 JniDispatch128.java文件

在这里插入图片描述


JniDispatch128.java文件内容如下:

后面会修改更新该java文件内容,这里不是版主没有修改权限 = =,所以贴上链接 。


“com/ss/sys/ces/a”需要调用函数所在的Java类完整路径,比如 a/b/c/d 等等,注意需要用/代替.
“leviathan(II[B)[B”需要调用的函数名,名字是smali语法,可通过jadx等工具查看
“vm.loadLibrary(new File)”so文件的路径,需要自行修改,最好为绝对路径


运行main方法即可查看生成出来的xgorgon了

在这里插入图片描述


more articles

更多douyin技术文章,可查看专栏:

https://blog.csdn.net/weixin_43582101/category_9529769.html


最新回复 (105)
  • ngt81403 5天前
    0 106
    迪奥
  • 0 105
    1
  • trysu 7天前
    0 104
    Mark
  • sxc 10天前
    0 103
    学习
  • 0 102
    666 学习一下。
  • qinless 11天前
    0 101
    666
  • qqqqq5000 12天前
    0 100
    大佬六匹
  • junjie 18天前
    0 99
    大佬六匹
  • chenlin 1月前
    0 98
    学习一下,研究了很久没搞明白
  • lg003x 1月前
    0 97
    666学习了
  • 0 96
    xxxxx
  • ccc008 1月前
    0 95
    学习了
  • 0 94
    666666
  • lumashi 1月前
    0 93
    666
  • huruwo 1月前
    0 92
    抖音会验证运行环境生成xg。用unidbg产出的xg很多接口不返回数据
  • ayixi 1月前
    0 91
    1
  • summer15 1月前
    0 90
    谢谢大佬分享
  • bzvs1125 1月前
    0 89
    康康哈~~~
  • startzm 1月前
    0 88
    看看
  • zq9120 1月前
    0 87
    66666
  • 0 86
    666
  • killbr 1月前
    0 85
    学习
  • keynest 1月前
    0 84
    学习学习
  • 0 83
    666666
  • 0 82
    666
  • bigfish 2月前
    0 81
    1
  • Ail 2月前
    0 80
    学习学习
  • 0 79
    学习
  • zjy6622 2月前
    0 78
    666
  • fkms 2月前
    0 77
    学习
  • 0 76
    这个厉害了
  • 0 75
    前来学习
  • 0 74
    666
  • dosrka 2月前
    0 73
    666
  • q532373 2月前
    0 72
    666
  • tapas 2月前
    0 71
    太他妈牛逼了
  • 0 70
    1111
  • 0 69
    666
  • hqs19930 2月前
    0 68
    666
  • 0 67
    太强了
  • bbdgvt 3月前
    0 66
    看看具体怎么用的
  • zunhai 3月前
    0 65
    学习学习
  • GodA 3月前
    0 64
    look look study study
  • Final 3月前
    0 63
    嘿嘿,学习时间又到了
  • vistart 3月前
    0 62
    1
  • 0 61
    学习了
  • zzzzqxp 3月前
    0 60
    666
  • imcczy 3月前
    0 59
    谢谢分享
  • yuexi 3月前
    0 58
    1
  • qaingge 3月前
    0 57
    哈哈哈
  • jasonxgw 3月前
    0 56
    666
  • 哈哈 3月前
    0 55
    6
  • 0 54
    666
  • strive 3月前
    0 53
    666
  • bad 3月前
    0 52
    666
  • mmking 3月前
    0 51
    6666
  • freeman 3月前
    0 50
    6666
  • lang 3月前
    0 49
    666
  • ejiaogl 4月前
    0 48
    想看看有没有iOS的调用例子
  • 0 47
    666666
  • 0 46
    已经还原unidbg 调用的xg04算法-
  • 0 45
    666
  • qwerty 4月前
    0 44
    6666
  • haonit 4月前
    0 43
    6啊
  • 0 42
    6666
  • tangxu 4月前
    0 41
    1111
  • 0 40
    666666666666666666666666666666666
  • boris 4月前
    0 39
    666
  • 0 38
    666
  • 0 37
    666
  • maluya 4月前
    0 36
    谢谢大佬
  • lol_olo 4月前
    0 35
    学习学习
  • 0 34
    6666
  • 0 33
    6666666666
  • xydyy1 4月前
    0 32
    666
  • zx 4月前
    0 31
    学习来了
  • 0 30
    66666
  • feng504x 4月前
    0 29
    666
  • zenghuan 4月前
    0 28
    这个就很666666666
  • a10078 4月前
    0 27
    66666
  • 0 26
    学习
  • 789十 4月前
    0 25
    666
  • franics 4月前
    0 24
    666学习了
  • wbk 5月前
    0 23
    看看
  • 七仔 5月前
    0 22
    前来学习
  • 5月前
    0 21
    谢谢大佬分享
  • a10078 5月前
    0 20
    谢谢大佬分享
  • 0 19
    11111javascript:history.back();
  • qwj520 5月前
    0 18
    调用非静态方法时,会报错
  • LBin 5月前
    0 17
    666
  • 0 16
    66666
  • 0 15
    666
  • damen 5月前
    0 14
    see see
  • ran 5月前
    0 13
    大佬
  • 0 12
    111
  • ralphh 5月前
    0 11
    感谢!
  • Aimer 5月前
    0 10
    666
  • 0 9
    go
  • 0 8
    看看
  • franky 5月前
    0 7
    666
返回