变量
三种数据类型
◦整数
◦字符串
◦浮点值
局部变量用auto来声明
全局变量用extern来声明
与C语言的区别
记住下面几点,就可以按照C语言的编程经验来编写IDC脚本了
几乎支持C语言所有的运算符,除了“ ? :”三元运算符和“+=”,“>>=”等复合赋值运算符
支持“Hello”+“World”进行字符串拼接,得到“HelloWorld”
没有数组,有分片运算符
不支持switch
用户定义的函数用static关键字来声明
读取和修改数据的函数
idc脚本需要加#include<idc.idc>头文件
long Byte(long addr)从虚拟地址addr处读取一个字节值
long Word(long addr)从虚拟地址addr处读取一个字(2字节)值
long Dword(long addr)从虚拟地址addr处读取一个双字(4字节)值
void PatchByte(long addr,long var)设置虚拟地址addr处的一个字节值
void PatchWord(long addr,long var)设置虚拟地址addr处的一个字值
void PatchDword(long addr,long var)设置虚拟地址addr处的一个双字值
bool isLoaded(long addr)如果addr包含有效数据,则返回1,否则返回0
其他IDC函数
用户交互函数
字符串操纵函数
文件输入/输出函数
操作数据库的函数
数据库操纵函数
数据交叉引用函数
数据库搜索函数
相关函数原型可以查看(《IDA Pro权威指南》15章)
IDA中使用IDC语言
可以用shift+F12打开
写入脚本,点击run