工具

flirt68.zip

pcf.exe/pcf: 生成一个模式文件.pat 
sigmake.exe: 生成一个签名文件.sig

流程

创建PAT

生成pat文件,pat.txt文件说明各个模式的格式。

第一部分

列举了它所代表的函数的初始字节序列,最长为32个字节。一些字节因为重定位的入口而有所不同,这些字节将得到“补偿”,每个字节以两点显示。。如果一个函数短于32个字节(例如前面代码中的_ffs函数),用点将模式填充到64个字符。

每个字节需要两个字符。要显示32个字节的内容,需要64个十六进制字符。


可以看到,OnFinalRelease函数的初始字节序为

85C974098B018B50046A01FFD2C3..........................
  • 1
  • 1

可以使用windbg查看下函数: 

0:000> db 3e1010 
003e1010 85 c9 74 09 8b 01 8b 50-04 6a 01 ff d2 c3 cc cc 

其他部分

CRC16值、函数的字节长度以及函数引用的符号名称列表 

创建sig

 
只要有两个函数的模式相同,就会发生冲突。如果不能解决冲突,在应用签名的过程中,我们就无法确定函数到底与哪一个签名相匹配。 
只要存在冲存,sigmake生成的就不是.sig文件,而是一个排斥文件(.exc),.exc文件是文本文件,它详细说明了sigmake在处理模式文件时遇到的冲突 
排斥文件是文本文件,它详细说明了sigmake在处理模式文件时遇到的冲突 
每次运行sigmake失败都会产生以下注释,如再次失败,注释会附加在原来.ecx的最后 
;--------- (delete these lines to allow sigmake to read this file) 
; add '+' at the start of a line to select a module 
; add '-' if you are not sure about the selection 
; do nothing if you want to exclude all modules 

随便找一个冲突点(可以看到它们的初始字节序列完全相同) 
+?GetDrawState@DUICheckBox@DM@@QAEHXZ 14 3ACE 33C03981A000000074298B4920F6C1107407B803000000EB12F6C1027407B802 
?GetDrawState@DUIRadioButton@DM@@QAEHXZ 14 3ACE 33C03981A000000074298B4920F6C1107407B803000000EB12F6C1027407B802 

1. 删除上面4行以分号开头的注释 
2.sigmake让你仅指定一个函数作为相关签名的匹配函数。任何时候,如果在数据库中发现一个对应的签名,并且你想应用一个函数的名称,那么,你可以在该函数名称前附加一个加号;如果你只想在数据库中添加某个函数的注释,则在该函数名称前附加一个减号;如果在数据库中发现对应的签名时,你不想应用任何名称,那么,你不需要添加任何符号。(+号只能有一个,-号和+号二者只能存一) 
比如上面DUICheckBox使用了+号(注意比较初始字节序号): 

加载sig

成功生成签名文件后,你需要将它复制到你的/sig目录中,以便IDA使用这个文件。随后,你可以通过File▶Load File▶FLIRT Signature File访问这个新签名。 

(1)为最大限度地减少冲突,请删除排斥文件开头的4个注释行。 
(2)最多只能给冲突函数组中的一个函数附加+/-。 
(3)如果一个冲突函数组仅包含一个函数,不要在该函数前附加+/-,让它保持原状即可。 
(4)sigmake连续运行失败会将数据(包括注释行)附加到现有的任何.exc文件后。在再次运行sigmake之前,你必须删除这些额外的数据,并更正原始数据(如果这些数据是正确的,sigmake将不会再次运行失败)。

特别注意第四点,如果再次失败,.exc文件最后面会自动附加上面的注释行和失败地方,注意删除

IDB_2_PAT生成pat

可以在另一个IDA数据库生成pat,用于这个IDA数据库 
如果只有dll,则反汇编该dll,然后用IDB_2_PAT插件生成.PAT文件然后sigmake生成.sig 
http://www.openrce.org/downloads/details/26/IDB_2_PAT

