爬虫工程师的 unidbg 入门教程 学习资源 Android逆向 原创

zhaoboy666 2019-12-29 24269


* 现在很多的app使用了so加密,以后会越来越多。爬虫工程师可能会直接逆向app,看java代码,完成java层的算法破解,但是如果遇到so该怎么办呢?可能你会直接破解so,但是真的会有很多爬虫工程师会去并且会破解so吗?有时候我们可以不用破解so,利用很多大佬写好的轮子即可完成so的调用。

*说到调用,就有很多方法了,比如用frida的rpc、xposed+andserver、再者就是unicorn+web框架等等,今天要说的并不是这些,而是unidbg,这框架有什么好的地方呢?看看介绍。

## 介绍(来自逸飞)

unidbg 是一个基于 unicorn 的逆向工具,可以黑盒调用安卓和 iOS 中的 so 文件。unidbg 是一个标准的 java 项目。

由于现在的大多数 app 把签名算法已经放到了 so 文件中,所以要想破解签名算法,必须能够破解 so 文件。但是我们知道,C++ 的逆向远比 Java 的逆向要难得多了,所以好多时候是没法破解的,那么这个时候还可以采用 hook 的方法,直接读取程序中算出来的签名,但是这样的话,需要实际运行这个应用,需要模拟器或者真机,效率又不是很高。

unidbg 就是一个很巧妙地解决方案,他不需要直接运行 app,也无需逆向 so 文件,而是通过在 app 中找到对应的 JNI 接口,然后用 unicorn 引擎直接执行这个 so 文件,所以效率也比较高。

* 这里重要的是目前利用unidbg+springboot做成了web服务。

## 食用

案例来自JXU2QkQyYXBwJTIwdjQuMTYuMA==

对于该app而言,是非常适合入门的一个app,未加固、算法简单、很容易找到so的jni。

先去凯神的github上下载[https://github.com/zhkl0228/unidbg](https://github.com/zhkl0228/unidbg)

下载完毕用idea打开,等待maven下载完毕。我这里已经创建好du的文件。

![](https://user-gold-cdn.xitu.io/2019/12/27/16f47d3080de78a1?w=896&h=256&f=png&s=55937)

上个代码看着比较方便,代码中有很多注释

上边代码有jni的类是哪一个需要知道,就是下面这个类,这个其实是和加载so有关系的。

`  TTEncryptUtils = vm.resolveClass("com/*/aesjni/AESEncrypt");`

我们需要逆向app,这里不细说如何在app中寻找加载so的类。如下图,encodeByte是该app调用native层加密的入口,loadLibrary是java加载so的方法,这个类就是上述代码中填写的。

![](https://user-gold-cdn.xitu.io/2019/12/27/16f47dad71761786?w=1040&h=627&f=png&s=90723)

然后再看`"encodeByte(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;"`这里,这是smali写法,不补基础,后面跟上需要传的参数,

`getByteValues` 这个方法是毒获取的一个01字符串,并且在java层进行了处理,然后再传进`encodeByte`里面,`encodeByte`这个方法最后获取的其实并不是最终需要的,需要md5才是最后的newSign。可以验证一下下。

![](https://user-gold-cdn.xitu.io/2019/12/27/16f47ee56a30abb4?w=1381&h=669&f=png&s=320545)

测试结果通过。

### 最后

启动java文件时候注意这个改成自己的平台!!!

```

VM options: -Djava.library.path=prebuilt/os -Djna.library.path=prebuilt/os

Where os may: linux64, win32, win64, osx64

```

![](https://user-gold-cdn.xitu.io/2019/12/27/16f47f8291d2ad56?w=740&h=275&f=png&s=26594)

最后这个文件放在[https://github.com/zhaoboy9692/dailyanalysis](https://github.com/zhaoboy9692/dailyanalysis)喜欢的可以star,谢谢。



最新回复 (181)
  • 0 182
    6666666
  • 0 181
    1
  • ych 7天前
    0 180
    1
  • Ahfhjjh 8天前
    0 179
    666666666666
  • 0 178
    66666
  • qqqqq5000 12天前
    0 177
    unidbg
  • 1419245341 19天前
    0 176
    学习学习
  • 荞荞 1月前
    0 175
    666666
  • waihui 1月前
    0 174
    康康
  • simple 1月前
    0 173
    666
  • 0 172
    666666666
  • 0 171
    6666
  • Ail 1月前
    0 170
    看看
  • wawa 2月前
    0 169
    高手
  • 0 168
    mark!谢谢楼主!
  • bigfish 2月前
    0 167
    1
  • 暖年 2月前
    0 166
    666
  • vipsky 2月前
    0 165
    see see
  • zjy6622 2月前
    0 164
    太强
  • 0 163
    学习一下
  • wubucai 2月前
    0 162
    学习学习
  • haonit 2月前
    0 161
    wt
  • 0 160
    666
  • feng504x 3月前
    0 159
    666
  • GodA 3月前
    0 158
    look look
  • 0 157
    看看
  • 0 156
    学习学习
  • Yh990 3月前
    0 155
    1
  • dch5568 3月前
    0 154
    666
  • 0 153
    6
  • 0 152
    ssus学习
  • 3月前
    0 151
    啊啊
  • lol_olo 3月前
    0 150
    看看
  • Masol7 4月前
    0 149
    66
  • king 4月前
    0 148
    1
  • 0 147
    6666666666666666666
  • jin 4月前
    0 146
    66666
  • musk 4月前
    0 145
    666
  • xiang 4月前
    0 144
    +1
  • 0 143
    大佬6666
  • li666666 4月前
    0 142
    厉害
  • desson 4月前
    0 141
    学习
  • 0 140
    66
  • AronChen 5月前
    0 139
    666666
  • rezalt 5月前
    0 138
    必须学习一波
  • sym 5月前
    0 137
    6666
  • 0 136
    kk             
  • spadeA 5月前
    0 135
    666啊
  • zzzzqxp 5月前
    0 134
    66
  • 0 133
    牛逼牛逼
  • 凌点 5月前
    0 132
    666
  • flys 5月前
    0 131
    666
  • 0 130
    666
  • ralphh 5月前
    0 129
    感谢!
  • Aimer 5月前
    0 128
    6666
  • 0 127
    1
  • dosrka 5月前
    0 126
    666
  • nothing 6月前
    0 125
    666
  • BUGG 6月前
    0 124
    77777777
  • dawn 6月前
    0 123
    tql
  • 0 122
    11111111
  • lodge 6月前
    0 121
    这个论坛什么时候支持md语法就棒了  现在没有那个语法 看着乱乱的
  • lodge 6月前
    0 120
    学习下
  • 0 119
    学习
  • 0 118
    强啊
  • bad 6月前
    0 117
    马克。
  • tangxu 6月前
    0 116
    66666666666
  • kwx 6月前
    0 115
    66666666
  • 789十 6月前
    0 114
    666
  • 52Hz 7月前
    0 113
    666666666666666666666666666
  • 0 112
    6666
  • 0 111
    666
  • 句点 7月前
    0 110
    6666
  • 0 109


    高薪聘 爬虫大佬 2070426047  q

  • 0 108
    6666666
  • biubiu7 7月前
    0 107
    66666
  • 0 106
    回复才能看的吗
  • asan1148 7月前
    0 105
    666
  • Andrew 7月前
    0 104
    看看
  • squallx 7月前
    0 103
    这个好难啊啊感觉
  • 0 102
    有知道为啥在调用so函数后getValue的时候返回空指针嘛
  • qwe 8月前
    0 101
    1
  • 哈哈 8月前
    0 100
    6
  • 0 99
    666
  • ikkyu 8月前
    0 98
    666
  • mo华 8月前
    0 97
    看不到
  • 0 96
    看看
  • sky 8月前
    0 95
  • allen 8月前
    0 94
    学习
  • 0 93
    6666666
  • shcvip 8月前
    0 92
    回复 回复
  • Liberty 8月前
    0 91
    666
  • 0 90
    6666
  • duhongyu 9月前
    0 89
    66666
  • 0 88
    看看
  • 0 87
    看看
  • goodgood 9月前
    0 86
    看看
  • hqucsx 9月前
    0 85
    牛批
  • everou 9月前
    0 84
  • dafei01 9月前
    0 83
    学习
返回