当前位置:网站首页>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
边栏推荐
- Mongodb learning notes
- The QT program compiled on CentOS lacks a MySQL driven solution
- JVM运行时数据区之程序计数器
- Yum install XXX reports an error
- Some feelings of brushing leetcode 300+ questions
- JVM 垃圾回收器之Serial SerialOld ParNew
- Yao BanZhi and his team came together, and the competition experts gathered together. What fairy programming competition is this?
- Shawshank's sense of redemption
- MySQL数字函数
- Activit零零碎碎要人命的坑
猜你喜欢

Fdog series (I): think about it. It's better to write a chat software. Then start with the imitation QQ registration page.

汇编课后作业

"One year after graduation, I won ACL best paper"

学习投资大师的智慧

The QT program compiled on CentOS lacks a MySQL driven solution

算数运算指令

Activiti directory (V) reject, restart and cancel process

Compile homework after class

Wu Jun's trilogy insight (V) refusing fake workers

JVM garbage collector part 1
随机推荐
MySQL optimization notes
字节跳动春招攻略:学长学姐笔经面经,还有出题人「锦囊」
Activit零零碎碎要人命的坑
唯有学C不负众望 TOP1环境配置
吴军三部曲见识(七) 商业的本质
After idea installs the plug-in, restart the plug-in and disappear
8086 CPU 内部结构
服务器端渲染(SSR)和客户端渲染(CSR)的区别
JVM class loading subsystem
关于Stream和Map的巧用
Design of DS18B20 digital thermometer system
yum install xxx报错
Ce n'est qu'en apprenant que c est à la hauteur des attentes Top5 s1e8 | s1e9: caractères et chaînes & opérateurs arithmétiques
MySQL数字函数
Fdog series (4): use the QT framework to imitate QQ to realize the login interface, interface chapter.
Program counter of JVM runtime data area
Akamai浅谈风控原理与解决方案
Programmer orientation problem solving methodology
ByteDance technical Interviewer: what kind of candidate do I want to pick most
算数运算指令