首页
社区
课程
招聘
[原创]2020年kctf春季赛 - 第二题 子鼠开天
发表于: 2020-4-17 12:21 12598

[原创]2020年kctf春季赛 - 第二题 子鼠开天

2020-4-17 12:21
12598

先拿提供的name和sn跑一下程序。

 

查壳:

 

无壳,32位程序 直接拉ida里面分析

找到main函数直接分析

 

输入了name和sn 判断了一下sn的长度 要求是64位,然后关键函数就是sub_401380

 

大致逻辑应该是先校验了一下name和sn的长度,然后sn通过sub_401000计算出来v9,v9通过sub_4010F0计算出来v10,v10通过sub_401210计算出来v5 后面 v6 v7应该是v5的属性应为并没有看到有对其赋值,所以v5可能是一个结构体或者数组。

判断else里面是正确的 sub_401190用到了name和nameLength v4应该是个结果 所以 sub_401190可能是对name做操作的函数,在下面就是用v4的值和v8的值比较 根据上面的分析 v8应该也是v5的某个属性,

所以猜测逻辑 就是  长度校验  校验完了一堆处理

V8 = sn 3次处理之后的值

V4=name 处理之后的值

然后判断 如果成功 就通过了。。

现在就需要对sn处理的三个函数sub_401000 sub_4010F0 sub_401210 和 对name处理的sub_401190 做函数分析。

对数据的加密解密是有一些开源库的  我们先看一下 字符串特征 看看有没有见过的开源库~

 

字符串中有包括这种的,所以我们找一下 openssl 0.9.8的版本 做一下sig.

载入OpenSSL的sig之后 我们会发现解析了一些函数

 

 

现在就需要一个函数一个函数去分析了

第一个函数:sub_401000

 

可以根据经验和动态调试分析出这个函数是就是把sn字符串转换成了16进制的数组(经验是别的师傅的 动态调试是我的~

第二个函数:sub_4010F0 双击进去我们发现我们之前加载的sig识别出来一个函数

 

网上搜索 AES_ecb_encrypt openssl我们发现 最后一个参数a6 是用来 判断 加密还是解密的 如果是 a6=1 是加密  =0是解密

第三个函数:sub_401210

 

 

 

 

这样字符串 上网搜一搜  发现这是第三方大数库的东西 也是在openssl里面的  我们还看到了 0x10001   上面的v10应该是个Key 从此处不难推出这是一个rsa算法

4.sub_401190

 

这个听说是一个tea算法 但是我们不用解 直接调用这个函数 拿着数据 回推一步步加密就能拿到sn了

 

那么开始回推

1.先拿到最后加密出来的结果

2.rsa加密

3.aes加密


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 6
支持
分享
最新回复 (11)
雪    币: 5568
活跃值: (3208)
能力值: ( LV12,RANK:407 )
在线值:
发帖
回帖
粉丝
2
整数分解质因数的网址可以分享下么?
2020-4-19 10:44
0
雪    币: 889
活跃值: (4118)
能力值: ( LV6,RANK:98 )
在线值:
发帖
回帖
粉丝
3
网址:https://www.alpertron.com.ar/ECM.HTM  
2020-4-19 13:34
0
雪    币: 204
活跃值: (911)
能力值: (RANK:1324 )
在线值:
发帖
回帖
粉丝
4
factordb
2020-4-19 13:56
0
雪    币: 566
活跃值: (231)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
5
师傅写的非常好,学到了很多
2020-4-20 16:44
0
雪    币: 889
活跃值: (4118)
能力值: ( LV6,RANK:98 )
在线值:
发帖
回帖
粉丝
6
Sarace 师傅写的非常好,学到了很多
哈哈哈  谢谢~
2020-4-21 17:06
0
雪    币: 1260
活跃值: (2168)
能力值: ( LV5,RANK:75 )
在线值:
发帖
回帖
粉丝
7
还有这种网站,长见识了,看来以后多学习一下ctf
2020-4-24 17:09
0
雪    币: 75
活跃值: (156)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
大佬分析的贼6
2020-4-29 00:41
0
雪    币: 13082
活跃值: (5738)
能力值: ( LV5,RANK:77 )
在线值:
发帖
回帖
粉丝
qux
9
请问 `openssl 0.9.8的版本 做一下sig` 指的是从源码编译一个lib出来,然后生成sig文件吗?
2020-5-18 14:00
0
雪    币: 889
活跃值: (4118)
能力值: ( LV6,RANK:98 )
在线值:
发帖
回帖
粉丝
10
qux 请问 `openssl 0.9.8的版本 做一下sig` 指的是从源码编译一个lib出来,然后生成sig文件吗?
嗯~
2020-5-20 23:26
0
雪    币: 1657
活跃值: (6833)
能力值: ( LV12,RANK:215 )
在线值:
发帖
回帖
粉丝
11
什么都不说了。不老大有多优秀,世界逆向得水平就有多高!!!
2021-8-3 16:19
1
雪    币: 889
活跃值: (4118)
能力值: ( LV6,RANK:98 )
在线值:
发帖
回帖
粉丝
12
天象独行 什么都不说了。不老大有多优秀,世界逆向得水平就有多高!!!
开始了 开始了 又开始了
2021-8-3 16:59
0
游客
登录 | 注册 方可回帖
返回
//