re -06 buuctf [FlareOn4]IgniteMe

本文探讨了如何通过观察aG00dJ0b和aN0tT00H0tRWe7r变量来定位关键函数sub_401050,利用动态调试和代码分析揭示v4值的变化。作者分享了脚本实现,涉及字符异或操作和逆序数组,用于获取隐藏的flag。
摘要由CSDN通过智能技术生成

IgniteMe

ida打开后:
在这里插入图片描述
根据aG00dJ0b与aN0tT00H0tRWe7r变量内容可以判断出sub_401050是关键函数,其return 1即可得到flag
在这里插入图片描述
稍稍分析一下:
在这里插入图片描述
v4的初始值看不懂,所以我用下断点动态调试去取值
在这里插入图片描述
下断点调试时发现显然call sub_401000下的汇编代码就是为v4的赋值操作
在这里插入图片描述
在该函数下方找到循环异或,可以看出v4的值
在这里插入图片描述
于是,就可以写脚本了:

a = [0x0D,0x26,0x49,0x45,0x2A,0x17,0x78,0x44,0x2B,0x6C,0x5D,0x5E,0x45,0x12,0x2F,0x17,0x2B,0x44,0x6F,0x6E,0x56,0x09,0x5F,0x45,0x47,0x73,0x26,0x0A,0x0D,0x13,0x17,0x48,0x42,0x01,0x40,0x4D,0x0C,0x02,0x69]
flag = ''
num = 4
b = a[::-1]

for i in range(len(a)):
    flag += chr(b[i] ^ num)
    num = b[i] ^ num
print(flag[::-1])


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值