rc3ctf 逆向logmein writeup

刚学逆向,很基础的题目,大佬看笑就行了。记录点不是特别的清楚的东西。

拿到题目,文件没有后缀,记事本打开,发现是ELF文件,修改后缀名后用IDA打开。
直接进到main函数。在这里插入图片描述
算法很简单,但是涉及了底层的存储方式,主要是如何手动将long long 型v7转化为字符串(写代码,强制类型转化就直接出来了,下面说下怎么手动转换)。
在这里插入图片描述
v7最后面的LL表示的是long long 型,之前逆向看到过好多这样的LL不知道什么意思,今天才知道是long long。
这里说下v7在栈中存储。
先将v7的值转化为16进制。v7=0x65626d61726168。
在这里插入图片描述
x86架构,字节序是little-endian,所以v7的高位数据放在高址,低位数组放在低址。同时还要注意数组的寻址方式是:首元素+n乘以元素所占字节。所以字符串的首位是低址即0x68。
那这样就很清楚了,对照ascii码表就能写出对应的字符串。
写个cpp,
在这里插入图片描述
得到flag :RC3-2016-XORISGUD

猜你喜欢

转载自blog.csdn.net/qq_43394612/article/details/84839170