首页
社区
课程
招聘
[分享]360加固脱壳分析
发表于: 2020-11-4 16:09 35140

[分享]360加固脱壳分析

2020-11-4 16:09
35140

分享一个简单的脱壳图文教程,大家也可以先了解一下,对于有加固的软件都是需要先脱壳才能做逆向分析。
那我们就先看一下这个加固是怎样脱壳的。
首先直接看这个so库:
图片描述
拖入IDA静态看一下:发现看不到什么信息,原因很简单,因为被处理了;
图片描述
怎么办呢?通过010进行对so简单修改:
拖入IDA,使用ELF.b进行识别:
图片描述
识别效果:
图片描述
头里面描述了有关节的信息:
图片描述
先修改节的偏移:
图片描述
这个三个:
图片描述
保存之后,然后继续拖入IDA:发现没报异常,可以识别一些东西
图片描述
为什么这样就能成功呢?因为我们把节有关的信息去除之后,他开始解析段的信息;
看导出函数列表,发现函数名称也是被处理过的,但是JNI_Load还是可以看到的:
图片描述
双击过来,还是可以看到一些信息的;
图片描述
ctrl+S ,来到这里,看一下:
图片描述
点击sub_1AD8:发现也没什么信息~
图片描述
直接F5,看JNI_Load的信息:
图片描述
修改一下参数:
图片描述
点进去看一下下面的那个函数也看不出来什么;
回到汇编窗口:
图片描述
双击进去后:
图片描述
继续跟:
图片描述
过来后:
图片描述
发现是一个switch循环;
图片描述
F5一下:
图片描述
分支挺长的,看不出来啥;直接动态分析;
这个函数的分析,同样的在open函数下断:
F9之后,加载进来这个so:
图片描述
linker处下断:
图片描述
libdvm下断:
图片描述
F9后,linker处断下:
图片描述
F7进去,发现没什么;
图片描述
继续F9linker断下,然后F7:
图片描述
F7往下走,发现有个函数:

图片描述
进入后来到libdvm.so,与getenv有关;
图片描述
回来后,继续F7,这里有个函数:
图片描述
F7进去:往下跟:
图片描述
过来后:
图片描述
F7往下,这里有个函数,
图片描述
进去:F7往下,发现这里是一个循环:一直比较R2和R3的值;
图片描述
4后F7往下走,来到了跳转表这里:

图片描述
继续F7往下,来到了case26分支:
图片描述
一路F7往下,这里有一个BLX函数:
图片描述
F7往下,同步R1寄存器;发现有关键字眼;
图片描述
再往下是一个循环,同时同步R3寄存器,是在解密字符串:

图片描述
再往下,又一个亦或循环:通过R2寄存器
图片描述
继续f7,
图片描述
继续F8往下:来到这里:
图片描述
继续F7往下;这里是一个循环,一直在读取,然后一直比较R0的值;
图片描述
如果这里BEQ相等的话,就会直接跳到这里:
图片描述
上面的是从linker到JNI_Load,说明在linker里面没有进行操作,所以,可以换一种,直接在libdvm哪里找到JNI_onload也行;
重新使用一种方法,使用open函数,往上回溯;
跳到open函数, 然后F2下断,然后F9运行,然后Ctrl+F7回溯:
同步R0窗口,出现这个,说明在遍历tracepid,
图片描述
继续回溯:
图片描述
继续回溯:
图片描述
为什么之前又一次运行道这里程序就崩溃了?
原因是程序此时R1寄存器的值:
图片描述
这个值什么意思?
我们先把4A24转化成10进制:‭18980‬
执行一个adb命令:这个就是当前as的进程;说明他当前已经检测到我们在调试该程序;
图片描述
所以我们需要把这个反调试干掉:
图片描述
也就是说,case26就是反调试的分支;
图片描述
改了之后继续往上回溯:
图片描述
继续回溯,此时来到这个位置;
图片描述
继续 往上回溯:
此时R0和0进行比较,此时R0的值依然是as的进程号;
图片描述
如果不相等,就跳转到这里
图片描述
点进去,发现是kill:
图片描述
会来,往上p一下,是一个函数,
图片描述
进去:p一下:
明显和这个就是反调试的逻辑,这个分支代码比较多;
图片描述
我们怎么修改呢,只需要让这个函数返回固定的值即可;
修改代码之前,先把这里置零;
图片描述
同步一下反汇编窗口,点击前面的这里会显示下面对应的十六进制:
图片描述
这个是arm指令,
执修改指令:第一条:
图片描述
选取后8位,F2进行修改:
图片描述
继续修改第二条:
图片描述
修改后效果:
图片描述
过掉反调试后,在mmap处下断:mmap尾部处也下一个断点;
图片描述
好,F9运行程序:使其在mmap处函数段下来;
图片描述
这里mmap如何查看呢?至二级F9运行到mmap函数尾部,然后F7进去下一步,就是不同的函数调用的地方、遇到libdvm.so的不用管,h直接F9继续在mmap处蹲下,只观察jiagu.so;
注意在mmap处的操作:不能直接F9从头部执行尾部断下,要单步跟一下,即将进去的so也要单步跟一半,然后在F9;
继续执行上面操作首先会在这里出现apk信息:
图片描述
继续操作,出现了这个:
图片描述
继续:下面R0窗口出现了dey036;
图片描述
继续操作,这里出现了与dex有关的信息:
图片描述
看他地址,我们来到他的区间:
过来后,这几就是他解密后的dex
图片描述
这里是这个dex文件的大小:
图片描述
知道起始地址和大小后,使用脚本:
图片描述
dump可能需要时间;
也就是说,出现相关dex文件的时候,如果没有出现太多信息,我们可以ctrl+s查看模块信息,一般他会把dex相关信息放到其他区域;
一般会把解密后的dex放到内存里面,比如这个是放在debug里面:

