由于如汇编代码助记符b loc_ROM_664C,其中b应该为goto,故以为可以用IDC脚本修改b为goto。原先的思路为通过Findtext函数找到
字符串"b "的地址,然后将"b loc_ROM_664C"中的"b "替换成GOTO。
结果却如下:
#include<idc.idc>
static main()
{
auto addr,data,str,ti;
addr=0;
data=0;
str="b ";
//addr=FindText(83,SEARCH_DOWN,0,0,str);返回地址
//addr=FindCode(7,SEARCH_DOWN);返回地址
//addr=GetDisasm(7);返回字符串
Message("ad:%d\n",addr);
Message("STTTR:%s\n",addr);
}
以上为三个可用函数,遇到困难为起先搞不清楚FindText中FLAGS的作用,后得知为已经DEFINE的包括SEARCH_DOWN的标志位。
尔后在帮助手册中找不到能修改汇编代码的函数,唯一能用的就是快捷键ALT+F2。
寻求解决问题过程中了解到了sprint函数,以及IDC的一些函数的编写:
IDA 5.5插件开发简明指导(Win32)
以上,得出的唯一的结论就是,可能IDA为了保证代码的“稳定”,汇编代码可能生成之后就无法修改,修改也只有早SDK开发中的源反汇编算法中修改。
1399

被折叠的 条评论
为什么被折叠?



