首页
社区
课程
招聘
[原创]360加固之onCreate函数还原并重打包
发表于: 2017-12-9 20:06 28154

[原创]360加固之onCreate函数还原并重打包

2017-12-9 20:06
28154

断断续续弄360的壳子搞了个把月,把这次的成果分享给大家。。。


在还原之前,我们需要一份360加固的指令映射表,感谢https://bbs.pediy.com/thread-222412.htm这篇文章提供的指令映射表,我对这个表进行了补全,包含所有的Dalvik opcode

struct DexCode {

u2  registersSize;           

u2  insSize;        

u2  outsSize;                

u2  triesSize;               

u4  debugInfoOff;      

u4  insnsSize;          

u2  insns[1];            

};


对于native onCreate函数的DexCode,前0x10个字节没有加密, 后面的insns被360加密了,我们需要做的就是将insns指令还原,

加密的insns指令以及解码insns指令的key值都是通过parse_tree这个函数得到的,其中第一个参数是一个全局变量,第二个参数是"类名->方法名"


虽然可以手动改变第二个参数为不同类的onCreate方法,来获取不同方法的加密指令insns,但是我分析的样本是360自家的一个App,共有49个native onCreate函数,手动弄很麻烦,


还原的核心思路就是手动调用parse_tree函数,

由于parse_tree函数是在360的第二个so里面,而且是通过内存加载的方式来加载这个so,这里我们来进行“ 二阶Hook ” 获取parse_tree函数地址


首先Hook dlopen函数得到libjiagu.so的基址,在new_dlopen函数中内存加载函数soMemLoader


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 5
支持
分享
最新回复 (23)
雪    币: 7
活跃值: (263)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
mark  赞
2017-12-9 20:09
0
雪    币: 7
活跃值: (263)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
内存加载so
最后于 2018-4-7 11:31 被bluth编辑 ,原因:
2017-12-9 21:09
0
雪    币: 387
活跃值: (897)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
2017-12-10 08:22
0
雪    币: 303
活跃值: (179)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
5
其实最新的也还是表,笑着哭
2017-12-10 15:52
0
雪    币: 238
活跃值: (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
2017-12-10 17:28
0
雪    币: 14846
活跃值: (6078)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
学习
2017-12-11 09:11
0
雪    币: 268
活跃值: (630)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
8
2017-12-11 10:03
0
雪    币: 268
活跃值: (3233)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
9
2017-12-11 10:49
0
雪    币: 268
活跃值: (3233)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
10
問下main.dex原文件來自哪里?来自原来的apk好像大小不对
2017-12-11 16:22
0
雪    币: 172
活跃值: (1623)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
11
gtict 問下main.dex原文件來自哪里?来自原来的apk好像大小不对
脱掉的原始dex
2017-12-11 16:59
0
雪    币: 67
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12

soMemLoader,parse_tree这两个函数是怎么跟出来的
2017-12-15 16:59
0
雪    币: 236
活跃值: (361)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
ZIP打不开
2017-12-16 20:30
0
雪    币:
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
膜拜
2017-12-16 22:39
0
雪    币: 574
活跃值: (405)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
支持下高手
2017-12-27 15:23
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
小白看不懂
2018-1-15 04:01
0
雪    币: 35
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
 
2018-1-21 17:42
0
雪    币: 35
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
同问  soMemLoader,parse_tree这两个函数是怎么跟出来的  谢谢
2018-1-21 18:17
0
雪    币: 152
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
看不太懂……MARK一下……。
2018-1-22 21:36
0
雪    币: 85
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
  谢谢分享
2018-1-25 22:48
0
雪    币: 448
活跃值: (169)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
是在ida中调用吗?能不能详细说一下?进IDA  ,搞不定呀。。。
2018-1-27 21:33
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
很厉害了,多多分享,多多学习
2018-2-25 04:11
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
小白没法用。。。
2018-4-6 18:02
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
大佬360加固的指令映射表能发给我吗,我有急用
2019-3-2 13:38
0
游客
登录 | 注册 方可回帖
返回
//