IDA Pro > IDA Pro教程 > 技术问题 > IDA Pro变量(Variables)

IDA Pro变量(Variables)

发布时间:2022-10-15 14: 47: 45

  There are two kinds of variables in IDC:

 -local variables:they are created at the function entry

 and destroyed at the exit

 -global variables:they are created at the compilation time

 and destroyed when the database is closed

 A variable can contain:

 -LONG:a 32-bit signed long integer(64-bit in 64-bit version of IDA)

 -INT64:a 64-bit signed long integer

 -STR:a character string

 -FLOAT:a floating point number(extra precision,up to 25 decimal digits)

 -OBJECT:an object with attributes and methods

 (a concept very close to C++class)more

 -REF:a reference to another variable

 -FUNC:a function reference

 A local variable is declared this way:

 auto var1;

 auto var2=;

 Global variables are declared like this:

 extern var;

 Global variables can be redefined many times.IDA will silently ignore subsequent declarations.Please note that global variables cannot be initialized at the declaration time.

 All C and C++keywords are reserved and cannot be used as a variable name.

 While it is possible to declare a variable anywhere in the function body,all variables are initialized at the function entry and all of them are destroyed only at the exit.So,a variable declared in a loop body will not be reinitialized at each loop iteration,unless explicitly specified with an assignment operator.

 If a variable or function name cannot be recognized,IDA tries to resolve them using the names from the disassembled application.In it succeeds,the name is replaced by its value in the disassembly listing.For example:

 .data:00413060 errtable dd 1;oscode

 .data:00413060 dd 16h;errnocode

 msg("address is:%x\n",_errtable);

 will print 413060.If the label denotes a structure,it is possible to refer to its fields:

 msg("address is:%x\n",_errtable.errnocode);

 will print 413064.Please note that IDA does not try to read the data but just returns the address of the structure field.The field address can also be calculated using the get_field_ea function.

 NOTE:The processor register names can be used in the IDC scripts when the debugger is active.Reading from such a variable return the corresponding register value.Writing to such a variable modifies the register value in the debugged process.Such variables are accessible only when the application is in the suspended mode.

 NOTE:another way to emulate global scope variables is to use array functions and create global persistent arrays.

 中文翻译如下:

 DC中有两种变量:

 ●局部变量:它们在函数入口处创建,在函数退出时销毁

 ●全局变量:它们在编译时创建,在数据库关闭时销毁

 ●变量可以包含以下内容:LONG:32位有符号长整型(64位版本的IDA中为64位)

 ●INT64:64位有符号长整型

 ●STR:字符字符串

 ●FLOAT:浮点数(额外精度,最多25个小数位)

 ●OBJECT:具有属性和方法的对象(概念非常接近于C++类)更多信息

 ●REF:对另一个变量的引用

 ●FUNC:函数引用

 局部变量的声明方式为:

 auto var1;

 auto var2=;

 全局变量声明方式为:

 extern var;

 全局变量可以重复定义多次,IDA会自动忽略后续的声明。请注意,全局变量不能在声明时初始化。

 所有C和C++关键字都是保留的,不能用作变量名。

 尽管可以在函数体的任何位置声明变量,但所有变量都在函数入口初始化,并且只有在函数退出时才会销毁它们。因此,在循环体中声明的变量不会在每次循环迭代中重新初始化,除非使用赋值运算符明确指定。

 如果无法识别变量或函数名称,IDA会尝试使用反汇编应用程序中的名称进行解析。如果成功,名称将替换为其在反汇编列表中的值。例如:

 .data:00413060 errtable dd 1;oscode

 .data:00413060 dd 16h;errnocode

 msg("address is:%x\n",_errtable);

 将打印413060。如果标签表示结构,则可以引用其字段:

 msg("address is:%x\n",_errtable.errnocode);

 将打印413064。请注意,IDA不尝试读取数据,只是返回结构字段的地址。可以使用get_field_ea函数计算字段地址。

 注意:当调试器处于活动状态时,可以在IDC脚本中使用处理器寄存器名称。从这样的变量读取返回相应的寄存器值。将值写入这样的变量将修改调试过程中的寄存器值。这些变量仅在应用程序处于暂停模式时可访问。

 注意:模拟全局作用域变量的另一种方法是使用数组函数并创建全局持久性数组。

展开阅读全文

标签:

读者也访问过这里:
邀请您进入交流群 点击扫码
400-8765-888 kefu@makeding.com

专业销售为您服务

