当前位置: 首页 > article >正文

[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是从 程序中读取 更加底层


http://www.kler.cn/a/136686.html

相关文章:

  • OpenAI 故障复盘 - 阿里云容器服务与可观测产品如何保障大规模 K8s 集群稳定性
  • 开放词汇检测新晋SOTA:地瓜机器人开源DOSOD实时检测算法
  • 【算法】算法大纲
  • 你好,2025!JumpServer开启新十年
  • vue2日历组件
  • Spring项目创建流程及配置文件bean标签参数简介
  • linux 服务器进程、端口查找,nginx 配置日志查找,lsof 命令详解
  • Linux程序设计(上)
  • 键盘方向键移动当前选中的table单元格,并可以输入内容
  • 通过 Canal 将 MySQL 数据实时同步到 Easysearch
  • Cypress断言篇
  • HINSTANCE是什么?
  • 打破思维的玻璃罩
  • shell脚本用法参数
  • Frida hook android 应用程序
  • 裸片-PCBA
  • 视频剪辑技巧:批量剪辑新篇章,AI智剪来领航
  • Vatee万腾外汇市场新力量:vatee科技决策力
  • Git——分布式版本控制工具
  • 4.10每日一题(二元函数极值相关重要性质,反复学习)
  • nginx学习(4)Nginx 负载均衡
  • 《云计算:云端协同,智慧互联》
  • Vue:从本地加载json文件
  • Redis维护缓存的方案选择
  • 砖家测评:腾讯云标准型S5服务器和s6性能差异和租用价格
  • Java-抽象类、抽象方法