点击上方蓝字关注我们
摘要
作为信息安全领域的从业者,时常有跨平台程序调试和分析的需求。本文旨在探讨如何利用Windows环境下的IDA Pro来远程调试Linux ELF程序的配置过程。通过IDA Pro的强大功能,我们能够在熟悉的Windows环境下对Linux ELF程序进行调试和分析,无需切换操作系统或者环境设置。这不仅大大提高了我们的工作效率,还简化了安全团队的合作流程。因此,利用IDA Pro在Windows上进行远程调试Linux ELF程序,对于信息安全领域的从业者来说,是一个极具实用性的技术手段。
配置过程
首先要做的是在本地主机(Windows)上启动IDA(32位),然后加载ELF文件, 如图:
通过点击Debugger->Select debugger…在IDA上选择远程调试器,如图:
在弹出的对话框中, 选中: “Remote Linux debugger”, 如图:
接下来需要设置调试器选项, 转到:Debugger->Process options…选项,如图:
接下来, 需要在”Application”和”Input file”字段中填写ELF文件的完整路径,在”Directory”字段中填写目录路径, 并在”Hostname”字段中填写机器的IP地址, 如图:
“parameters”字段是在需要使用一些参数运行程序时使用。
这里有一种特殊情况, 当要调试的目标ELF二进制文件是32位, 而Linux系统是64位时, 则需要在Linux中添加对32位的支持, 运行以下命令:
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
但如果是在64位平台上运行64位的二进制程序则忽略上面的命令。
确认可以在64位的Linux上运行32位的ELF文件后,继续。
IDA支持连接到IDE的服务器程序, 这里路径为:C:Program Files (x86)IDA 6.95dbgsrv, 选择适用于32位二进制文件的服务器:linux_server(32位服务器),如图:
Linux_server非常重要, 如果二进制程序是32位, 则IDA服务器也要支持相同的32位架构, 将该文件复制到Linux机器上运行,如图:
现在服务器程序已经开始监听。
在Windows机器上的IDA中开启调试运行, 如图:
这时会弹出一个警告框,如图:
点击”Yes”将开始运行程序, 检查一下服务器端的情况,如图:
这时,在想要下断点的地方设置断点, 然后再次运行,如图:
错误原因
在上面配置过程中,可能会遇到各种各样的错误或异常,如果遇到这个错误:
接着遇到这个警告:
以上情况如果同时出现可能是选择了错误版本的服务器, 例如:如果要调试的二进制文件是x86文件, 则选择服务器版本也应该是x86的; x64的文件同样也要对应x64版本的服务器文件。
如果上面只出现了第二个警告, 则可能是服务器端没有运行成功。在这种情况下,如果此时在程序内设置了一个断点, 会看到一个错误,类似于:”无法将程序计数器重置为…”。如图:
或者会出现类似于”IDA错误:收到SIGSEGV信号(段错误)”的错误提示。基本上以上错误的根源还是要保证IDE和服务器具备相同的架构。
点个在看你最好看
原文始发于微信公众号(二进制空间安全):从Windows到Linux使用IDA进行远程调试