图片描述
好,找到dump出来的文件;
图片描述
拖入jdax,这就是一些相关的代码;
图片描述
点看看一下相关的逻辑,发现都有,说明脱壳挺成功的;


[招生]系统0day安全班,企业级设备固件漏洞挖掘,Linux平台漏洞挖掘!

收藏
免费 16
支持
分享
最新回复 (21)
雪    币: 226
活跃值: (1439)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
有分析的样本文件吗,我想跟着走一遍
2020-11-5 14:52
0
雪    币: 1137
活跃值: (630)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
大佬,你的ELF.bf文件是自己写的还是在官网上下载的模板呢
2020-11-5 16:43
0
雪    币: 4448
活跃值: (4038)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
D-t
4
这不是新版加固的so 看so可以看出来 新版跟之前的差不多  也就是三个反调试
2020-11-5 18:32
0
雪    币: 576
活跃值: (2035)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
图片好模糊,希望放上样本
2020-11-8 16:25
0
雪    币: 722
活跃值: (96)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
这个对于新手是非常需要的
2020-11-8 20:47
0
雪    币: 630
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
schoolyears 这个对于新手是非常需要的
是的
2020-11-9 11:04
0
雪    币: 1556
活跃值: (310)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
8
前面几个图太小了
2020-11-10 09:00
0
雪    币: 79
活跃值: (373)
能力值: ( LV11,RANK:195 )
在线值:
发帖
回帖
粉丝
9
来个apk,跟着跑一遍,大佬
2020-11-10 17:03
0
雪    币: 630
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
木羊 前面几个图太小了
不清晰对吗?
2020-11-10 17:26
0
雪    币: 630
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
11
破解pj 来个apk,跟着跑一遍,大佬
我找一个哈哈哈
2020-11-10 17:27
0
雪    币: 4
活跃值: (346)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
12
那个是010editor的脚本,在软件菜单栏有一个script,可以去网上下载各种格式的脚本
2020-11-11 09:40
1
雪    币: 231
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
13
完全看不懂。看的我是一脸的懵,还有救吗?
2020-12-18 09:37
0
雪    币: 205
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
14
很深!看不懂
2020-12-18 12:07
0
雪    币: 9479
活跃值: (757)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
17年的,
2020-12-18 14:40
0
雪    币: 9
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
16
虽然看不懂但看着很厉害
2021-12-4 14:00
0
雪    币: 2242
活跃值: (1119)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
初代加固烂大街
2021-12-4 19:59
0
雪    币: 116
活跃值: (1012)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
tql
2021-12-5 18:22
0
雪    币: 269
活跃值: (450)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
怎么没有最新版本的分析
2021-12-5 19:51
0
雪    币: 2465
活跃值: (10757)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
*笑容* 怎么没有最新版本的分析
现在版本的Activity的onCreate方法转native了,也就是脱出来dex中没有onCreate的代码了,不知道大佬们怎么脱全
2022-2-16 17:01
0
雪    币: 25
活跃值: (580)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
现在没有最新的加固分析了吗
2023-1-9 10:10
0
雪    币: 116
活跃值: (1012)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
可以发个样本吗 方便新手学习
2023-1-9 12:13
0
游客
登录 | 注册 方可回帖
返回
//