本文最后更新于 487 天前,其中的信息可能已经过时,如有错误可以直接在文章下留言
是一道攻防世界里面的 Reverse 方向的题目,打开压缩包给的.exe 可执行文件,然后提示脱壳,如图
那就直接脱壳,脱壳如图
再用 IDA 打开,在 Strings window 看到了一部分的 flag, 显示是 f_part2
应该还有 part1,在 IDA 用 Alt+T 查找 part,找到 part1
进入汇编代码阶段,用 R 把数字数据转化为字符串,如图
汇编语言暂时还没学完,不过这里很明显字符串反过来就是 flag {UPX
注意后面的’n4_’应该也是 flag 的一部分
所以 flag 应该为 flag {UPX_4nd_0n3_4nd_tw0}
这里为什么字符串会反过来估计是涉及一个小端序存储 (Little Endian)
看这篇文章
数据存储:小端模式和大端模式 —— 终于搞明白了!!!_小端读取 - CSDN 博客
其实学了汇编语言的栈段也会更好的理解这个。
小端序存储就是低位对应低地址,高位对应高地址