[IDA]IDC脚本基础 |
您所在的位置:网站首页 › idc类型 › [IDA]IDC脚本基础 |
IDC的变量
idc使用三种基本数据类型 整形,字符串,浮点值 idc使用auto关键字声明变量,使用extern关键字声 明全局变量 auto var = 1; //局部变量 extern var2 = 1; //全局变量 IDC的运算符idc支持绝大部分c的运算符,但是不支持如+=的复合运算符,并且idc所有整数操作数 均作为有符号处理,移位运算符如>>总是进行算术移位,想要完成逻辑移位,必须手 动进行位运算。字符串是idc的基本类型,所以可以执行+号运算符拼接字符串。 IDC语句idc不支持switch语句其他语句风格与c一致,以分号结束语句。 IDC函数idc仅在idc的独立程序脚本中支持定义用户的函数。使用static关键字声明函数,可以使用return 返回一个值,return并非必须。参数为&a表示传引用 static func(a,b,c){ //函数体 } IDC实用函数idc同样为idapython提供了这些函数 返回值函数名参数 longBytelong addr从虚拟地址addr处读取一个字节longWordlong addr从虚拟地址addr处读取两个字节longDwordlong addr从虚拟地址addr处读取四个字节voidPatchBytelong addr, long val设置虚拟地址addr处的一个字节值voidPatchWordlong addr, long val设置虚拟地址addr处的两个字节值voidPatchDwordlong addr, long val设置虚拟地址addr处四个字节值boolisLoadedlong addr如果addr包含有效数据,则返回1,否则0 如果提供一个无效的地址也会返回0xff,所以 isloaded可以判断是否有数据 voidMessagestring format,....在输出窗口打印一条格式化字符串voidprint....在输出窗口打印每个参数的字符串表示形式voidWarningstring format,....在对话框中显示一条格式化消息stringAskStrstring default, string prompt显示一个输入框,要求用户输入一个字符串。如果操作成功 返回用户字符串,如果取消则返回0 stringAskFilelong doSave, string mask, string prompt 显示一个文件选择对话框,以简化选择文件任务,如果操作成功,返回选择文件的名称,如果取消,返回0longAskYNlong default, string prompt用一个答案为是或否提问,1为是,0为否,-1取消longScreenEA 返回当前光标所在位置的虚拟地址boolJumplong addr跳转到反汇编窗口指定地址stringformstring format,....返回一个新字符串,由所提供的值格式化stringsprintfstring format,....在ida5.6代替formlongatolstring val十进制转换为整数longxtolstring val转换为16进制stringltoalong val, long radix以指定进制返回vallongordstring ch返回单个字符串 ASCIIlongstrlenstring str返回字符串长度longstrstrstring str, string substr返回str中substr的索引stringsubstrstring str, long start ,long end返回start到end-1的字符串longfopenstring filename, string mode返回文件句柄,和c语言一样voidfcloselong handle关闭文件longfilelengthlong handle返回指定文件长度,如果错误-1longfgetclong handle从文件中读取一个字节longfputclong val, long handle写入一个字节,成功则0,失败-1longfprintflong handle,string format, ...一个格式化字符串写入给定文件longwritestrlong handle, string str指定字符串写入文件string/longreadstrlong handle从给定文件中读取一个字符串,读到一个换行符为止,包括换行符,末尾返回-1longDfirstlong from返回给定地址应用一个数据值的第一个位置。没有返回-1longDnextlong from,long current如果已经有一个位置,可以利用当前位置,搜索下一个位置。错误返回-1longXrefType 返回最后一个交叉引用查询函数返回的类型longDfirstBlong to返回给顶地址作为数据引用的第一个位置,不存在返回-1longDnextBlong to, long current如果已经有一个位置,可以利用当前位置,搜索下一个位置。错误返回-1longFindCodelong addr, long flagsflag指定查找行为,SEARCH_DOWN,扫描高位地址,SEARCH_NEXT跳过当前匹配,搜索下一个,SEARCH_CASE以区分大小写方式扫描二进制文本 从给定地址搜索一条指令 longFindeDatalong addr, long flags从给定地址搜索一个数据项longFindBinarylong addr, long flags, string binary从给定地址搜索一个字节序列在独立的.idc脚本文件编写脚本时,需要按如下结构 #include static main(){ //主函数 } 保存为.idc文件后,打开ida在菜单中File>Script File可以执行idc脚本 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |