首页
社区
课程
招聘
某右 so层ollvm字符串混淆
发表于: 2021-3-22 11:00 13648

某右 so层ollvm字符串混淆

2021-3-22 11:00
13648

本次逆向分析用到的工具:adb、ida、010Editor、ddms。

这次主要对某右的libnet_crypto.so分析,主要工作是分析ollvm混淆的字符串被处理加密。

先检测一下设备是否正常

adb devices

然后解压apk文件,提取出lib目录下的libnet_crypto.so文件

armeabi-v7a对应的是32位的ARM设备,调试使用IDA,不要用IDA64

so文件挺大的,编译需要等待一会,看一下字符串,基本都是混淆加密的

接下来,分析一下JNI_onload

先看一下JNI_onload流程,不是很复杂

F5或者空格查看伪代码,代码没什么混淆

修改参数,静态分析方法

右键选择set lvar typey修改参数类型

)

在下面GetEnv处 选择Force call type识别一下类型

v4JNIenv * 也修改一下

)

下面 FindClassRegisternatives也一下,识别一下类型

点进去查看,没有native方法的对应关系,第一个参数是javanative的方法名称,第二个参数是javanative的签名信息,第三个参数才是对应的c\c++的参数

)

根据上面静态分析遇到的问题,接下来的想法是恢复被ollvm加密混淆的字符串信息

打开010Editor,将so文件和elf头文件拖进去

主要分析数据区域

第一个是程序头,不是关注的,第二个和第三个是关注重点,第二个是只读的,那么根据so文件对字符串进行加解密可以判断ida编译出的混淆字符串属于第三个区域

这部分区域是被加密处理的

)

那对于这个so的还原,就需要dump出解密后的数据,将数据复制到原加密数据位置,完成对字符串解密。

dump的位置可能在JNI_onloadinitinit_aray

ida 附加一下进程,看一下so文件是否被加载

先进行一下android端的配置

找到idaandroid_server

)

idaandroid_server发送到android

)

执行android_server

转发端口

)

附加端口,这里先要启动apk

Debugger-> Attach -> Remote ARmlinux\Android debugger


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2021-3-22 11:16 被ST0n5编辑 ,原因: 补图
收藏
免费 5
支持
分享
最新回复 (7)
雪    币: 117
活跃值: (3012)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
部分图挂了
2021-3-22 11:08
0
雪    币: 1229
活跃值: (694)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
我重新上传一下 ,感谢
2021-3-22 11:13
0
雪    币: 707
活跃值: (1301)
能力值: ( LV9,RANK:190 )
在线值:
发帖
回帖
粉丝
4
666,学习了
2021-3-22 18:36
0
雪    币: 111
活跃值: (235)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
厉害
2021-3-22 18:40
0
雪    币: 232
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
混淆能不能破??
2021-5-31 11:20
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
大佬,elf头文件是哪里下载的呀
2022-3-29 18:23
0
雪    币: 67
活跃值: (402)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
那为什么不直接用修复后的内存so呢
2022-3-30 12:24
0
游客
登录 | 注册 方可回帖
返回
//