欢迎添加好友,了解更多IDA优惠信息,领逆向工程学习资料礼包1份!
热门文章
exe反编译工具哪个好?反编译能力强的工具盘点
随着软件技术的发展,exe(可执行文件)已经成为了电脑、手机等多个平台上的主要软件运行格式,而对于exe文件的反编译也成为了逆向工程中不可缺少的一个步骤。本文将介绍一些常用的exe反编译工具,并评价其优缺点,帮助读者选择合适的工具。
2023-04-12
idapro怎么改为中文
IDA Pro是一款功能强大的反汇编和反编译工具,广泛应用于逆向工程和软件开发领域。在使用IDA Pro时,如果我们不习惯英文界面,可以将其改为中文界面。本文将介绍IDA Pro怎么改为中文界面。IDA Pro界面改成中文主要有两种方法,下面是详细介绍。
2023-04-19
c++反编译工具有哪些
反编译C++代码的工具一般是针对可执行文件和库文件的反汇编和逆向分析工具。本文将给大家介绍c++反编译工具有哪些的内容。市面说的c++反编译工具有很多,下面介绍几款使用认识较多的软件。
2023-04-23
ida怎么查找字符串 ida字符串窗口快捷键
在数字化时代,逆向工程作为解密软件和分析程序的关键技术,正日益受到广泛关注。在逆向分析的过程中,IDA(Interactive DisAssembler)是一款备受推崇的工具,它为逆向工程师们提供了强大的功能和灵活的操作。本文将带您深入探讨如何在IDA中查找字符串,优化字符串窗口的使用,并探讨IDA如何将变量转换成字符串,帮助您更加熟练地驾驭这一工具,为逆向分析的世界增添一抹精彩。
2023-09-27
ida如何转伪代码 ida伪代码怎么看
IDA Pro是一款常用的反汇编和反编译工具,可以帮助我们分析二进制文件的实现细节和执行过程,以便更好地理解程序的执行过程和逻辑。在进行逆向工程的过程中,我们经常需要将反汇编结果转换为伪代码,以便更好地进行分析和修改。本文将介绍如何使用IDA Pro转换为伪代码,并简单讲解ida伪代码怎么看。
2023-04-14
最新文章
IDA Pro反编译apk时先看什么 IDA Pro反编译apk资源文件怎么定位
很多人把APK丢进IDA Pro以后,第一反应就是直接找核心函数或敏感字符串,结果越看越乱。真正更稳的顺序,通常不是先扎进某个类里,而是先把APK的入口、代码承载方式和资源结构摸清。Hex-Rays官方文档已经说明,IDA既可以直接处理`.apk`,也可以处理其中的`.dex`;如果用`APK`loader,IDA会加载所有`classes*.dex`,而如果用`ZIP`方式,则只是从APK里提取某一个dex来看。Android官方资料则明确了APK里常见关键文件的位置,比如根目录下的`AndroidManifest.xml`、`classes.dex`和`resources.arsc`。这也意味着,先看什么、资源去哪里找,本来就是两条线。
2026-05-25
IDA Pro反编译so文件怎么进行 IDA Pro反编译so文件入口函数怎么找
很多人第一次分析so文件,最容易走偏的地方不是不会点F5,而是把so当成独立可执行文件来处理。Hex-Rays官方文档说明,IDA的反编译核心入口是伪代码窗口,既可以在反汇编和伪代码之间来回切换,也可以把选中的函数或整个应用生成C风格输出;同时,IDA里的函数窗口、导出符号窗口和入口点列表,本来就是配合定位代码结构一起用的。也就是说,分析so文件时,真正稳的顺序通常不是“先找main”,而是先让函数、导出和入口信息都浮出来,再决定从哪一层往里走。
2026-05-25
IDA Pro反编译插件怎么装 IDA Pro反编译插件装完后怎么调用
在IDA Pro里装反编译插件,很多人最容易混淆的不是安装包怎么点,而是把IDA主程序安装、许可证文件放置、反编译插件安装路径和实际调用入口看成了一步。按Hex-Rays官方文档,IDA本体安装后需要先放好ida.hexlic许可证文件,而官方反编译器安装程序则会把插件装到IDA安装目录下的plugins子目录里;装完以后,真正调用反编译并不是去找一个单独的外部程序,而是在IDA里直接打开伪代码视图。也就是说,先把“装到哪”和“从哪调用”这两层拆开,后面会顺很多。
2026-05-25
IDA Pro反编译工具有哪些功能 IDA Pro反编译工具适合处理哪些文件
很多人提到IDA Pro反编译工具,第一反应还是“把汇编变成伪代码”,但从Hex-Rays官方资料来看,它的价值不只在这一点。IDA Pro本身是反汇编器、反编译器和调试器的组合工具,而反编译模块是在反汇编结果之上生成接近源代码结构的C风格伪代码,方便分析逻辑、变量关系和控制流程。官方还强调,反编译输出追求可读性、结构化和语义接近原始源码,所以它更适合做二进制理解,而不只是看一眼大概意思。
2026-05-25
IDA Pro反编译工具有哪些功能 IDA Pro反编译工具适合处理哪些文件
很多人提到IDA Pro反编译工具,第一反应还是“把汇编变成伪代码”,但从Hex-Rays官方资料来看,它的价值不只在这一点。IDA Pro本身是反汇编器、反编译器和调试器的组合工具,而反编译模块是在反汇编结果之上生成接近源代码结构的C风格伪代码,方便分析逻辑、变量关系和控制流程。官方还强调,反编译输出追求可读性、结构化和语义接近原始源码,所以它更适合做二进制理解,而不只是看一眼大概意思。
2026-05-18
IDA Pro调试so文件怎么做 IDA Pro调试so文件符号缺失怎么补
很多人第一次用IDA Pro调试so文件,容易把“加载so”当成“直接运行so”。真正落地时,so属于共享库,调试重点通常不是单独把文件点开,而是让IDA跟着加载它的宿主进程一起跑。Hex-Rays官方文档已经明确,IDA支持本地和远程调试applications and shared libraries,Linux本地调试也支持直接启动新进程或附加到现有进程,所以so调试的主线其实很清楚,就是先选调试器,再跟到宿主进程,再去看模块和符号。
2026-05-14

通过微信咨询我们

欢迎添加好友,了解更多IDA优惠信息,领取逆向工程学习资料礼包1份!

读者也喜欢这些内容: