avatar

看雪CTF

第二题 子鼠开天

image-20200420183449722

直接打开ida进行分析

img

大概我们知道了基本密钥的长度64,主要函数sub_401380

img

目测分成了三个算法等等,用findkey看了一下

img

具有tea和ase算法,4010F0为aes算法,401190为tea算法

401000:

img

主要是把我们输入的密码变成内存中的数据

img

经过这个算法变成:

img

0x19FE6C就相当于我ida中v9数组的地址

img

aes算法 通过v9 算出v10

img

rsa算法,通过v10算出v5,v6和v7属于v5的一个数组(猜测)没有判断条件

img

尝试去找rsa的公钥以及密钥

img

这里是我们输入数据改变的地方

img

e=0x10001

n=0x69823028577465AB3991DF045146F91D556DEE8870845D8EE1CD3CF77E4A0C39

img

img

0019FD7C可以看到后面的16位:14AF58AD4D76D59D8D2171FFB4CA2231通过已知的正确密钥看到前16位的排布

img

得到的是:00025D343CED2E5A3CD5FE94CEA15700

d = 0x390A684CB713378FFD5CCE8C4000B5D6A2BB9F29B63D395E6BE6E9DD941527BD

这个地方通过我们输入的KCTF的tea得到的对比值

data 可以随便但是 是中间随便:随意可以多解(根据题目给的序列号已知的正确的那个可以求解那么一定是正确的)

img

1
2
3
4
5
6
e = 0x10001
d = 0x390A684CB713378FFD5CCE8C4000B5D6A2BB9F29B63D395E6BE6E9DD941527BD
mod=0x6982302857 7465AB3991DF045146F91D556DEE8870845D8EE1CD3CF77E4A0C39
result = pow(0x00025D343CED2E5A3CD5FE94CEA1570014AF58AD4D76D59D8D2171FFB4CA2231 ,d, mod)
print hex(result)
//0x12a1758c9a9aace82bdfa5ed5190debc0caf522f2785e92e6cacbc6b0e3220b3

得到rsa的数据后 我们回去看一下aes加密
img

我们v10得到了,由于aes加密解密都在这个函数中 所以我直接把得到的数值放到 v9位置上

img

即 0x19FDAC

看一下ida中的逻辑

img

aes加密是根据a6有关,所以不管他是加密还是解密我们不管,直接修改a6值,a6修改成1,直接观看19FDCC数据

img

跑就完事!就可以得到解密的东西

Author: L0x1c
Link: https://l0x1c.github.io/2020/04/26/2020-4-20/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Donate
  • 微信
    微信
  • 支付寶
    支付寶