攻防世界新手模式crypt

下载附件,发现是.exe文件,使用静态分析

拖入ida,从主函数分析

得到的信息:

1.为Str赋值

2.sub_1400054D0()   为输入函数

3.sub_140001120()  和  sub_140001140() 类似于两个加密函数

4.v10 进行异或  得到 数组 byte_14013B000[22],双击可得到该数组的值

0x9E, 0x0E7, 0x30, 0x5F, 0x0A7, 0x1, 0x0A6, 0x53, 0x59, 0x1B, 0x0A, 0x20, 0x0F1, 0x73, 0x0D1, 0x0E, 0x0AB, 0x9, 0x84, 0x0E

然后分析 .sub_140001120() 和 sub_140001140()

看到256 ,并且 为V9的每个数组都进行了赋值  还 进行了异或,大致可以确定使用了RC4加密

Str为密钥

RC4加密算法的及讲解:https://www.bilibili.com/video/BV1994y1o7tj?

正面理解这道题为:

1.对用户输入的V10 进行RC4加密 ,得到密文

2.密文再与0x22 异或 得到 byte_14013B000[22]

逆向理解为:

1.byte_14013B000[22] 与 0x22异或 得到 密文

2.密文 再进行RC4 解密(解密时用到了异或) 得到 明文

明文即所求

故脚本如下

先求密文异或后的结果:存在flag1中

转化为16进制后:

所以:

flag{nice_to_meet_you}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值