[GFCTF 2021]wordy 编写去花IDAPYTHON

首先查壳 发现没有东西

然后放入ida

发现没有main并且软件混乱

发现这里1144的地方 出错 IDA无法识别数据 报错内容是EBFF 机器码

这里看了wp知道是很常见的花指令 所以我们现在开始去花

这里因为我们需要取出 EBFF 下面的地址也都是 EBFF 所以工作量大 使用IDApython脚本即可

start = 0x1135
end = 0x3100

for i in range(start,end):
    if get_wide_byte(i)==0xEB:
        if get_wide_byte(i+1) == 0xFF:
            patch_byte(i,0x90)

出现了 flag的值

这里也可以使用idapython脚本来获取值

我们发现 值都是出现在 FFC0后 所以我们可以通过识别 C0然后chr输出

start = 0x1135
end = 0x3100

for i in range(start,end):
    if get_wide_byte(i)==0xC0:
        print(chr(idaapi.get_byte(i+2)),end='')


解释一下 get_wide_byte 是读取这个位置的字节

idaapi.get_byte 可以获取到这个byte 其实这里换位 get_wide_byte也行

这两个的区别是读取的地方不一样 get_wide是从数据库 即 IDA保存的内容

idaapi是从 程序中读取 更加底层

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值