题目描述:菜鸡开始学习逆向工程,首先是最简单的题目
下载附件,执行程序,如下界面
1. 思路分析
没啥说的,既然题目都说是一道简单的逆向题,那么直接使用ida逆向即可,看逆向出的结果是否能写入到
2. 解题过程
2.1 逆向后找到main函数
代码意思很简单,将输入和v5.m128i_i8进行对比,二者相等即可
但是v5又是从xmmword_413E34加载的,我们看下这个是什么
这个显然是一个16进制串,将其转换为字符串为:
提交该答案,发现答案错误。。。
网上找资料,发现这里存在一个大小端的知识点:汇编里面存储字符采用的是小端格式
也就是说需要先从后面的字符读取,那么逆序一下就是DUTCTF{We1c0met0
这么一看顺眼多了,但是明显感觉后面少了一截,不出意外,还是提交错误。。。
代码中未找到有效信息,但是看到xmmword_413E34后面跟着一个字符串
转换一下试试
刚好是后半部分,将两部分拼接起来,就是最后的flag了:DUTCTF{We1c0met0DUTCTF}
总结: 这道题解题过程是一波三折,逆向暂时不说,这一步反而是最简单的,后面的关于按照小端存储的知识点(这个不了解不一定能解出来),还有就是后面那部分字符是真的不知道咋来的,代码中没有相应的拼接函数(有大佬懂得欢迎告知)