行业解决方案查看所有行业解决方案
IDA 用于解决软件行业的关键问题。
发布时间:2023-05-29 10: 56: 11
This command changes the look of the disassembly.Here you can change the values of the following checkboxes/input fields:
Line prefixes
This checkbox enables or disables line prefixes display.
Line prefix is the address of the current byte:
3000:1000 mov ax,bx
^^^^^^^^^
IDA.CFG parameter:SHOW_LINEPREFIXES
Number of opcode bytes
Opcode bytes are shown below:
3000:1000 55 push bp
^^^^^^^^^
The opcode is the operation code of the current instruction.
For the data items,the opcodes are elements of data directives.
Sometimes there is not enough place to display all bytes of an item
(of a large array,for example).In this case,IDA will display just
the few first bytes of the item.For the code items,IDA will try
to display all bytes of the instruction,even if it requires adding
more lines just for the opcode bytes.If this behavior is not desired,
the number of opcode bytes can be specified as a negative value.
A negative value-N means to display N opcode bytes on a line but
never display empty lines just for the opcode bytes.
By default,IDA does not display the opcodes.
IDA.CFG parameter:OPCODE_BYTES
Use segment names
This option controls the appearance of the segment names in the
addresses.Example(codeseg has base 3000):
Enabled:codeseg:0034
Disabled:3000:0034
IDA.CFG parameter:USE_SEGMENT_NAMES
Segment addresses
Marking this checkbox,you can disable segment addresses in the
disassembly.IDA will show only offsets.Example:
Enabled:codeseg:0034
Disabled:0034
IDA.CFG parameter:SHOW_SEGMENTS
Function offsets
This option controls the appearance of the line prefixes.
If it is enabled,the addresses will be displayed as offsets
from a function beginning.Example:
Enabled:somefunc+0x44
Disabled:cseg:0x4544
Right margin
This option controls the length of disassembly lines for data
directives.
IDA.CFG parameter:MAX_DATALINE_LENGTH
Instruction indention
You can change indention of disassembled instructions:
mov ax,bx
<-------------->
indention
IDA.CFG parameter:INDENTION
Display bad instruction
Some assemblers do not understand some instructions even if they
must.For example,the Z80 processor has several undocumented
instructions and many assemblers fail to recognize them.IDA knows
about this fact and tries to produce an output that can be compiled
without errors,so it replaces such instructions with data bytes.
The problem is more severe with Intel 80x86 processors:the same
instruction can be coded differently.There are 2 operation codes
for ADD instruction,etc.The worst thing is that the different
operation codes have different lengths.If the assembler used to
compile a file and your assembler produce different operation codes,
you may obtain completely different output files.
That is why IDA can mark such instructions as
with data bytes.Example:
Enabled:
db 0Fh,86h,7Eh,0,0,0;
db 0Fh,82h,78h,0,0,0;
db 0Fh,83h,72h,0,0,0;
Disabled:
jbe loc_0_205
jb loc_0_205
jnb loc_0_205
IDA.CFG parameter:SHOW_BAD_INSTRUCTIONS
Use tabulations in output
You can disable the tab chars(0x09)in the output file if you do not
like them.By default,IDA produces output files with tab chars.
IDA.CFG parameter:USE_TABULATION
low suspicious limit high suspicious limit
Click here to get information about these fields.
Display stack pointer
If this option is set,IDA will display the value of
the stack pointer in the line prefix.
IDA.CFG parameter:SHOW_SP
以下为中文翻译:
此命令更改反汇编的外观。
您可以在此处更改以下复选框/输入字段的值:
行前缀
此复选框启用或禁用行前缀显示。
行前缀是当前字节的地址:
3000:1000 mov 轴,bx
^^^^^^^^^
IDA.CFG 参数:SHOW_LINEPREFIXES
操作码字节数
操作码字节如下所示:
3000:1000 55 推动基点
^^^^^^^^^
操作码是当前指令的操作码。
对于数据项,操作码是数据指令的元素。
有时没有足够的地方显示项目的所有字节
(例如,一个大数组) 。在这种情况下,IDA 将只显示
项目的前几个字节。对于代码项,IDA 会尝试
显示指令的所有字节,即使它需要添加
更多行仅用于操作码字节。如果不需要这种行为,
操作码字节数可以指定为负值。
负值 -N 表示在一行上显示 N 个操作码字节,但
永远不要只为操作码字节显示空行。
默认情况下,IDA 不显示操作码。
IDA.CFG 参数:OPCODE_BYTES
使用细分名称
此选项控制段名称在
地址。示例( codeseg 的基数为 3000):
已启用:代码段:0034
禁用:3000:0034
IDA.CFG 参数:USE_SEGMENT_NAMES
段地址
标记此复选框,您可以禁用段地址在
拆卸。 IDA 将仅显示偏移量。例子:
已启用:代码段:0034
禁用:0034
IDA.CFG 参数:SHOW_SEGMENTS
函数偏移量
此选项控制线前缀的外观。
如果启用,地址将显示为偏移量
从一个函数开始。例子:
启用:somefunc+0x44
禁用:cseg:0x4544
右边距
数据反汇编行的长度
指令。
IDA.CFG 参数:MAX_DATALINE_LENGTH
指令缩进
您可以更改反汇编指令的缩进:
移动 ax, bx
<---------------->
缩进
IDA.CFG 参数:INDENTION
显示错误指令
一些汇编器不理解某些指令,即使他们
必须。例如,Z80 处理器有几个未记录的
指令和许多汇编程序无法识别它们。 IDA知道
关于这个事实并试图产生一个可以编译的输出
没有错误,因此它将此类指令替换为数据字节。
Intel 80x86 处理器的问题更严重:同样
指令可以用不同的方式编码。有2个操作码
用于 ADD 指令等。最糟糕的是,不同的
操作码有不同的长度。如果汇编程序曾经
编译一个文件,你的汇编器产生不同的操作代码,
您可能会得到完全不同的输出文件。
这就是为什么 IDA 可以将此类指令标记为
与数据字节。例子:
启用:
分贝0Fh,86h,7Eh,0,0, 0 ; <坏> jbe loc_0_205
分贝0Fh,82h,78h,0,0, 0 ; <坏> jb loc_0_205
分贝0Fh,83h,72h,0,0, 0 ; <坏> jnb loc_0_205
禁用:
jbe loc_0_205
jb loc_0_205
jnb loc_0_205
IDA.CFG 参数:SHOW_BAD_INSTRUCTIONS
输出中使用表格
不这样做,您可以在输出文件中禁用制表符 (0x09)
像他们。默认情况下,IDA 生成带有制表符的输出文件。
IDA.CFG 参数:USE_TABULATION
低可疑限
高可疑限
单击此处获取有关这些字段的信息。
显示堆栈指针
如果设置了这个选项,IDA 将显示值
行前缀中的堆栈指针。
IDA.CFG 参数:SHOW_SP
展开阅读全文
︾