buuctf——reverse的wp(1)

目录

revers1

revers2 

 新年快乐

内涵的软件 

xor 


reverse1

1.解压后发现是exe程序,但不能正常运行。

2.用exeinfo查壳发现是64位无壳的。

3.在ida打开未发现main函数,选择查看字符串窗口。

4.发现”this is the right flag“,跟进查看(原本以为{hello_world}就是flag,发现自己太天真了)

5.该字符串被sub_1400118C0函数调用,猜测sub_1400118C0为关键函数,跟进查看。

 

6.f5得到伪代码,分析后发现str1与str2相等时flag正确,即flag为str2,而str2的初值为{hello_world},前两个if语句将str2中的o换为0,所以最终的flag为flag{hell0_w0rld} 。

revers2 

1.解压后放进exeinfo查看,发现是64位无壳的elf文件。

2.ida打开后,找到main函数,F5得到伪代码,经分析flag初始值为"hacking_for_fun}",if语句将i与r均转换为1,最终flag为flag{hack1ng_fo1_fun}。

 新年快乐

1.压缩包中为exe程序,打开发现需要输入flag,可以用来验证。

2.查壳发现有upx壳,可以直接用UPX脱壳,在DOS系统下输入命令“upx -d 文件名”(目标文件与upx文目录件在同一文件夹下)即可。

3.用IDA打开,简单分析main函数的伪代码就可以知道最终的flag为flag{HappyNewYear!}。

内涵的软件 

1.运行程序,没有特别的发现。

2.查壳,是32位无壳exe程序。

2.用ida加载,先找到了main函数,发现关键函数是main_0()。

3.结合程序运行结果分析了一下函数,没有找到有关flag的信息,根据题目的提示,我猜flag是result的值,试了一下发现错了,再试一下v5的值,最终得到flag为flag{49d3c93df25caad81232130f3d2ebfad}。

xor 

1.用exeinfo查壳,是32位无壳的

2.用ida得到main函数伪代码,阅读代码可以知道global的值就是经过或运算的flag

3.经过追踪后发现global为一组不同类型的数据 'f',0x0A,'k',0x0C,'w&O.@',0x11,'x',0x0D,'Z;U',0x11,'p',0x19,'F',0x1F,'v"M#D',0x0E,'g',6,'h',0x0F,'G2O',0

 

 4.python脚本如下:

s = ['f', 0x0A, 'k', 0x0C, 'w&O.@', 0x11, 'x', 0x0D, 'Z;U', 0x11, 'p', 0x19, 'F', 0x1F, 'v"M#D', 0x0E, 'g', 6, 'h', 0x0F, 'G2O', 0]
for i in range(len(s)):
    if type(s[i]) == int:
        s[i] = chr(s[i])
s = ''.join(s)
flag = 'f'
for i in range(1, len(s)):
    flag += chr(ord(s[i]) ^ ord(s[i-1]))
print(flag)

5.得到flag{QianQiuWanDai_YiTongJiangHu}

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

∪v

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值