攻防世界 高手区 serial-150 WPIDA远程动态调试适合新手

it2026-08-13  11

攻防世界 高手区 serial-150 WP \ IDA远程动态调试适合新手

1.脱壳分析2.IDA远程动态调试——连接补充一下远程连接前面的步骤:第一步第二步第三步 3.IDA远程动态调试——调试

1.脱壳分析

发现是一个64位ELF文件,拖进IDA64静态分析,找不到入口函数,判断是代码混淆,但我比较菜,还不知道把结构改好,所以我只能采取IDA远程动态调试。

2.IDA远程动态调试——连接

这里我踩到坑了,我IDA无法连接到Linux虚拟机,我查了很多资料,最开始以为是防火墙没关,我用的kali,采用指令ufw disable关闭了防火墙,但是依然连接不上。 然后我看到一个资料,说IDA要远程动态调试,有一个非常重要的前提条件,即主机可以和虚拟机互ping通,我ping了一下,果然ping不通,虚拟机可以ping主机,但是主机ping不了虚拟机。看了很多博客也没有解决,几经波折,终于找到原因,操作如下(我使用的VMware):

补充一下远程连接前面的步骤:

第一步

第二步

虚拟机中运行Linux_server64(指令:Linux_server64),若出现下图则运行成功:

第三步

1、文件名 2、文件地址 3、不填 4、虚拟机IP地址(在Linux终端使用ifconfig查看IP) 5、虚拟机密码,可以不填

3.IDA远程动态调试——调试

(1)开始调试: (2) 先点1按钮,程序运行停止时,点击2按钮,然后在虚拟机终端中输入任意字符串,然后回车,在IDA中按F8(但步步过),直到地址变为4开头 可以发现这个出现cmp指令,这是一个关键地方,我们通过汇编指令可以知道flag的长度为10h即16,在此处设下断点 (3)F8继续向下调试 通过这个cmp指令可以判断flag第一个字符是E; 继续调试 划重点!!!!! 这张图包含信息很多,ptr[rbp-200h]是输入的第一个字符,ptr[rbp-1F1h]是输入的最后一个字符(为什么?因为200h-1F1h=15D),通过add指令可以知道,这里把第一个字符和最后一个字符相加了,然后和9Bh作比较,因为首字符是E,那么据此,做减法,可以得到最后一个字符应该是V。 (4)重复(2)和(3)的步骤可以得到完整的flag EZ9dmq4c8g9G7bAV

最新回复(0)