高山 发表于 2023-8-11 20:08
第二关啥意思
在那张图片中,其实隐藏了一个exe可执行程序,为了方便你们用OD载入,我特地做成了32位程序
临时号 发表于 2023-8-11 20:10
在那张图片中,其实隐藏了一个exe可执行程序,为了方便你们用OD载入,我特地做成了32位程序
啊,没听懂,图片里还能做exe?
高山 发表于 2023-8-11 20:12
啊,没听懂,图片里还能做exe?
给你个小提示,你用notepad++打开那张图片,看看二进制就知道了
{:10_257:}{:10_257:}{:10_257:}我是不是来晚了{:10_257:}
Ewan-Ahiouy 发表于 2023-8-11 20:46
我是不是来晚了
没来晚,大家都还没给出答案
ctf?
临时号 发表于 2023-8-11 20:13
给你个小提示,你用notepad++打开那张图片,看看二进制就知道了
看文件头?
今天没开电脑,难受,下次开电脑弄弄试试
我有一个想法,但是我自己实施不了
用二进制读取那张图片,然后放到 c++ 的 main 数组里,就可以运行了
我把图片用记事本打开发现了玄机{:10_277:}
等楼主发writeup{:10_256:}
isdkz 发表于 2023-8-12 17:57
等楼主发writeup
真没一个人能写出来吗
临时号 发表于 2023-8-12 18:27
真没一个人能写出来吗
没办法,太菜了,我用 ida 反汇编出来的伪代码大致只能猜出 flag{} ,大括号中间大概是6个字符这样子,也不知道对不对
isdkz 发表于 2023-8-12 18:33
没办法,太菜了,我用 ida 反汇编出来的伪代码大致只能猜出 flag{} ,大括号中间大概是6个字符这样子,也 ...
没错就是flag{}中间有6个字符,而且你这个反汇编出的c语言代码结构已经很清晰了,你看代码里面是不是有个字段是2;=EFI,flag{}中间的六个字符就是由这六个字符做一些操作得到的
临时号 发表于 2023-8-12 18:45
没错就是flag{}中间有6个字符,而且你这个反汇编出的c语言代码结构已经很清晰了,你看代码里面是不是有个 ...
我就是拿2;=EFI做了各种操作都没搞出来,前面一堆v看的眼花缭乱的{:10_266:}
isdkz 发表于 2023-8-12 18:47
我就是拿2;=EFI做了各种操作都没搞出来,前面一堆v看的眼花缭乱的
着重看一下中间那段-48,-96什么的,代码的逻辑其实很简单,就是对你输入的flag{}中间的六个字符做操作,然后再与2;=EFI匹配是否相等,中间那段-48,-96的就是代码的核心算法
临时号 发表于 2023-8-12 18:50
着重看一下中间那段-48,-96什么的,代码的逻辑其实很简单,就是对你输入的flag{}中间的六个字符做操作, ...
就是理不清跟 48 和 96 之间的关系,反汇编出来的伪代码变量 v 之间的关系太乱了{:10_250:}
isdkz 发表于 2023-8-12 18:33
没办法,太菜了,我用 ida 反汇编出来的伪代码大致只能猜出 flag{} ,大括号中间大概是6个字符这样子,也 ...
这是什么语言?
sfqxx 发表于 2023-8-12 21:02
这是什么语言?
C语言呀
sfqxx 发表于 2023-8-12 21:02
这是什么语言?
c语言,不过是反汇编后的c语言,一般与实际的c语言程序有些出入,但可以从中看出这个程序的实现逻辑