re1

老套路,拖进IDA然后F5

没错就系偶

输入字符串v9,如果v5和v9相等(即v3 = 0),输出flag get。所以我们只需要让v9和v5相等就可以了。(备注:strcmp函数是string compare(字符串比较)的缩写,用于比较两个字符串并根据比较结果返回整数。基本形式为strcmp(str1,str2),若str1=str2,则返回零;若str1<str2,则返回负数;若str1>str2,则返回正数。)

第十行的意思大概就是memset,就是把后面的赋值给v5,(右键点击Hide casts会有神奇发现)然后双击后面的一串康康——

以上

然后看看地址413E44里面,是一串数字(十进制),右键按R转换成字符串——'0tem0c1eW{FTCTUD',把两个地址里面的合并——{FTCTUD0tem0c1eW{FTCTUD以下内容划重点!!

这里要跟大家普及一个知识了,即大端与小端——大端:高字节存储在低地址,低字节存储在高地址 ;小端:高字节存储在高地址,低字节存储在低地址。

链接指向:https://www.cnblogs.com/berry/articles/1588084.html(大端和小端)


假设一个十六进制数0x(高位)12345678(低位):

大端的存储方式是:(低地址)12,34,56,78(高地址),然后读取的时候也是从前往后读

小端的存储方式是:(低地址)78,56,34,12(高地址),然后读取的时候是从后往前读取

所以,最后的flag应该是:DUTCTF{We1c0met0DUTCTF}

(32位通常是小端存储,64位通常是大端存储)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容