BUGKU CTF 逆向第四题游戏过关
BUGKU CTF 逆向第四题游戏过关
分享一下刚会的逆向第四题游戏过关
打开之后是这个样子的
这段英文的意思是下面这个
玩游戏
n是灯的序列号,m是灯的状态。
如果第n盏灯的m是1,它就开,如果不是,它就关。
起初所有的灯都关上了。
现在你可以输入n来改变它的状态。
但是你应该注意一件事,如果你改变了第N盏灯的状态,(N-1)和(N+1)的状态也会改变。
当所有灯都亮起时,flag就会出现。
方法
方法一
直接输入,一次输入1,2,3,4,5,6,7,8。flag就会出现。
这个方法太简单粗暴,所以讲一讲其他的方法。
方法二
把它放进IDA中,用(alt+t)去搜索flag。
找到main函数,按F5进行反汇编。
这是那八个灯的判定。都满足才能出现flag。
然后去找flag。这个flag上有很多数字,我们可以把那些数字按照下面的运算方式进行运算,并把数字字符化。也可以得到flag。
方法三
OD打开它,
左上 代码窗口
- 默认用于显示反汇编代码,还用于显示各种注释、标签,分析代码时显示循环、跳转位置等信息。
右上 寄存器窗口
- 实时显示CPU寄存器的值,可用于修改特定的寄存器。
左下 数据窗口
- 以Hex/ASCII/Unicode值的形式显示进程的内存地址,也可在修改内存地址。
右下 栈窗口
- 实时显示ESP寄存器指向的进程栈内存,并修改。
按右键中文搜索引擎->智能搜索;
找到flag点进去。
我们发现这个flag来自上面那个地址00C8E940 55 push 那个,然后我们看一下这个来自哪里。
(这个地址因人而异,大家会有自己地址,我就按自己的地址来讲述)
然后继续找00C87AB4。
然后继续找00C8F66C。
我们看一下这个,这个地址是由上面jnz跳转过来的,可以查一下上面一共8个跳转,这个就是之前那8盏灯的判断。
而下面这个JMP就代表那八个判断有一个不满足,就会跳转到这里。
所以我们把这个jmp的地址(00C8F671)改成call跳转的地址(00C87AB4)这样只要输入1-8任何一个数都可以找到flag。
点击调试然后运行,随便输入1-8的任意一个数,就可以出现flag。
the flag is zsctf{T9is_tOpic_1s_v5ry_int7resting_b6t_others_are_n0t}
- Bugkuctf--逆向第三题游戏过关题解
- 小白学习笔记(12)BugkuCTF-re-游戏过关
- bugkuctf--游戏过关
- bugkuCTF平台逆向题第五道love题解
- bugkuCTF平台逆向题第七道Take the maze题解
- bugkuCTF平台逆向题第五道love题解
- bugkuCTF平台逆向题第四道逆向入门题解
- bugku ctf Reverse 逆向入门 writeup
- bugkuctf 游戏通关玄学式速通
- bugkuctf--入门逆向
- bugkuctf--逆向入门
- bugkuCTF平台逆向题第一道Easy_vb题解
- bugku---welcome to bugkuctf
- BUGkuCTF-网站被黑
- Bugku Timer(阿里CTF)
- BugkuCTF web——web2、web基础-$GET、web基础-$POST、web3、管理员系统、输入密码查看flag
- bugku ctf 实战2-注入
- BugKuCTF WEB web基础$_GET
- BugKuCTF WEB 网站被黑
- BugKuCTF WEB 成绩单