[FlareOn6]Snake 题解

这是是一个后缀为.nes的文件,NES(Nintendo Entertainment System,任天堂娱乐系统)

找到一个工具FCEUX可以打开和调试

[FlareOn6]Snake 题解_第1张图片

[FlareOn6]Snake 题解_第2张图片

打开十六进制编辑器观察数值的变化

[FlareOn6]Snake 题解_第3张图片

[FlareOn6]Snake 题解_第4张图片

发现0x25处记录了记录了吃掉苹果的个数

在这个地方打一个硬件断点

[FlareOn6]Snake 题解_第5张图片

[FlareOn6]Snake 题解_第6张图片

运行一下让蛇吃一个苹果

[FlareOn6]Snake 题解_第7张图片

吃到苹果后蛇停下来了

[FlareOn6]Snake 题解_第8张图片

断在此处  00:C82A:AD 25 00 

下面有一个与33比较的指令 CMP 0x33,猜测是要蛇吃够33个苹果

[FlareOn6]Snake 题解_第9张图片

将记录苹果数的内存处改为32

[FlareOn6]Snake 题解_第10张图片

然后单步运行程序

[FlareOn6]Snake 题解_第11张图片

点击步过

[FlareOn6]Snake 题解_第12张图片

发现出现了

LDA $0026 = #$00

CMP #$F0

的作用是将存储在内存地址0x26 处的值加载到累加器寄存器中

CMP #$F0 用于将累加器的值与立即数 0xF0 进行比较。

说明0x26位置处的值可能为0xF0

直接用16进制编辑器修改一下

[FlareOn6]Snake 题解_第13张图片

[FlareOn6]Snake 题解_第14张图片

运行得到flag

[FlareOn6]Snake 题解_第15张图片

flag{[email protected]}

你可能感兴趣的:(逆向,reverse,网络安全,CTF)