IDA集成了一个脚本引擎,用户可以通过编程对IDA实现全面控制
执行脚本
执行脚本的三种方法:
1.
File->Script File
IDA会显示一个选择文件的对话框,让你选择想要运行的脚本
运行一个新的脚本,这个程序会被添加到最近运行的脚本列表
View->Recent Scripts可以查看.
2.
File->IDC Command
File->Python Command
(IDA7.2版本为File->Script Command)
可以写几条语句执行,不单独创建一个脚本文件
3.IDC的命令行也可以执行脚本
IDC语言
要速成IDC脚本的话,看我下面这个博客完全足够
IDC语言_御麟蹬辉的博客-CSDN博客
IDC语言借用了C语言的很多语法
使用同C语言一致的注释方式/* */ //
IDC变量
弱类型语言,变量没有明确类型
使用三种数据类型:整数,字符串和浮点值
局部变量 用auto
全局变量 用 extern,可以声明任何函数内部和外部
extren outsideGlobal;
static main(){
extern insideGlobal;
outsideGlobal="Global";
insideGlobal=1.23;
}
IDC表达式
支持除+=,*=,>>=等符合赋值运算符和三元运算符( ? :)外的所有C中的运算符
可以使用分片的方式操作字符串
auto str="Welcome to IDC"
s1=str[:7]; //s1="Welcome"
s2=str[8:10] //s2="to"
s3=str[11:] //s3="IDC"
条件控制
支持除switch之外的所有C语言条件控制语句
支持for while if else
IDC函数
使用static关键字
并且形式参数没有类型
static func(x,y,z){
auto a,b,c;
}
5.6版本最后的可以传递地址
传地址还是传值取决于调用时候,若传地址参数加&
声明函数时候是一致的
func(q,w,e)
func(&q,&w,e)
IDC类和对象
与C语言的区别:
没有访问权限说明符文章来源:https://www.toymoban.com/news/detail-453210.html
创建一个数据成员只需要给它赋值就可以文章来源地址https://www.toymoban.com/news/detail-453210.html
class Student{
Student(age,id){
this.Age=age;
this.ID=id;
}
~Student(){}
add(){
this.Age++;
}
};
static main(){
auto stu1=Student(18,202100342);
stu1.add();
stu1.name="Alice"; //这个对象现在新增了一个name的数据成员,这个类没有新增数据成员
}
到了这里,关于IDA脚本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!