当前位置: 首页 > 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/news/136686.html

相关文章:

  • C++常用函数定义解释
  • 【逆向基础】十七、PE文件格式(二)
  • colcon构建ros2功能包时,出现exited with code 2报错的解决方案(bug)
  • 2023 ICPC 亚洲澳门赛区赛 D. Graph of Maximum Degree 3
  • 算法训练(leetcode)二刷第五天 | 242. 有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和
  • Java项目-基于springboot框架的智慧外贸系统项目实战(附源码+文档)
  • 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-抽象类、抽象方法