buuctf-逆向-reverse3

题目

BUUCTF在线评测 reverse3

思路

Exeinfo PE查看程序为32位,无壳

打开IDA ,找到有main_0函数,F5得C伪码,分析如何得到 right flag!

查看Str2的内容为 e3nifIH9b_C@n@dH

 

知道了Str2,也知道Dest经过变化的代码,我们可以写脚本得到原来变化前的Dest,但是变化前的Dest从v4来,得到v4的sub_4110BE有什么作用我们不清楚,就动态调试看看

字符串查找到程序输入入口,F2下断点,运行输入aaaa,运行到sub_4110BE后,返回值YWFhYQ==像Base64加密,经验证,"aaaa" base64加密后就是 "YWFhYQ==",所以函数sub_4110BE的作用就是base64加密

现在已经知道flag的变化过程,逆推flag即可:e3nifIH9b_C@n@dH —> 一个for循环减法 —> base64解密 —> flag

for循环逆解脚本

str2 = list("e3nifIH9b_C@n@dH")
print(str2)
# print(ord(str2[0]))
for i in range(0,len(str2)):
    str2[i]= chr(ord(str2[i])-i) #改为相减

print(''.join(str2))

#ord():字符转ascii码
#chr():ascii码转字符

得到 e2lfbDB2ZV95b3V9

 base64解密e2lfbDB2ZV95b3V9

 得到flag{i_l0ve_you}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值