打开IDA,先看一眼示例代码(攻.防世界_RE_进阶区_sercet-galaxy-300):
成都创新互联公司是一家专业从事网站制作、成都网站建设、网页设计的品牌网络公司。如今是成都地区具影响力的网站设计公司,作为专业的成都网站建设公司,成都创新互联公司依托强大的技术实力、以及多年的网站运营经验,为您提供专业的成都网站建设、营销型网站建设及网站设计开发服务!
很明显a1是一个结构体,接下来我们自定义一个结构体,并用到a1上。首先选择Structures选项卡
这里前四行是Structures选项卡的使用说明,后三行是IDA自带的结构体,前四行翻译过来就是:
Insert/Delete键 创建和删除结构体
D/A/*键 添加不同类型的结构体成员,
这里要注意光标位置不同D键的作用也不同
N键 对结构体或结构体成员重命名
U键 删除结构体成员
我们先按Insert键新建一个结构体,名字叫Stars,
前两个复选框用于决定新结构体在结构体窗口中的显示位置,或者是否在窗口中显示新结构体,第三个复选框是指定创建联合体,这里我们改完名字后直接点OK,界面中就出现了一个空的结构体
然后把光标移动到”ends”上按D键,就可以在行尾创建一个新的结构体成员,
再把光标移动到该成员上,按D键改变该成员的数据类型,可改变的数据类型有db(byte),dw(word),dd(dword),dq(qword),按A键可以设置为字符串,按*键可以设置为数组,按N键可以重命名成员,按U键删除成员,可以按照题目需求改变成员数据类型。
这里我们就按照题目需求配一个具有一个QWORD,两个DWORD,三个QWORD的结构体:
这就完成定义结构体了,接下来就要指定变量为结构体了,先回到函数内部
右键a1:
选择Convert to struct*
再选择我们刚刚定义的结构体Stars,就完成了