iis服务器助手广告广告
返回顶部
首页 > 资讯 > 服务器 >ida使用技巧之动态调试
  • 670
分享到

ida使用技巧之动态调试

linux运维服务器 2023-09-08 21:09:20 670人浏览 八月长安
摘要

一、ida动态调试 1、介绍 众所周知,ida是一款非常优秀的反编译软件,在静态逆向中是属于屠龙宝刀一般的存在,他不仅仅有着优秀的静态分析能力,同时还有着极其优秀的动态调试能力,甚至可以直接对生成的伪

一、ida动态调试

1、介绍

众所周知,ida是一款非常优秀的反编译软件,在静态逆向中是属于屠龙宝刀一般的存在,他不仅仅有着优秀的静态分析能力,同时还有着极其优秀的动态调试能力,甚至可以直接对生成的伪代码进行调试,这一点远超其他只能在汇编层进行调试的动态调试器,极大的增加了动态调试程序的可读性,能够节省很多精力。甚至可以以远程调试的方式,将程序部署在linux或安卓端上,实现elf文件和so文件等的动态调试。

2、本地调试(windows

首先从本地动态调试开始

加载目标文件

万年第一步,使用ida打开目标文件,然后点击菜单项中的“Debugger”
在这里插入图片描述
选择select debugger
在这里插入图片描述本地调试Windows文件,所以这里选择local Windows debugger。
在这里插入图片描述点击ok之后,再看debugger菜单发现此时菜单以新的形式展开

在这里插入图片描述此时再点击带有绿色三角符号的“Start process”即可开始调试程序

ida还支持另一种调试方式,即将目标文件附加到一个正在运行的进程上,以调试某些无法独立运行的文件,如果想以这种方式进行调试,则在选好调试器后点击“Attach to process”后即可选择附加进程
在这里插入图片描述

调试器界面

经过一段时间的加载之后,进入了调试器界面
在这里插入图片描述“IDA-view-eip”界面是反汇编窗口,在这里点击f5,可以进入伪代码调试
在这里插入图片描述

可以说是非常的好用
下面的“hex view”顾名思义,右边从上到下分别是级寄存器/标志寄存,加载到进程内存空间中的可执行文件和共享库,双击模块名称可打开该模块输出的符号表,再向下看就是栈窗口

调试命令

ida快捷键功能
F7单步步进
F8单步步过
F9继续运行程序
F4运行到光标所在行
Ctrl + F7直到该函数返回时才停止
Ctrl + F2终止一个正在运行的进程
F2设置断点

断点

ida的动态调试同样支持设置条件断点
在这里插入图片描述
设置好断点后,右键断点,点击第二行“Edit breakpoint”即可打开断点设置菜单
在这里插入图片描述
location栏是断点地址,condition栏则是条件断点的表达式
例:EAX == 12
指当EAX的值为12时中断,同时,因为condition栏由IDC表达式支持,所以可以使用一些IDC的函数。
比如:GetRegValue(“ZF”)
指当ZF的值不为0时中断

监视窗口

ida同样也支持对数据的监视,需要监视的数据一般在栈或者数据块中,进入栈或者数据,点击右键打开菜单,选择“Add watch”
在这里插入图片描述即可在窗口“watch list”中显示,如果需要删除,则按“Delete”键
在这里插入图片描述

3、远程调试

ida支持远程调试Windows、linux、AndroidMac OS的二进制文件,将文件放在远程的对应系统服务器上,ida远程连接服务器,在服务器上运行、调试程序,并在本地客户端显示调试界面。界面视图上和本地调试并没有区别。
如果需要远程调试,首先需要将ida的服务端部署在远程服务器上,ida的服务端存储在ida目录中的dbgsrv文件中
在这里插入图片描述将需要调试的文件和服务端版本放入服务器中,然后运行服务端,会默认在23946端口启动ida服务端程序,以linux为例
被调试程序是64位elf文件,所以在linux端运行linux_server64,然后回到客户端
在这里插入图片描述
客户端的第一步没什么变化,在菜单选择debugger栏,在选择debugger时,选择Remote Linux debugger
在这里插入图片描述然后在菜单中先选择“Process option”进行设置
在这里插入图片描述
打开后页面如下
在这里插入图片描述第一行application和input file选择被调试文件在服务端中的存储路径。下面第三行的directory是存储路径,直接选被调试文件所在目录就行。再下面第四行的是程序启动时传入的参数,可以为空。第五行则“Hostname”则填服务端的ip和端口号,我这里选的服务端是虚拟机。最后一行的passWord是linux_server启动时设置的密码,如果没有设置,则为空即可。全部设置正确之后就可以开始调试了
点击“start process”开始调试程序

在这里插入图片描述可以看到在服务端程序已经成功启动
在这里插入图片描述

接下来的步骤和本地调试并没有什么区别不再赘述。其他安卓和Mac的文件远程调试也是大同小异,也不再多说了。

来源地址:https://blog.csdn.net/m0_52164435/article/details/124871122

--结束END--

本文标题: ida使用技巧之动态调试

本文链接: https://www.lsjlt.com/news/400678.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • ida使用技巧之动态调试
    一、ida动态调试 1、介绍 众所周知,ida是一款非常优秀的反编译软件,在静态逆向中是属于屠龙宝刀一般的存在,他不仅仅有着优秀的静态分析能力,同时还有着极其优秀的动态调试能力,甚至可以直接对生成的伪...
    99+
    2023-09-08
    linux 运维 服务器
  • Android渗透测试12:IDA动态调试so
    0x00 前言 上一篇分享了使用 Android studio 和 Jeb 对 Apk 文件直接进行动态调试,本文将分享使用 IDA pro 调试 so 。 调试的 apk 文件还是使用 C...
    99+
    2023-10-20
    android android studio ide
  • 实用调试技巧(2)
    文章目录 6. 如何写出好(易于调试)的代码6.1 优秀的代码:6.2 示范:6.3 const的作用 7. 编程常见的错误7.1 编译型错误7.2 链接型错误7.3 运行时错误 ...
    99+
    2023-10-02
    linux 运维 服务器 算法 c语言 开发语言
  • JavaScript常用的调试技巧
    这篇文章主要讲解了“JavaScript常用的调试技巧”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript常用的调试技巧”吧!以更快的速度和更...
    99+
    2024-04-02
  • PHP 函数的动态调用技巧是什么?
    php 动态调用函数是一种强大的特性,允许您根据变量值或输入动态调用函数。您可以使用 call_user_func() 函数,其中第一个参数是函数名称,后面是函数参数。动态调用函数可提高...
    99+
    2024-04-11
    函数 php
  • Android H5移动调试技巧——Chrome /Edge /QQ Inspect
    Android APP项目原生的Html5做,cordova框架技术。苦于调试不便。稍微了解一下浏览器调试插件。 Chrome Inspect 使用该调试技巧,调试移动端中—自身开发的Hybrid APP、微信、UC、QQ、抖音等打开的页...
    99+
    2023-09-01
    chrome edge 前端
  • HTTP状态码调试和故障排除的技巧
    掌握HTTP状态码的调试与排查技巧在使用Web应用程序时,我们经常会遇到各种HTTP状态码。这些状态码是服务器响应请求时返回的标准化代码,用于告诉客户端请求的处理结果。了解和掌握HTTP状态码的含义,能够帮助我们更好地调试和排查应用程序中的...
    99+
    2023-12-26
    调试技巧 HTTP状态码 排查技巧
  • 【Android】Jadx动态调试应用
    【Android】Jadx动态调试应用 1. 前言 Jadx已支持动态调试APP,但一直没试过,从逆向角度尝试走一遍流程并熟悉,方便日后翻阅。 2. 相关知识 2.1 动态调试原理 动态调试的原理可以...
    99+
    2023-09-09
    android jadx 动态调试
  • 实用的Javascript调试技巧整理
    目录1. 不要使用alert2. 学会使用console.log3. 学会使用console.dir4. 学会使用console.table5. 学会使用console.time6....
    99+
    2024-04-02
  • C++ 函数调试的实用技巧
    C++ 函数调试的实用技巧 引言调试 C++ 函数可能是具有挑战性的,尤其是对于大型和复杂的函数。本文介绍了一些实用的技巧,可以帮助您高效地调试 C++ 函数,并识别和解决错误。 实战...
    99+
    2024-04-18
    调试 c++
  • 使用console进行JS调试的技巧有哪些
    这篇文章主要讲解了“使用console进行JS调试的技巧有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“使用console进行JS调试的技巧有哪些”吧!...
    99+
    2024-04-02
  • 实用的JavaScript调试技巧有哪些
    今天小编给大家分享一下实用的JavaScript调试技巧有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们...
    99+
    2024-04-02
  • IDEA的基本介绍使用及断点调试技巧
    目录1、IDE(集成开发环境)- IDEA2、IDE(集成开发环境)- Eclipse3、IDEA 的基本介绍和使用3.1、设置字体 和 颜色主题3.2、编译文件和源代码3.3、ID...
    99+
    2024-04-02
  • 递归在 C++ 调试中的陷阱:理解调用栈和调试技巧
    递归在 c++++ 中的陷阱:堆栈溢出:递归调用可能导致堆栈容量不足,使用调试器跟踪调用栈并优化递归算法。无限递归:递归基情况下有错误或遗漏,导致持续调用自身,检查递归基情况并使用备忘录...
    99+
    2024-05-03
    c++ 递归 堆栈溢出
  • Spring技巧之如何动态读取配置文件
    目录Spring 动态读取配置文件需求背景方案一方案二方案三动态读取配置文件中的信息1、首先是写一个配置文件,方便动态加载1、利用类加载器等读取配置文件Spring 动态读取配置文件...
    99+
    2024-04-02
  • C++ 生态系统中流行库和框架的调试技巧
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-14
  • Linux平台上使用Python进行脚本调试的技巧
    Linux平台上使用Python进行脚本调试的技巧在Linux平台上使用Python进行脚本调试是开发过程中常见的任务之一。脚本调试可以帮助我们快速定位和修复代码中的错误,提高开发效率。本文将介绍一些在Linux平台上使用Python进行脚...
    99+
    2023-10-22
    调试器(Debugger) 断点(Breakpoint) 日志输出(Logging)
  • PHP 函数调用中的异常处理与调试技巧
    发生异常时,php 函数调用异常处理可以捕获并处理错误,而调试技巧有助于识别和解决根本原因。调试技巧包括检查错误消息、使用 var_dump 检查变量值、设置断点和启用 php 错误日志...
    99+
    2024-04-17
    php 异常处理
  • php代码审计之phpstorm动态调试环境配置
    phpstorm快捷键 phpstorm的一些常用快捷键: Ctrl+alt+F7 查看某类、函数、变量在该项目的全部使用 Ctrl+shift+F7 高亮 ctrl+shift+R 在路径中查找 c...
    99+
    2023-09-14
    渗透测试 网络安全 web安全
  • Docker集群之Flannel使用技巧
    当您将多台服务器节点组成一个Docker集群时,需要对集群网络进行设置,否则默认情况下,无法跨主机容器互联,接下来我们首先分析一下原因。跨主机容器互联下图描述了一个简单的集群网络,在该集群内,有两台服务器甲和乙,每台服务器上都有两张网卡,分...
    99+
    2023-06-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作