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

冬晨夕阳 11月前 29245


目前很多 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


最新回复 (144)
  • qingshang 20天前
    0 145
    谢谢分享
  • Yotom 22天前
    0 144
    666
  • sheeeep 1月前
    0 143
    66666
  • samuncle 1月前
    0 142
    进来学习,谢谢分享
  • hongwang 1月前
    0 141
    66666
  • 0 140
    666
  • 0 139
    666666666666
  • botong 2月前
    0 138
    学习了
  • rockxsj 2月前
    0 137
    支持  有希望了
  • a5529009 2月前
    0 136
    学习
  • 0 135
    66666
  • zhitong 2月前
    0 134
    666
  • 0 133
    666666
  • dodo 3月前
    0 132
    6666
  • 0 131
    学习学习呀。
  • xhyzwhh 3月前
    0 130
    666
  • haha8 3月前
    0 129
    好66
  • 0 128
    学习了
  • 0 127
    相当不错了
  • smart 3月前
    0 126
    6666
  • zjy6622 3月前
    0 125
    666
  • 0 124
    学习学习
  • Miscf 4月前
    0 123
    666
  • zk2020 4月前
    0 122
    6
  • 0 121
    前来学习
  • yyrr 4月前
    0 120
    前来学习
  • 0 119
    66
  • huangshi 4月前
    0 118
    学习学习
  • jhan 4月前
    0 117
    666学习了
  • 0 116
    66666666666
  • zero 5月前
    0 115
    666666666
  • everou 5月前
    0 114
    666
  • 0 113
    123
  • 0 112
    666
  • terry_hk 5月前
    0 111
    来,看一看大神的文章
  • 5月前
    0 110
    99999
  • 0 109
    look
  • 0 108
    kankan
  • 0 107
    looklook
  • ngt81403 6月前
    0 106
    迪奥
  • 0 105
    1
  • trysu 6月前
    0 104
    Mark
  • sxc 6月前
    0 103
    学习
  • 0 102
    666 学习一下。
  • qinless 6月前
    0 101
    666
  • 0 100
    大佬六匹
  • junjie 6月前
    0 99
    大佬六匹
  • chenlin 7月前
    0 98
    学习一下,研究了很久没搞明白
  • lg003x 7月前
    0 97
    666学习了
  • 0 96
    xxxxx
  • ccc008 7月前
    0 95
    学习了
  • 0 94
    666666
  • lumashi 7月前
    0 93
    666
  • huruwo 7月前
    0 92
    抖音会验证运行环境生成xg。用unidbg产出的xg很多接口不返回数据
  • ayixi 7月前
    0 91
    1
  • summer15 7月前
    0 90
    谢谢大佬分享
  • bzvs1125 7月前
    0 89
    康康哈~~~
  • startzm 7月前
    0 88
    看看
  • zq9120 7月前
    0 87
    66666
  • 0 86
    666
  • killbr 7月前
    0 85
    学习
  • keynest 7月前
    0 84
    学习学习
  • 0 83
    666666
  • 0 82
    666
  • bigfish 8月前
    0 81
    1
  • Ail 8月前
    0 80
    学习学习
  • 0 79
    学习
  • zjy6622 8月前
    0 78
    666
  • fkms 8月前
    0 77
    学习
  • 0 76
    这个厉害了
  • 0 75
    前来学习
  • 0 74
    666
  • dosrka 8月前
    0 73
    666
  • q532373 8月前
    0 72
    666
  • tapas 8月前
    0 71
    太他妈牛逼了
  • 0 70
    1111
  • 0 69
    666
  • hqs19930 8月前
    0 68
    666
  • 0 67
    太强了
  • bbdgvt 9月前
    0 66
    看看具体怎么用的
  • zunhai 9月前
    0 65
    学习学习
  • GodA 9月前
    0 64
    look look study study
  • Final 9月前
    0 63
    嘿嘿,学习时间又到了
  • vistart 9月前
    0 62
    1
  • 0 61
    学习了
  • zzzzqxp 9月前
    0 60
    666
  • imcczy 9月前
    0 59
    谢谢分享
  • yuexi 9月前
    0 58
    1
  • qaingge 9月前
    0 57
    哈哈哈
  • jasonxgw 9月前
    0 56
    666
  • 哈哈 9月前
    0 55
    6
  • 0 54
    666
  • strive 9月前
    0 53
    666
  • bad 9月前
    0 52
    666
  • mmking 10月前
    0 51
    6666
  • freeman 10月前
    0 50
    6666
  • lang 10月前
    0 49
    666
  • ejiaogl 10月前
    0 48
    想看看有没有iOS的调用例子
  • scrapy_he 10月前
    0 47
    666666
  • 0 46
    已经还原unidbg 调用的xg04算法-
返回