当前位置:网站首页>CTF逆向入门题——掷骰子
CTF逆向入门题——掷骰子
2022-07-06 09:33:00 【TiggerRun】
题目传送:Beat our dice game and get the flag
0x00 查壳
使用PEiD确定程序未加壳
0x01 OD动态调试
打开后我先是F7 F8调试了一会儿,没有啥思路。
就使用了字符串搜索法进行定位。
可以知道这是个掷骰子的问题,并且要掷出 “3-1-3-3-7”才能拿到Flag。
并且这5次掷骰子是分开写的,根据每次掷骰子定位代码的位置,发现cmp后紧跟着jnz,通过下断可以知道这个判断就是用于判断掷出的值和程序中的值是否相同。
0x02 NOP jnz(成功)
简单暴力的把jnz跳转命令NOP掉,程序不就可以继续运行了嘛~香!
0x03 修改跳转(失败)
当然原理还是使用字符串分析
通过最后的一个判断和跳转,可以定位出蓝色框内就是成功的逻辑,那是否可以让程序直接跳转到这里运行呢???
跳转地址 0x004029AD
下断点可以知道,程序走到这一步会要我们输入,但是当我们在这里直接修改汇编进行跳转,程序还没走完就崩溃了,可能是需要的变量没声明???
我就想在第一次做判断的时候跳转,这样可能程序的变量都已经定义完成了。
但是结果flag是空的。
原因分析:
- 跳转的位置不够早,flag还没计算好…
- 此路不通,flag是根据前面5个函数算的(搞过反爬虫的加密都知道,比如某宝的js时时刻刻在循环计算一些参数,不按流程来就是死路一条)
想到可以看看最后一次掷骰子后程序的逻辑是怎么样的。
第七次错误跳转到 0040270A
发现代码块最后一句为跳转到 00402870
然后再将第一次判断错误的跳转地址改为 00402870
这时候提示… something wrong,当然有问题,我们只走了1个函数。在最后还有一个cmp。想着应该把这个jnz给nop了就OK了吧哈哈哈哈。
现实很残酷,最终flag未能成功出来,这说明一点,这个flag是来自前5个函数分别计算的!!!
只是分享了思路,虽然这种思路没能成功拿到flag
边栏推荐
- After idea installs the plug-in, restart the plug-in and disappear
- Prototype chain inheritance
- 8086 CPU 内部结构
- Install docker under windows10 (through Oracle VM VirtualBox)
- vscode
- JVM类加载子系统
- JVM garbage collection overview
- À propos de l'utilisation intelligente du flux et de la carte
- 逻辑运算指令
- In the command mode in the VI editor, delete the character usage at the current cursor__ Command.
猜你喜欢
Interpretation of Flink source code (III): Interpretation of executiongraph source code
连接局域网MySql
复盘网鼎杯Re-Signal Writeup
Fdog series (4): use the QT framework to imitate QQ to realize the login interface, interface chapter.
吴军三部曲见识(四) 大家智慧
逻辑运算指令
Introduction to spring trick of ByteDance: senior students, senior students, senior students, and the author "brocade bag"
JVM class loading subsystem
"One year after graduation, I won ACL best paper"
IDEA断点调试技巧,多张动图包教包会。
随机推荐
算数运算指令
TCP的三次握手和四次挥手
js垃圾回收机制和内存泄漏
服务器端渲染(SSR)和客户端渲染(CSR)的区别
登陆验证koa-passport中间件的简单使用
JVM类加载子系统
mysql的合计/统计函数
Yao BanZhi and his team came together, and the competition experts gathered together. What fairy programming competition is this?
Set up the flutter environment pit collection
Thank you for your invitation. I'm in the work area. I just handed in the code. I'm an intern in the next ByteDance
On the clever use of stream and map
arithmetic operation
8086 segmentation technology
MySQL数字函数
QT system learning series: 1.2 style sheet sub control lookup
List集合数据移除(List.subList.clear)
JVM garbage collector part 1
Activit零零碎碎要人命的坑
Alibaba cloud server docker installation mysql5.5
Design of DS18B20 digital thermometer system