[reverse]shell
考点:脱壳
将所解压的文件拖入DIE有无有壳,文件类型
![](https://file.jishuzhan.net/article/1795807841022382081/1a4473a44269a33cd785c1ae765f4393.webp)
发现有UPX壳,是32位的文件,先脱壳
用FFI工具脱壳
![](https://file.jishuzhan.net/article/1795807841022382081/da328b12005fb893bb8b992de1af2ff0.webp)
将脱壳后的程序用32位IDA进行反汇编
![](https://file.jishuzhan.net/article/1795807841022382081/989b62762e331f97afed94b036ba00db.webp)
点开_main_0函数进行查看
看到flag,(F5)查看伪代码
![](https://file.jishuzhan.net/article/1795807841022382081/0e6cdcdef6eef89abbcd5af49615652a.webp)
得到本题的flag
[reverse]PE结构
考点:PE结构
PE结构知识点看大佬:https://blog.csdn.net/freeking101/article/details/102752048
解压之后用DIE查看信息
![](https://file.jishuzhan.net/article/1795807841022382081/f5ef86da371df6d6237a2d778f009082.webp)
发现显示不出任何信息,根据题目名称猜测,可能是PE结构出现问题
将文件拖入101 editor
![](https://file.jishuzhan.net/article/1795807841022382081/3c32f0490078e77964aeb8a742ff64e4.webp)
DOS头 和 NT头 就是 PE 文件中两个重要的文件头
一个 WORD 类型,值是一个常数 0x4D5A,用文本编辑器查看该值位'MZ',可执行文件必须都是'MZ'开头
这里是发现是DOS头被调改了
![](https://file.jishuzhan.net/article/1795807841022382081/412b5325f81cde0d3cff691d0609535a.webp)
更改之后保存直接运行就能出来本题的flag
![](https://file.jishuzhan.net/article/1795807841022382081/201ff1bb88d9246693a22ce5fe92bac5.webp)
或者可以按部就班就再用DIE查看信息,再用相应的IDA反汇编来查找flag
[reverse]拼接
考点:C语言
将名为zip的文件先用记事本打开,发现是文件头有PK,是个zip
![](https://file.jishuzhan.net/article/1795807841022382081/cafed0c01dc5b9dcc4744966364fe656.webp)
改拓展名,解压就能得到一个名为拼接的exe文件
老规矩,先查壳 ,能看到没有加壳,且文件为32位
![](https://file.jishuzhan.net/article/1795807841022382081/198001076cb11586419bc48799c94835.webp)
用相应IDA(32位)反汇编,看到main函数
![](https://file.jishuzhan.net/article/1795807841022382081/4e6b55248c11f4123b67fe72c8ec1343.webp)
点看_main_0,看到有flag字眼和一串字符串,根据题目也能猜出来是这两个部分拼接而成就为本题的flag
![](https://file.jishuzhan.net/article/1795807841022382081/d07358e64e914a1de40f153ef76615de.webp)
要是有疑问可以再次页面(F5)查看伪代码
![](https://file.jishuzhan.net/article/1795807841022382081/267abbb43d6d3890cf61aae16720e8bd.webp)
代码大致意思是:
将"flag{"先复制到Destination,然后再将v8的字符串在其Destination后边拼接一起,再用输入的字符串与其Destination比较,相等就说明用户输入的字符串是flag