杭电CTF——逆向(2)

从所给文件中找flag

环境

  • kali 系统
  • IDA Pro
  • Hex WorkShop

逆向

下过来的文件没有后缀名,可以用 linux 下的 file 命令查看,或者用16进制编辑器查看

杭电CTF——逆向(2)
可以看出这是一个压缩包,把后缀名改成 .7z 打开

杭电CTF——逆向(2)
再把这个文件拖入16进制编辑器

杭电CTF——逆向(2)
.ELF 是 linux 下的可执行文件
把它用 IDA Pro 64 打开,shift+F2 查看字符串

杭电CTF——逆向(2)
双击这个字符串,ctrl+x 交叉引用

杭电CTF——逆向(2)
F5 查看C语言伪代码

杭电CTF——逆向(2)
这里可以使用远程调试,把文件放到 linux 虚拟机里

杭电CTF——逆向(2)
打开 linuex_server64

杭电CTF——逆向(2)
用 IDA 去连接它
根据实际情况去调整

杭电CTF——逆向(2)
先下个断点

杭电CTF——逆向(2)
开始调试

杭电CTF——逆向(2)
查看字符串

杭电CTF——逆向(2)
杭电CTF——逆向(2)
交叉引用
这里即是正确的 flag 生成的代码段,我们只要跳转到 loc_4010D5 就可以了

杭电CTF——逆向(2)
汇编此处代码
杭电CTF——逆向(2)

杭电CTF——逆向(2)
杭电CTF——逆向(2)

直接运行,结果就出来了

杭电CTF——逆向(2)
ASIS{1fc1089e328eaf737c882ca0b10fcfe6}
flag : 1fc1089e328eaf737c882ca0b10fcfe6

注意事项

  • 虚拟机与物理机的通信
  • 远程调试连接不上