ida调试linux程序,MAC使用IDA PRO远程调试LINUX程序

1 背景

在学习Linux系统上的一些漏洞知识的时候,往往需要进行“实地测试”,但是在Linux系统上进行调试并不太方便,因为LINUX自带的GDB调试工具真的不太人性化,即使有GDBTUI之类的“伪图形界面调试器”,也跟IDA PRO之类的调试器相差甚远。这里又遇到另一个问题了——LINUX平台的IDA PRO不太好找。

综上,对于初学者而言最佳方案就是使用IDA PRO的远程调试功能!

2 环境配置

本文主要说明在MAC系统上如何通过IDA PRO对linux程序进行远程调试(如果宿主机为WINDOWS系统的话,原理类似)。

2.1 远程Linux端环境配置

首先,需要将IDA PRO中自带的用于远程调试的程序拷贝到LINUX机器中,这个程序就是linux_server或者linux_serverx64,前者用于调试32位程序,后者用于64位程序,且后者并不能兼容前者,因此在调试的时候需要注意了。后文以调试32位程序为例。

笔者的远程Linux系统为Ubuntu14.04,这是一个64位系统,因此默认情况下无法运行32位的linux_server程序,主要报错为缺少 libstdc++.so.6系统库,解决办法很简单:

sudo apt-get install lib32stdc++6

然后再运行linux_server就没问题了,成功运行效果如下:

chouchou:~$ ./linux_server

IDA Linux 32-bit remote debug server(ST) v1.20. Hex-Rays (c) 2004-2015

Listening on port #23946...

至此,Linux端的环境配置就完成了,是不是很简单^_^ ?

2.2 宿主MAC端环境配置

1. 首先,需要将等待调试的Linux应用程序拷贝到MAC端,以调试overFlow程序为例,将该程序拷贝到MAC目录中,笔者为~/Documents/vmWare/share/overFlow .

2. 然后,使用IDA打开该程序,注意因为是32bit程序,所以我们也需要选择32bit的IDA,通常命名为idaq.(64bit IDA通常命名为idaq64)

3. 在IDA的菜单选择Debugger->Select debugger,然后选择Remote Linux debugger,如下图所示:

eb115c99dc1ff36d161a7f8ea5d17b81.png

4. 再次点击Debugger菜单,选择Process options,然后参照下图进行设置:

07a47233e75b2f1c308a57e9060ff5b4.png

至此,MAC端的环境配置完毕。

3 开始调试

首先,我们在IDA中的main函数中下断点,如下图所示:

047c950927bef524cfdb0148f624087b.png

然后在Debugger中选择Start process,在弹出的窗口中根据提示信息选择yes和cancle即可,最终得到如下图所示的调试界面:

e4aa570768e63640dc5833c02a2a869f.png

大功告成!开始愉快的享受IDA带来的非一般的调试体验吧!

Visual Studio 2015中使用gdb远程调试linux程序

VS的debug功能非常强大,相比而言linux上的图形化调试一直不是很好用. 如果可以使用VS来调试linux程序,应该是一件比较愉快的事情. 这在2015中变得可能,因为从2015开始VS支持An ...

eclipse/idea远程调试Linux程序

第一步.在Tomcat的bin目录下的startup.sh文件的倒数第二行增加“JPDA_ADDRESS=8787”,最后一行在start的前边增加“jpda”,之后重启Tomcat 第二步.配置Ec ...

visual studio 在windows远程调试 linux 程序 cout 输出乱码

转载:https://www.cnblogs.com/findumars/p/6627255.html 反正是解决了. 以gcc为例,它有三个命令选项:-finput-charset=gb18030- ...

java远程调试(断点)程序/tomcat( eclipse远程调试Tomcat方法)

tomcat远程调试: 1.Linux中配置tomcat在catalina.sh中添加如下CATALINA_OPTS="-Xdebug  -Xrunjdwp:transport=dt_soc ...

使用VS+VisualGDB编译调试Linux程序

Linux程序开发变得越来越多,越来越多的程序.产品需要跨平台,甚至有些开源项目只支持Linux平台,所以掌握Linux开发变得越来越重要. 但是对于习惯了Windows下的开发,使用了VS这个宇宙第 ...

ida GDB 远程调试

在看雪上回答的问题,有人问在WinDbg下断KiDebugRoutine或者KdEnterDebugger函数会引发蓝屏!因为是在调试Windows的内核调试引擎,我给出的解决办法是用不依赖Windo ...

NetBeans远程调试Linux c++ 11项目

NetBeans远程调试Linux c++ 11项目 由于好多原因,好久没有写博客了,随着c++ 11的普及率越来越高,开发c++ 项目的人也越来越多,可以说c++ 11 给了c++ 这门语言第二次生 ...

MAC 下用 Common Lisp 调试 OpenGL 程序

MAC 下用 Common Lisp 调试 OpenGL 程序 环境搭建 运行环境: OSX 10.11.3 EI Capitan Common Lisp: SBCL 使用 SBCL, 首先要安装这几 ...

在windows通过visual studio远程调试linux mono程序

