windows下使用IDA远程调试linux(ubuntu)下编译的程序

来源:互联网 发布:powermill编程好学吗 编辑:程序博客网 时间:2024/05/20 07:15

1.背景

真机:win7 x64 ida pro 6.8 虚拟机:ubuntu 16.04 x64
现在在win7下远程调试ubuntu内自己编译的程序。

2.ubuntu内编译程序

1.桌面建立test文件夹,并建立hello.c文件
写入代码:

#include <stdio.h>int main(void){printf("hello linux!");return 0;}

在test目录打开终端,输入gcc ./hello.c -o hello
不出意外将会产生一个hello的文件。

3.调试

1.将hello文件拷贝一份到win7桌面,ubuntu内拷贝到tmp/test/hello 处

2.找到win7中IDA的安装目录,在安装目录下会有linux_server,linux_serverx64程序,将linux_serverx64拷贝到ubuntu机器上,放在tmp/test目录下。

3.在ubuntu机器上,chmod a+x ./linux_serverx64 改变文件属性,然后通过命令 ./linux_serverx64运行该程序。
这里写图片描述
5.在windows中用IDA找开桌面上的hello文件,直接在下拉列表框选择“Remote Linux debugger”。如图所示:
这里写图片描述
6.在IDA菜单中,选择“Debugger->Process options”,打开要调试的程序设置选项,在Application和Input file两项中输入ubuntu中要调试的程序,在Directory中输入要调试的程序所在的目录,在Hostname中输入linux机器的IP地址,端口保持默认即可,其它的输入项不用管,确定。如下图所示:
这里写图片描述

如果ubuntu有密码,这里的Password中也可以填上密码。

7.下断点,找到main函数,在第一行按F2下断点:
这里写图片描述

8.按F9或者点击绿色的三角启动程序。
9.如果弹出下图的提示,直接点Yes:
这里写图片描述
10.接着可能会出现下图的弹框:
这里写图片描述
该提示是找不到库文件,直接点OK。
出来这个:
这里写图片描述
点Apply。

11.继续运行,又出来弹框:
这里写图片描述
这个提示在win7下找不到文件,这步不能忽略,在Destination中要选在我们的被调试的文件hello所在的目录,按照如图中所示设置。
12.再运行,还可能会弹框:

Please confirm---------------------------The DWARF plugin couldn't find DWARF information associated to the file:C:\Users\Administrator\Desktop\r100.Do you want to load an external DWARF file manually?---------------------------&Yes   &No  

点yes就再选择一次win7的文件,也可以点no.

然后就可以按F8但不调试了。

如果程序中有输出,或者输入是在ubuntu的远程调试窗口中输出或者输入(第三部的那个窗口中)。

问题解决

1.Could not connect to 192.168.xxx.xxx: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。
解决办法:http://www.it165.net/os/html/201404/7757.html

0 0