TypechoJoeTheme

霍雅的博客

登录
用户名
密码
/
注册
用户名
邮箱

re练习笔记1 动态调试[GXYCTF2019]luck_guy

2025-03-12
/
0 评论
/
126 阅读
/
正在检测是否收录...
03/12

打开分析main函数

除了patch_me(v4)其他没意义
进入patch_me(v4)
patch_me(v4)传入了一个int a1
这个值是main还是scanf输入进来的

判断是否为奇数,奇数退出,偶数运行get_flag(),无参,进入看看
![2025-03-12T09:57:07.png]
简单分析代码,如注释所示
其中只有case1 4 5是有意义的
先看case1

f1可以看到是flag的前缀
f2还未初始化

所以肯定不是先进case1
往下分析case4

初始化了f2,但是是乱码,而case5是对这个乱码进行操作

所以我们要实现的顺序是case 4 5 1
下断点动调

输入2到我们断点的位置

寻找到case4的地址

改变栈针的值RSI

下断点运行

断在了break处
找case5的地址

改栈针

下断点运行

回到for循环
这里不知道为什么没断下来,不过不影响结果

找case1的地址

改栈针

其实这里改不改都无所谓了,寄存器已经保存f2的值了

改到case1,直接运行,不用下断点
查看flag的值

shift+e提取
GXY{do_not_hate_me}

朗读
赞(0)
版权属于:

霍雅的博客

本文链接:

https://huoya.work/bk/index.php/archives/203/(转载时请注明本文出处及文章链接)

评论 (0)

人生倒计时

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月