[IDA] 在IDA里如何自定义数据结构

打开IDA,先看一眼示例代码(***世界_RE_进阶区_sercet-galaxy-300):image

很明显a1是一个结构体,接下来我们自定义一个结构体,并用到a1上。首先选择Structures选项卡image

这里前四行是Structures选项卡的使用说明,后三行是IDA自带的结构体,前四行翻译过来就是:

Insert/Delete键                       创建和删除结构体

D/A/*键                                       添加不同类型的结构体成员,这里要注意光标位置不同D键的作用也不同

N键                                                对结构体或结构体成员重命名

U键                                                删除结构体成员

我们先按Insert键新建一个结构体,名字叫Stars,

image

前两个复选框用于决定新结构体在结构体窗口中的显示位置,或者是否在窗口中显示新结构体,第三个复选框是指定创建联合体,这里我们改完名字后直接点OK,界面中就出现了一个空的结构体

image

然后把光标移动到”ends”上按D键,就可以在行尾创建一个新的结构体成员,

image

再把光标移动到该成员上,按D键改变该成员的数据类型,可改变的数据类型有db(byte),dw(word),dd(dword),dq(qword),按A键可以设置为字符串,按*键可以设置为数组,按N键可以重命名成员,按U键删除成员,可以按照题目需求改变成员数据类型。

这里我们就按照题目需求配一个具有一个QWORD,两个DWORD,三个QWORD的结构体:

image

这就完成定义结构体了,接下来就要指定变量为结构体了,先回到函数内部

image

右键a1:image

选择Convert to struct*

image

再选择我们刚刚定义的结构体Stars,就完成了

image

猜你喜欢

转载自blog.51cto.com/13992485/2476125
IDA