-
-
[原创] 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
被胡八一编辑
,原因:
赞赏
他的文章
看原图
赞赏
雪币:
留言: