![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
IDC脚本
小蓝人敌法
这个作者很懒,什么都没留下…
展开
-
IDC脚本语言概述
IDC脚本语言概述 IDC语言是一种跟C语言比较类似的脚本语言。IDC和C语言具有非常类似的语言标记:字符集,常量,标识符,关键词,等。然而,由于IDC是一种脚本语言,就无法包含指针这样的高级特性了,但是所有的变量类型,脚本解释器都是可以支持的。IDC中的变量是弱类型的,一个变量可以保存任何类型的数据,因此变量声明的时候是不需要指定变量类型的,比如你可以这样进行变量声明: auto my原创 2017-07-06 16:37:09 · 2502 阅读 · 0 评论 -
IDC : 变量
IDC : 变量 在IDC脚本语言中,存在两种变量: 局部变量:这类变量在函数开头的时候声明创建,在函数退出的时候销毁 全局变量:这类变量在脚本编译期创建,在IDA分析数据库关闭的时候销毁(译者注:全局变量的创建和销毁原文描述的其实不是太清晰,经过我的测试,全局变量是在脚本加载进来的时候就被创建,然后当你关闭当前IDA分析的文件的时候,IDA也会清理你加载过的IDC脚原创 2017-07-06 16:38:35 · 481 阅读 · 0 评论 -
IDC:函数
IDC:函数 IDC脚本中的函数必须要有返回值。在IDC脚本中,支持两类函数: 内建函数 用户自定义函数 用户自定义函数一般是像下面这样的方式写的: static func(arg1,arg2,arg3) { statements ... } 需要注意的一点是,声明函数参数的时候,没必要指定函数参数的类型了,因为IDC会根据你传入的参数自动进行参数原创 2017-07-06 16:39:28 · 2225 阅读 · 1 评论 -
IDC:语句
IDC:语句 在IDC脚本中,允许你使用如下几种类型的语句: 普通语句和语句块 expression; 或者 { statements... } if语句 和 if else语句 if (expression) statement 或者 if (expression) statement else statement for语句 for ( ex原创 2017-07-06 16:40:25 · 303 阅读 · 0 评论 -
IDC:表达式
IDC:表达式 在IDC脚本中,除了 += 这个表达式之外,其他所有的C语言的表达式都可以直接使用 常量的定义跟C语言很类似,但是也有一点点小区别,比如IDC支持以下四种数据转换操作: long(expr) 转换过程中,浮点会被截断,转换成long型 char(expr) float(expr) _int64(expr) 在大部分情况下,在原创 2017-07-06 16:41:01 · 349 阅读 · 0 评论 -
IDC:预定义符号
IDC:预定义符号 下面的几个符号是内建预定义的: NT :表示IDA当前运行在Windows平台上 LINUX:表示IDA当前运行在Linux平台上 MAC:表示IDA当前运行在Mac平台上 UNIX:表示IDA当前运行在Unix 平台上(包括linux mac) EA64:表示当前的IDA是64位版本的 QT:表示IDA的界面库版本是QT的原创 2017-07-06 16:41:51 · 272 阅读 · 0 评论 -
IDC:函数列表
IDC:函数列表 IDA为IDC脚本提供了大量的内建支持函数,用来和IDA进行交流沟通,大大提升了IDA的威力,下面我们介绍一下IDA支持的函数列表。为了描述方便,我们规定几个简称 'ea' - 代表一个线性地址'success' - 0代表失败,1代表成功'void' - 表示函数没有返回有意义的值( 可以认为返回的值为0 )'anyvalue' - 表示函数的返回值可能是任意一种类原创 2017-07-07 10:07:30 · 2753 阅读 · 0 评论