首页
社区
课程
招聘
[求助]IDA插件编写取交叉引用的问题
发表于: 2007-10-22 23:42 5675

[求助]IDA插件编写取交叉引用的问题

2007-10-22 23:42
5675
CODE:005E2FE6                 mov     edx, offset _str____S_____T_w___.Text
CODE:005E2FEB                 mov     eax, [ebx+4CCh]

CODE:005E306C _str____S_____T_w___ dd 0FFFFFFFFh           ; _top
CODE:005E306C                                         ; DATA XREF: _TPClick+2Eo
CODE:005E306C                 dd 21                   ; Len
CODE:005E306C                 db '1234567898',0                  ; Text

像如上这种Delphi的字串引用, 如何在插件编写中取他的引用处地址呢

用first_to 和first_from的方法都取不到
但IDA本身却有引用表, 要用什么函数取呢

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费
支持
分享
最新回复 (3)
雪    币: 8373
活跃值: (2301)
能力值: ( LV8,RANK:122 )
在线值:
发帖
回帖
粉丝
2
熟悉IDA的老大快出现呀,
2007-10-23 12:21
0
雪    币: 141
活跃值: (1139)
能力值: ( LV2,RANK:150 )
在线值:
发帖
回帖
粉丝
3
以下两个函数可供参考(在name.hpp中定义):
// 1)获取正规名称的有效地址
函数原型
idaman ea_t ida_export get_name_ea(ea_t from, const char *name);
// 该函数仅适用于正规名称
// from=正规名称的起始地址
// name=正规名称
// 返回:正规名称的有效地址或BADADDR

// Get address of the name
// This function works only with regular names
//      from  - linear address where the name is used
//              if not applicable, then should be BADADDR
//      name  - any name in the program or NULL
// returns: address of the name or BADADDR
//

函数原型
idaman ea_t ida_export get_name_ea(ea_t from, const char *name);    // Get address by name

2)获取用于表达式名称的引用地址
//  from=引用名称的操作码地址
//  to=名称引用地址
// 返回:作为操作码名称的引用地址
//
// Get address of the name used in the expression for the address
//      from  - address of the operand which references to the address
//      to    - the referenced address
// returns: address of the name used to represent the operand

函数原型
idaman ea_t ida_export get_name_base_ea(ea_t from, ea_t to);
2008-1-11 11:14
0
雪    币: 141
活跃值: (1139)
能力值: ( LV2,RANK:150 )
在线值:
发帖
回帖
粉丝
4
以下两个函数可供参考(在name.hpp中定义):
// 1)获取正规名称的有效地址
函数原型
idaman ea_t ida_export get_name_ea(ea_t from, const char *name);
// 该函数仅适用于正规名称
// from=正规名称的起始地址。如果不可用,则应为BADADDR
// name=程序中的正规名称或NULL
// 返回:正规名称的有效地址或BADADDR

// Get address of the name
// This function works only with regular names
//      from  - linear address where the name is used
//              if not applicable, then should be BADADDR
//      name  - any name in the program or NULL
// returns: address of the name or BADADDR
//

函数原型
idaman ea_t ida_export get_name_ea(ea_t from, const char *name);    // Get address by name

2)获取用于表达式名称的引用地址
//  from=引用名称的操作码地址
//  to=名称引用地址
// 返回:作为操作码名称的引用地址
//
// Get address of the name used in the expression for the address
//      from  - address of the operand which references to the address
//      to    - the referenced address
// returns: address of the name used to represent the operand

函数原型
idaman ea_t ida_export get_name_base_ea(ea_t from, ea_t to);
2008-1-11 11:21
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册