rc3ctf 逆向logmein writeup

本文介绍了一个逆向工程的基础实例,通过解析longlong类型变量在内存中的存储方式,手动将其转换为字符串。文章详细解释了x86架构下的字节序和寻址方式,以及如何对照ASCII码表得出对应字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

用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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值