首页
社区
课程
招聘
[原创] CTF2019 Q1 第一题write up
发表于: 2019-3-10 13:04 3022

[原创] CTF2019 Q1 第一题write up

2019-3-10 13:04
3022

系统 : Windows xp
程序 : 流浪者
要求 : 输入口令
使用工具 :IDA pro / Ollydbg / peid

首先将程序拖入peid中查看下,程序提示:
Microsoft Visual C++ 6.0

看来这就是一个传统的CrackMe程序,输入flag即可夺旗成功。我们直接用od附加程序,然后用中文搜索引擎插件查看字符串信息:

这里,程序中的关键信息便一目了然。我们直接双击错了!定位到关键代码段:

然后在call MessageBoxA函数处下断,运行程序,我们直接输入一个口令如123456引发断点。断下后,按下Alt + k查看函数调用栈:

单击可查看函数体,这里用IDA将关键汇编代码段转换成伪C代码:

可以看出这里用input_data数组的元素作为索引,取aAbcdefghiabcde数组内的值,最终将它们组成一个子串和KanXueCTF2019JustForhappy对比,相等则成功。

所以这里input_data数组的元素是由offest(偏移值)组成,而偏移值按以下公式取得y = F(my_str - x)。

那么首先算出偏移值,然后将偏移值加上减去的x即可得到flag。

按照以上逻辑,编写如下python代码:

运行程序,得到flag为:


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2019-3-10 13:06 被胡八一编辑 ,原因:
收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//