行业解决方案查看所有行业解决方案
IDA 用于解决软件行业的关键问题。
发布时间:2023-05-29 13: 31: 30
Action name:BreakpointEdit
This command opens a dialog box to edit an existing breakpoint.
Location
The breakpoint location:either an absolute address,a symbol name,
a module+offset combination,or a source file name and a line number.
The exact location syntax depends on the breakpoint kind:absolute,module
relative,symbolic,or source code.
Condition
This IDC expression will be evaluated each time the breakpoint
is reached.If the expression returns true(non-zero),the debugger will execute the
selected actions.Please note that you can use the register names in the
IDC scripts when the debugger is active.Tests like this are allowed,
for example:EAX==EBX+5 or get_wide_dword(ESP+0x10)==34
You can also use the"..."button to enter a multiline condition,or specify
another scripting language to use.See here for
more info.
Settings
Enabled:
If the breakpoint is enabled or disabled.Disabled breakpoints
are not written to the debugged process.
Hardware:
If enabled,IDA will use a hardware breakpoint.The breakpoint
mode and size must be specified for them(see below).
Module relative:
The breakpoint location is stored as a combination of a module
name and an offset.This kind of breakpoint is useful for
DLLs that are loaded to various addresses because their addresses
cannot be calculated in advance.Example:kernel32+0x1234
Symbolic:
The breakpoint location is stored as a combination of a symbol
name and a possible offset.This kind of breakpoint is useful for
symbols that can be imported from different DLLs because their addresses
cannot be calculated in advance.Example:myfunc+44
Source code:
The breakpoint location is stored as a combination of a source file
name and a line number.Can be used only if the source code of the
debugged application is available.Example:myfile.cpp:55
Low level condition:
Evaluate the condition on the remote computer.Such conditions are
faster,especially during remote debugging,because there is no
network traffic between IDA and the remote computer on each
breakpoint hit.More details
Actions
Break:
Suspend the debugged application
Trace:
Add a new entry to the trace log
Refresh debugger memory:
By default IDA does not refresh the memory config before evaluating
a breakpoint condition.This option enables the refresh.
To refresh it manually,call refresh_debugger_memory
Enable tracing:
Enable tracing when the breakpoint hits.This is different from trace
breakpoints(where only a new entry is added to the trace log).
Disable tracing:
Disable tracing when the breakpoint fires.
Tracing type:
Instruction,Function and Basic block level tracing types can be selected
for breakpoints where enable/disable tracing have been selected.
Hardware breakpoint size
Number of bytes to watch:1,2 or 4 bytes for normal hardware breakpoints.
Any size for page breakpoints.
Hardware breakpoint mode
The access type the breakpoint will react:read/write,write,execute.
In the case of Intel hardware breakpoints,some limitations are enforced(in contrast with page breakpoints).It is impossible to create more than 4 hardware breakpoints.The address of the breakpoint must be aligned appropriately:
-2-byte breakpoints must be word-aligned.
-4-byte breakpoints must be dword-aligned.
Please note that hardware breakpoints occur AFTER the instruction execution while software breakpoints occur BEFORE the instruction.
Usually,it is easier to use software breakpoints,except if:
-we want to be sure the memory is not modified by the debugger
(instruction breakpoints modify the debugged process memory).
-we want to detect accesses to data bytes.
-the specified address is write protected(really rare!).
See also Breakpoints list
Add breakpoint
Delete breakpoint
Breakpoint conditions
Breakpoints submenu
Index of IDC functions
中文翻译:
动作名称:BreakpointEdit
此命令打开一个对话框以编辑现有断点。
地点
断点位置:绝对地址,符号名,模块+偏移量组合,或源文件名和行号。
确切的位置语法取决于断点类型:绝对、模块
相对的、符号的或源代码。
健康)状况
断点时都会评估此IDC表达式到达了。如果表达式返回真(非零),调试器将执行选定的动作。请注意,您可以在调试器处于活动状态时的IDC脚本。允许这样的测试,例如:EAX==EBX+5或get_wide_ dword(ESP+0x10)==34
您还可以使用...按钮输入多行条件,或指定要使用的另一种脚本语言。在这里查看更多信息。
设置
启用:
断点是启用还是禁用。禁用断点不写入被调试的进程。
硬件:
如果启用,IDA将使用硬件断点。断点必须为它们指定模式和大小(见下文)。
模块相关:
模块的组合
名称和偏移量。这种断点是有用的加载到不同地址的DLL,因为它们的地址无法提前计算。示例:kernel32+0x1234
象征性的:
符号的组合名称和可能的偏移量。这种断点是有用的可以从不同的DLL导入的符号,因为它们的地址无法提前计算。示例:myfunc+44
源代码:
文件的组合名称和行号。只有在源代码的情况下才能使用调试的应用程序可用。示例:myfile.cpp:55
低电平情况:
评估远程计算机上的状况。这样的条件是更快,尤其是在远程调试期间,因为没有IDA和远程计算机之间的网络流量断点命中。更多细节动作
休息:
挂起被调试的应用程序
痕迹:
日志添加新条目
刷新调试器内存:
默认情况下,IDA在评估之前不会刷新内存配置断点条件。此选项启用刷新。要手动刷新它,请调用refresh_debugger_memory
启用跟踪:
断点命中时启用跟踪。这与跟踪不同断点(只有一个新条目被添加到跟踪日志)。
禁用跟踪:
触发断点时禁用跟踪。
跟踪类型:
可选择指令、函数和基本块级跟踪类型对于已选择启用/禁用跟踪的断点。
硬件断点大小
要观察的字节数:1、2或4个字节用于普通硬件断点。
页面断点的任意大小。
硬件断点模式
断点将反应的访问类型:读/写、写、执行。
在Intel硬件断点的情况下,强制执行一些限制(与页断点)。
不可能创建超过4个硬件断点。
断点的地址必须适当对齐:
-2字节断点必须字对齐。
-4字节断点必须是双字对齐的。
请注意,硬件断点发生在指令执行之后而软件断点出现在指令之前。
通常,使用软件断点更容易,除非:
-我们要确保内存没有被调试器修改(指令断点修改被调试的进程内存)。
-我们想要检测对数据字节的访问。
-指定的地址被写保护(真的很少见!)。
另见断点列表
添加断点
删除断点
断点条件
断点子菜单
IDC功能索引
展开阅读全文
︾
读者也喜欢这些内容:
IDA Pro so文件反编译怎么定位入口 IDA Pro so文件反编译函数名全是sub怎么办
so属于共享库,很多时候并不存在像可执行文件那样的main入口,所谓入口更像是三类起点:导出接口被谁调用、加载阶段有哪些初始化函数、以及关键字符串或关键API把你引到哪条调用链。另一边函数名全是sub,通常意味着符号被剥离或识别率不够,你需要把符号来源、签名识别、手工命名这三条线同时跑起来,才能把阅读成本降下来。...
阅读全文 >
IDA Pro反编译功能怎么开 IDA Pro反编译结果怎么导出保存
IDA Pro里看到伪C代码,依赖的不是“某个开关”,而是Hex-Rays Decompiler组件是否已安装且与你当前IDA版本和目标架构匹配。很多人按了F5没反应,或弹出没有反编译器的提示,本质都是反编译器没装好、装错目录、版本不匹配,或当前样本的架构没有对应的反编译器。下面按实际操作路径,把开启与导出两件事一次讲清楚,仅建议用于你有合法分析权限的程序与样本。...
阅读全文 >
IDA动态调试的使用方法 IDA动态调试后自动更新变量名
在分析复杂程序时,仅靠静态反汇编往往无法看到完整的运行逻辑,尤其是加壳、动态调用、异或加密等场景。此时,借助IDA Pro的动态调试功能,可以实时捕捉程序执行流程,监控变量值和调用栈变化,大大提高分析准确性。更进一步,IDA Pro还支持调试过程中自动更新变量名和函数名,提高代码可读性。本文围绕“IDA动态调试的使用方法IDA动态调试后自动更新变量名”进行详解,帮助你从基础操作入手,深入掌握IDA的高级用法。...
阅读全文 >
IDA Pro如何调试脚本 IDA Pro脚本调试可以使用哪些工具
做逆向工程或者安全分析的小伙伴都知道IDA Pro这个软件,它还有个功能很实用,就是脚本调试。IDA Pro的脚本功能不仅能做更深入的分析,还能省下很多重复劳动时间,让逆向过程变得特别高效。接下来,我们就聊聊IDA Pro如何调试脚本 IDA Pro脚本调试可以使用哪些工具这个话题。...
阅读全文 >