探索二进制逆向与文件结构解析

1、为什么数组中存在边界字节(或哨兵值)0x10?如果它们在扫雷界面中不可见,它们的作用是什么?没有它们程序如何运行?

边界字节 0x10 用于确定扫雷游戏棋盘的边界和结束位置。在程序中,通过判断这些边界字节来识别棋盘的范围,从而正确处理和显示棋盘内容。

没有它们,程序难以自动确定棋盘的边界和结束位置,可能需要手动指定地址。不过,若每次运行程序时棋盘地址固定,也可手动指定地址来实现功能,但不同版本扫雷游戏的棋盘地址可能不同,手动指定会比较麻烦。

2、尝试对你喜欢的游戏的任何二进制文件进行逆向工程,包括高分文件、资源文件等。

可以采用以下方法进行逆向工程:

  • 对于游戏中的变量,如子弹数量,可先对游戏内存做“快照”并备份,待变量值改变后再做一次“快照”,对比两个“快照”,找出值改变的字节所在地址。
  • 由于8位游戏常用汇编编写且变量多为全局变量,可通过查找反汇编代码中该地址的引用,找到修改变量的代码段,用 NOP 指令覆盖,实现作弊。
  • 对于高分文件,记录分数并备份文件,分数改变后再次备份,用 DOS 实用工具 FC 比较两个文件,找出改变的字节。
  • 对于未知指令集架构(ISA)的二进制文件,可在 IDA、 objdump 等反汇编器中尝试不同的 ISA 进行反汇编,同时要能区分正确和错误的反汇编代码。
  • 还可以对比程序安装前后的 Windows 注册表,找出程序使用的注册表元素。

3、存在一些结构已知的二进制文件,如utmp/wtmp文件,尝试在没有文档的情况下理解其结构。

可通过对 utmp / wtmp 文件进行逆向工程,分析文件中的数据模式、字节序列、数据块的大小和偏移量等,还可结合对系统日志和用户登录信息的了解,推断文件结构。

4、JPEG文件中的EXIF头有文档说明,现在请你在不借助帮助的情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值