本文参考文章 https://github.com/techl/MonoRemoteDebugger 1.通过连接https://github.com/techl/MonoRemoteDebugger ...

随机推荐

小议jQuery插件开发

1.写在前面: 大家都知道PHP专注后台与数据库的交互,前端页面中是js的天下,而jQuery作为使用最广泛,最简单有效的js的框架.深受大家的喜欢. 而js作为一门面向对象的开发语言,它独特的语法和 ...

自制操作系统(二) 让bootsector开机启动打印一首诗

qq:992591601 欢迎交流 2016-03-31作 2016-06-01.2016-06-27改 我总结了些基本原理: 1.软盘的第一个扇区为启动区 2.计算机读软盘是以512字节为单位来读写 ...

认识CoreData-基础使用

第一篇文章中并没有讲CoreData的具体用法,只是对CoreData做了一个详细的介绍,算是一个开始和总结吧. 这篇文章中会主要讲CoreData的基础使用,以及在使用中需要注意的一些细节.因为文章 ...

android 窗体透明的,黑暗度等的设置技巧

设置透明度(这是窗体本身的透明度,非背景) 1 WindowManager.LayoutParams lp=getWindow().getAttributes(); 2 lp.alpha=0.3f; ...

Response.Expires 属性 (转载于疯狂客的BLOG)

