call dword ptr [register + offset ]
),该寄存器是通过一个简单的数学计算的,我可以自行计算(调用本身会导致根据当前偏移量计算出一些winapi) >每当我尝试对数据使用AddCodeRefs (ins, winapi, XREF_USER | fl_CN/f)
时,我的图形就会显示错误,并且所有基本块都变成每个基本块一条指令;当我尝试进行相反操作时,IDA(从逻辑上说:/)认为数据确实是代码,并将所有部分重新解释为垃圾代码。我的问题是-是否可以创建数据手动从代码中获取外部参照?
AddCodeRefs
似乎破坏了图表,我找不到任何AddDataRefs
,我正在使用IDA 6.4。#1 楼
我认为您可能正在寻找add_dref(long From,long To,long drefType)
。 IDA联机帮助对其进行了如下描述:Data reference types (combine with XREF_USER!):
#define dr_O 1 // Offset
#define dr_W 2 // Write
#define dr_R 3 // Read
#define dr_T 4 // Text (names in manual operands)
#define dr_I 5 // Informational
void add_dref(long From,long To,long drefType); // Create Data Ref
void del_dref(long From,long To); // Unmark Data Ref
long Dfirst (long From); // Get first data xref from 'From'
long Dnext (long From,long current);
long DfirstB (long To); // Get first data xref to 'To'
long DnextB (long To,long current);
评论
也许下次更少的f字也能使您明白吗?我看到您已经对其进行了编辑,对不起,下一次我会回复/