18.IDA-创建自己的sig相关推荐

  1. 18.IDA-创建自己的sig(创建自己的标签)

    工具 flirt68.zip pcf.exe/pcf: 生成一个模式文件.pat  sigmake.exe: 生成一个签名文件.sig 流程 创建PAT 生成pat文件,pat.txt文件说明各个模式 ...

  2. appinventor HTML5,App Inventor编程教程-第18课-创建动画应用

    本章将讨论另一类应用--包含简单动画(会移动的物体)的应用.你将学习用App Inventor创建二维游戏的基本知识,包括熟练使用精灵组件,以及处理像两个物体碰撞这样的事件. 当在电脑屏幕上看到一个平 ...

  3. Ubuntu 18.04 创建 mdadm RAID0

    创建 mdadm RAID 0 在 Ubuntu 18.04 中创建 mdadm RAID 0 查看硬盘的名称.大小.文件系统类型.类型和挂载点 格式化 NVMe SSD 创建一个 mdadm RAI ...

  4. eeglab中文教程系列(18)-自己创建电极位置以及电极位置文件

    目录 第一步:创建文件 第二步:创建电极 第三步:选中相关参数 第四步:输入电极 第五步:选择标准文件 第六步:测试 本教程为脑机学习者Rose发表于公众号:脑机接口社区 .QQ交流群:9032901 ...

  5. IDA创建结构体方法

    1. ida是最好用的逆向分析工具 2.问题 如果你在使用IDA分析时遇到大量的结构体指针偏移形式的变量,肯定想根据自己的分析重命名结构体各项. 3.定义结构体 这是需要先找到结构体初始化的地方 这里 ...

  6. Quartus II 18.0 创建 dcfifo IP 核仿真出现问题 Port 'eccstatus' not found 记录和解决方案

    Quartus II 版本如下图所示:18.00 Build 614 04/24/2018 SJ Standard Edition 在工程中例化了一个异步 FIFO 配置信息如下: 仿真时 Model ...

  7. IDA中的SIG应用

    SIG在IDA中相当于符号文件的作用,如果是自己写的PE程序,编译后会有OBJ文件,可以通过工具把它转化为一个SIG 便于在IDA观看.要应用SIG需要把SIG文件拷贝到IDA目录下的sig文件夹中, ...

  8. arm ida 伪代码 安卓 符号表_IDA 制作 sig文件 gdb 导入符号表

    背景 最近比赛遇到了一个题目, 32位静态链接去符号了. 所以用IDA分析的时候很多libc的库函数都无法识别, 就需要在 IDA 中引入 sig 文件. 从而可以识别诸如 read, write, ...

  9. ida 中segment中的extern是什么

    紫色部分: extern不是真正的段它是IDA创建的一个伪段,用于表示其他模块中地址未知的符号: GOT通常包含指向这些符号的指针在调试过程中,它可能会被.bss所覆盖,或者被操作系统加载程序清除堆栈 ...

最新文章

  1. LCAOSCF自洽场氟化氢HF斯莱特函数
  2. “打头办”不在百度,在民间
  3. matlab gui怎样将结果保存_Processing将串行数据保存用作matlab数据分析
  4. shell脚本if语句判断
  5. 软件工程-团队作业3
  6. win10系统 双击bat文件无法运行,只是以普通txt文件打开该文件,简单解决
  7. 华为交换机dhcp获取不到_S7706交换机客户端无法通过DHCP获取地址问题
  8. 理解javaScript的数据类型之字符串类型
  9. Pocket英语语法---六、感官动词接不同的动词表示什么意思
  10. Vscode 调试arm64 linux内核
  11. 使用ZEGO SDK零基础搭建Android语音聊天应用
  12. VBA破解Excel表格保护密码
  13. YUV/YCbCr/YPbPr
  14. 在线生成二维码 case
  15. 手机火狐浏览器怎么设置电脑模式_手机浏览器pc版电脑模拟设置教程(图示)
  16. 王爽汇编语言 实验3
  17. php%3e%3etxt_《3e迅雷》_3e迅雷最新版下载
  18. uestudio 14 注册机 绿色免费版
  19. 倒金字塔java语言_金字塔和倒金字塔
  20. 基于YOLO的人脸检测和人脸计数(课程设计)

热门文章

  1. 常用的函数式接口_Predicate接口_默认方法ornegate
  2. 注解IOC案例-把自己编写的类使用注解配置
  3. Servlet_3.0注解配置
  4. Spring Boot定时任务-@Scheduled的使用
  5. spring事务环境搭建
  6. Spring+Redis整合
  7. PCB电流和线宽的关系(通俗易懂)
  8. STM32 关于外部中断线、中断源和中断服务函数的问题
  9. nginx配置文件详细解读
  10. 使用注解实现ssh整合