Expires 属性 Expires 属性指定了在浏览器上缓冲存储的页距过期还有多少时间.如果用户在某个页过期之前又回到此页,就会显示缓冲区中的版本 语法 Response.Expires [= nu ...

jQuery 事件绑定 和 JavaScript 原生事件绑定

总结一下:jQuery 事件绑定 和 JavaScript 原生事件绑定 及 区别 jQuery 事件绑定 jQuery 中提供了四种事件监听绑定方式,分别是 bind.live.delegate.o ...

input驱动12种事件类型Event types的含义

linux2.6 input subsystem中部分相关结构体的分析  最近在做linux2.6的键盘驱动程序的工作,接触到了input subsystem这一概念,现把我对其中相关结构体的理解写出 ...

vmware提示:此虚拟机似乎正在使用中,无法取得所有权的解决办法

在虚拟机运行时,一次非正常关机.导致虚拟机出现以下错误: 此虚拟机似乎正在使用中. 如果此虚拟机已在使用中,请按“取消”按钮,以免损坏它.如果此虚拟机未使用,请按“取得所有权(&T)”按钮以获 ...

C#高级编程9-第4章 继承

继承是面向对象的一大特征.要深刻学习继承,需要学会使用调试的技巧来学习它,因为它比较抽象. 继承 继承是指一个具体的类型直接使用另一类型的某些数据成员或函数成员,继承的类是基类(父类),被继承的类是派 ...

25个非常实用的jQuery/CSS3应用组件

今天分享25款功能十分强大的jQuery/CSS3应用插件,欢迎收藏. 1.jQuery水晶样式下拉导航 这是一款非常不错的jQuery多功能下拉菜单插件,菜单外观呈水晶样式,晶莹剔透,功能丰富,包含 ...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/343773.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RS485数据光端机产品特点及技术参数介绍

485光端机提供RS-232/485/422串口转光纤功能,实现光纤与RS-232/485/422串口的数据双向透明传输。由于光纤传输距离远(多模2KM,单模可达20,40,60KM),抗干扰能力强,是连接远程终端单元…

java 方法注解_使用Java注解不正确的方法

java 方法注解几乎没有什么Deprecated没有适当的文档看到Deprecated方法更令人生气的了。 我感到失落。 我应该仍然使用该方法吗? 可能这不是开发人员的意图,这就是为什么他/她添加了弃用注释。 我应该使用其他东西吗? 所以…。 使用Depreca…

[渝粤教育] 西南科技大学 高速公路 在线考试复习资料

高速公路——在线考试复习资料 一、单选题 1.加州承载比简称()。 A. B.NBA C. D.RB 2.在天气良好、交通量小、路面干净的条件下,中等技术水平的驾驶员在道路受限制部分能够保持安全而舒适行驶的最大速度称为()。 A.最佳车速 B.设计车速 C.运行车速 D.实际车速 3.避免在凸型竖…

传输设备,光端机的应用及故障分析

光端机是光通信系统中的传输设备,主要是进行光电转换及传输功用。一般用于电信、电力、监控、工业控制、视频传输等功能,在各个行业有着广泛的应用。常说的光端机指的是用于监控系统用来传输视频、数据、以太网、音频等综合信息的光端机。主要分模拟光端…

【渝粤教育】 国家开放大学2020年春季 1001中国法制史 参考试题

试卷代号:1009 2 0 2 0年春季学期期末统一考试 离散数学(本) 试题 2020年7月 一、单项选择题(每小题4分,本题共20分) 1.若集合A{a,b,c},则下列表述不正确的是&#xff08…

显式无参数构造函数与默认构造函数

大多数不熟悉Java的开发人员在没有指定至少一个显式构造函数的情况下 ,会很快了解到为其Java类隐式创建了“ 默认构造函数 ”( 由javac )。 Java语言规范的 8.8.9节简要指出:“如果一个类不包含构造函数声明,则将隐式声…

linux 有线网络管理,uos linux网络管理

实验-修该网卡默认命名规则vim /etc/default/grubGRUB_CMDLINE_LINUX"net.ifnames0 biosdevname0"update-grubshutdown -r now实验-临时配置IP地址ifconfigifconfig ens33 192.168.200.201/24ifconfig实验-IP地址的配置systemctl restart NetworkManagernmcli connec…

【渝粤教育】 国家开放大学2020年春季 1009离散数学(本) 参考试题

试卷代号:1018 2 0 2 0年春季学期期末统一考试 国际公法 试题 2020年7月 一、单项选择题(每题1分,共10分,每题只有一项答案正确,请将正确答案的序号填在括号内) 1.国际法基本原则的特征之一是各国公认&…

什么是网络光纤收发器?

网络光纤收发器,将网络中的连接介质换为光纤。光纤的低损耗、高抗电磁干扰性,在使网络传输距离从200米扩展到2公里至几十公里,乃至于上百公里的同时,也使数据通讯质量有了较大的提高。它使服务器、中继器、集线器、终端机与终端机…

【渝粤教育】 国家开放大学2020年春季 1020国际私法 参考试题

试卷代号:1025 2 0 2 0年春季学期期末统一考试 保险学概论 试题 2020年7月 注 意 事 项 一、将你的学号、姓名及分校(工作站)名称填写在答题纸的规定栏内。考试结束后,把试卷和答题纸放在桌上。试卷和答题纸均不得带出考场。监考人…

linux hexdump显示格式c数组,hexdump命令

hexdump命令一般用来查看“二进制”文件的十六进制编码,但实际上它能查看任何文件,而不只限于二进制文件。语法hexdump [选项] [文件]...选项-n length 只格式化输入文件的前length个字节。-C 输出规范的十六进制和ASCII码。-b 单字节八进制显示。-c 单字…

【渝粤教育】 国家开放大学2020年春季 1032成本管理 参考试题

试卷代号:1040 2 0 2 0年春季学期期末统一考试 公司概论 试题 2020年7月 注意事项 一、将你的学号、姓名及分校(工作站)名称填写在答题纸的规定栏内。考试结束后,把试卷和答题纸放在桌上。试卷和答题纸均不得带出考场。监考人收完…

关于光纤收发器的一些基本常识介绍

光纤收发器是网络数据传输中必不可缺少的一种设备,那么,什么是光纤收发器呢,光纤收发器都有什么组成的呢,光纤收发器是怎么分类的呢,光纤收发器有哪些特点呢,光纤收发器在数据传播过程中起到什么作用呢&…

【渝粤教育】 国家开放大学2020年春季 1050金融理论前沿课题 参考试题

试卷代号:1058 2 0 2 0年春季学期期末统一考试 商法试题 2020年7月 一、单项选择题(每题只有一个正确答案,多选或错选均不得分,每小题1分,共10分) 1.商人应具备的基本条件是( )。 A.…

【渝粤教育】 国家开放大学2020年春季 1068小企业管理 参考试题

试卷代号:1070 2 0 2 0年春季学期期末统一考试 组织行为学 试题 2020年7月 注意事项 一、将你的学号、姓名及分校(工作站)名称填写在答题纸的规定栏内。考试结束后,把试卷和答题纸放在桌上。试卷和答题纸均不得带出考场。监考人收…

linux操作系统学什么,Linux学习-第一天-什么是操作系统

Linux学习--第一天--什么是操作系统?第一章 什么是Linux1.1 什么是Linux1.1.1 计算机:计算的辅助工具计算机必须要有的组件:输入单元:如鼠标、键盘、卡片阅读器机,等等。中央处理器(CPU):含有算术逻辑、控制…

java中runnable_Java:在Runnable中处理RuntimeException

java中runnable去年年底,我正在运行预定的任务来监视Neo4j集群,而我遇到的问题之一是有时会退出监视。 最终我意识到这是因为RuntimeException被抛出到Runnable方法中,而我没有处理它。 以下代码演示了该问题: import java.util…

工业级光纤收发器产品性能特点介绍

工业级光纤收发器是一种可以延长传输距离的一种工业交换机,它具有便捷、维护简单、抗干扰性能强、性能强大、运行稳定等优点,产品设计符合以太网标准,性能稳定可靠。那么在,数据通信行业中,工业级光纤收发器到底扮演者…

【渝粤教育】 国家开放大学2020年春季 1079高等代数专题研究 参考试题

试卷代号:1083 座位号 2 0 2 0年春季学期期末统一考试 几何基础 试题 2020年7月 一、选择题(每小题4分,本题共20分) 1.如果两个向量的对应分量成比例,则二者( ). A.平行 B&#xff0…

【渝粤教育】 国家开放大学2020年春季 1107传感器与测试技术 参考试题

试卷代号:1110 座位号 2 0 2 0年春季学期期末统一考试 工程地质 试题 2020年7月 一、单项选择题(将正确答案的序号填入括号,每小题2分,共计30分) 1.工程地质条件即( )。 A.工程活动的地质环境 B…