首页 > 代码库 > 枚举函数调用
枚举函数调用
//枚举函数调用//#include <idc.idc>static main(){ auto func,end,target,inst,name,flags,xref; flags = SEARCH_DOWN | SEARCH_NEXT; func = GetFunctionAttr(ScreenEA(),FUNCATTR_START); if(func != -1) { name = Name(func); end = GetFunctionAttr(func,FUNCATTR_END); for(inst = func; inst < end; inst = FindCode(inst,flags)) { for(target = Rfirst(inst) ; target != BADADDR; target = Rnext(inst,target)) //Rfirst取得第一个对它的代码的调用 { xref = XrefType(); //这个程序中只是对调用其它函数的交叉引用感兴趣,所以只关注fl_CN和fl_CF类型的交叉引用 if(xref == fl_CN || xref == fl_CF) { Message("%s calls %s from 0x%x\n",name,Name(target),inst); } } } } else { Warning("No function found at location %x",ScreenEA()); }}
结果如下:
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。