首页
社区
课程
招聘
[原创]记录一次非常简单的so层小逆向,适合小白入门
发表于: 2020-8-3 15:58 17240

[原创]记录一次非常简单的so层小逆向,适合小白入门

2020-8-3 15:58
17240

题目要求:找出flag

0x01 前景

一个经过360加固了的APK,我们先用FART脱壳

脱壳带走,分析test

Native化,准备干libso

0x02 操作

==================================开始操作===================================

首先查看init.array部分,它的运行时机真的很早。


窥探一下这里的两个内容:第一个函数.datadiv是异或解密【双击进去后分析逻辑得到】

第二个byte_8905是个被加密过的字节


我们接着看JNI_OnLoad,可以发现只动态注册了一个函数,那我们有理由猜测是test

在动态注册时,我们通过观察IDA的.data.rel.ro需要知道方法结构体信息:

结构体包含三部分分别是:方法名、方法的签名、对应的native函数地址;

那么这里我们肯定重点看第三部分,因为要找到具体的解密函数,这时候我们需要在动态注册段对应上:


我们来验证一下:

函数名

byte_1C066:0x87, 0x96, 0x80, 0x87, 0xF3, 0, 0, 0, 0, 0

长度为4

[0]=0x87 ^ 0xF3 = 0x74 = t

[1]=0x96 ^ 0xF3 = 0x65 = e

[2]=0x80 ^ 0xF3 = 0x73 = s

[3]=0x87 ^ 0xF3 = 0x74 = t

合成得:test

所以这是test函数名


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

上传的附件:
  • 2.apk (2.44MB,216次下载)
收藏
免费 4
支持
分享
最新回复 (17)
雪    币: 482
活跃值: (1007)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
感恩大佬!
2020-8-3 23:31
1
雪    币: 5165
活跃值: (2941)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
一丁点都看不懂的路过.....
2020-8-5 10:47
1
雪    币: 3212
活跃值: (828)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
怎么看.init_array
2020-8-5 11:41
0
雪    币: 614
活跃值: (883)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
感觉这个有点取巧,如果比对不是strcmp呢?如果用memcmp, 或者干脆就逐字节比对呢?
2020-8-5 15:49
0
雪    币: 1440
活跃值: (1401)
能力值: ( LV3,RANK:23 )
在线值:
发帖
回帖
粉丝
6
疯子Tear 怎么看.init_array

Shift + F7 ,找到 .init_array 双击进去,是一个 函数表(数组),一个个看就行

最后于 2020-8-5 18:00 被Black貓①呺编辑 ,原因:
2020-8-5 18:00
0
雪    币: 3212
活跃值: (828)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
Black貓①呺 疯子Tear 怎么看.init_array Shift + F7 ,找到 .init_a ...
没有怎么办
2020-8-9 09:43
0
雪    币: 196
活跃值: (386)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
想请问下函数名怎么算的。看的一脸懵逼。
2020-8-9 13:04
0
雪    币: 1440
活跃值: (1401)
能力值: ( LV3,RANK:23 )
在线值:
发帖
回帖
粉丝
9
疯子Tear 没有怎么办
没有就直接关注 JNI_OnLoad 鲁
2020-8-10 09:28
0
雪    币: 360
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
样板呢  新手想尝试一下
2020-8-11 18:33
0
雪    币: 3194
活跃值: (5181)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
11
能出这个app分析jni onload逻辑流程的教学吗
2020-8-11 23:37
0
雪    币: 211
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
12
想请问下函数名怎么算的
2021-1-27 10:00
0
雪    币: 3212
活跃值: (828)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
0x74为什么等于t呢
2021-6-20 12:05
0
雪    币: 3212
活跃值: (828)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
Black貓①呺 没有就直接关注 JNI_OnLoad 鲁
他这个函数名咋推算的
2021-6-20 18:04
0
雪    币: 116
活跃值: (1012)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
支持一下
2021-6-21 02:21
0
雪    币: 235
活跃值: (303)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
疯子Tear 0x74为什么等于t呢[em_7]
个ascii码表一对照就是了
2021-6-21 08:29
0
雪    币: 583
活跃值: (429)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
样板呢
2021-7-12 00:19
0
雪    币: 996
活跃值: (221)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
一点没看懂
2021-7-13 10:41
0
游客
登录 | 注册 方可回帖
返回
//