[CISCN 2022 东北]easycpp

文件属性

在这里插入图片描述
64位exe无壳


静态分析

在这里插入图片描述
输入+初始化+判断长度
sub_7FF7DA6C2B60 函数将输入内容赋给Src,长度赋给Size
并判断输入内容长度是否为38
在这里插入图片描述
将Src进行异或加密,每四个一组
在这里插入图片描述
将加密结果与Buf2比较
Buf2在静态分析中未知,需要动态分析


动态分析

在这里插入图片描述
在反汇编界面buf2给v12赋值时下断点
在这里插入图片描述
输入十三个字符
在这里插入图片描述
点击buf2再次点击地址就会出现
使用 shift + e 获得数据


EXP

key=[10,  11, 125,  47, 127, 103, 101,  48,  99,  96, 
   55,  63,  60,  63,  51,  58,  60,  59,  53,  60, 
   62, 108, 100,  49, 100, 108,  59, 104,  97,  98, 
   101,  54,  51,  96,  98,  54,  28, 125, 0]
i=37
while i>2:
    key[i-1]=key[i-1]^key[i]
    key[i-2]=key[i-2]^key[i-1]
    key[i-3]=key[i-3]^key[i-2]
    i=i-1
flag=""
for j in range(len(key)):
    flag+=chr(key[j])
print(flag)
  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值