攻防世界re1WP
re1
0X01、分析exe

无壳,32位程序
0X02、用32位的ida打开f5查找main函数

0X03、分析函数
无论v5是> or < 都是输出aFlag-0;打开却发现
错了所以v5=v9,才对,flag应该在程序中。
0X04、找flag
法1、用记事本打开,查flag

法2、观察main发现
类似于memset函数,
C 库函数 void *memset(void *str, int c, size_t n) 复制字符 c(一个无符号字符)到参数 str 所指向的字符串的前 n 个字符。
故xmmword_413E34=v5=flag
R将十进制数转换为字符串

反过来就是flag。
0X05、补充知识
memset函数

大端和小端
大端:高字节存储在低地址,低字节存储在高地址 ;
小端:高字节存储在高地址,低字节存储在低地址。
假设一个十六进制数0x(高位)12345678(低位):
大端的存储方式是:(低地址)12,34,56,78(高地址),然后读取的时候也是从前往后读
小端的存储方式是:(低地址)78,56,34,12(高地址),然后读取的时候是从后往前读取
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
