IDC初步学习小小结

来源:互联网 发布:简单游软件下载 编辑:程序博客网 时间:2024/05/16 15:27
由于如汇编代码助记符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的一些函数的编写:
http://wenku.baidu.com/view/cfad2329bd64783e09122b0a.html
http://blog.csdn.net/yangcock/article/details/7070532
http://blog.csdn.net/yangcock/article/details/6931280

IDA 5.5插件开发简明指导(Win32) 
http://bbs.nohack.me/thread-145036-1.html

以上,得出的唯一的结论就是,可能IDA为了保证代码的“稳定”,汇编代码可能生成之后就无法修改,修改也只有早SDK开发中的源反汇编算法中修改。
原创粉丝点击