前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用FindFunc在IDA Pro中寻找包含指定代码模式的函数代码

如何使用FindFunc在IDA Pro中寻找包含指定代码模式的函数代码

作者头像
FB客服
发布2023-03-30 19:43:37
3.9K0
发布2023-03-30 19:43:37
举报
文章被收录于专栏:FreeBufFreeBuf

 关于FindFunc 

FindFunc是一款功能强大的IDA Pro插件,可以帮助广大研究人员轻松查找包含了特定程序集、代码字节模式、特定命名、字符串或符合其他各种约束条件的代码函数。简而言之,FindFunc的主要目的就是在二进制文件中寻找已知函数。

 使用规则过滤 

FindFunc的主要功能是让用户指定IDA Pro中的代码函数必须满足的一组“规则”或约束。FindFunc随后将查找并列出满足所有规则的所有函数。

FindFunc会以智能化的形式对规则进行计划和排序,功能概述如下:

1、目前有六条规则可用; 2、代码匹配考虑寻址大小前缀和操作数大小前缀; 3、函数识别模块; 4、性能规则的智能调度; 5、以简单ASCII格式将规则存储/加载到文件; 6、提供了用于实验的单独选项页; 7、通过剪贴板在选项页之间复制规则(格式与文件格式相同); 8、将整个会话(所有选项页)保存到文件; 9、指令字节的高级复制;

 工具要求 

IDAPro 7.x(7.6+) Python 3 x86/x64架构

 工具下载 

FindFunc是一个IDA Pro插件,基于Python开发,而且不需要安装其他的依赖组件包。广大研究人员可以直接使用下列命令将该项目源码克隆至本地:

代码语言:javascript
复制
git clone https://github.com/FelixBer/FindFunc.git

接下来,将项目中的findfuncmain.py文件拷贝到IDA Pro的插件目录中即可。

可用规则

代码模式匹配

代码语言:javascript
复制
mov r64, [r3*2 * 8 + 0x100]
mov r, [r * 8 - 0x100]
mov r64, [r*32 * 8 + imm]
pass
mov r, word [eax + r*32 * 8 - 0x100]
any r64, r64
push imm
push any

搜索给定值(常量)

代码语言:javascript
复制
mov eax, 0x100
mov eax, [0x100]
and al, [eax + ebx*8 + 0x100]
push 0x100

字节模式匹配

代码语言:javascript
复制
11 22 33 44 aa bb cc
11 22 33 ?? ?? bb cc -> ?? can be any byte

高级代码复制

复制所有字节

代码语言:javascript
复制
B8 44332211      mov eax,11223344
68 00000001      push 1000000
66:894424 70     mov word ptr ss:[esp+70],ax

数据将以下列形式复制:

代码语言:javascript
复制
b8 44 33 22 11 68 00 00 00 01 66 89 44 24 70

仅复制非常量值

代码语言:javascript
复制
B8 44332211      mov eax,11223344
68 00000001      push 1000000
66:894424 70     mov word ptr ss:[esp+70],ax

数据将以下列形式复制:

代码语言:javascript
复制
b8 ?? ?? ?? ?? 68 ?? ?? ?? ?? 66 89 44 24 ??

仅复制操作码

代码语言:javascript
复制
B8 44332211      mov eax,11223344
68 00000001      push 1000000
66:894424 70     mov word ptr ss:[esp+70],ax

数据将以下列形式复制:

代码语言:javascript
复制
b8 ?? ?? ?? ?? 68 ?? ?? ?? ?? 66 89 ?? ?? ??

 工具运行截图 

项目地址

https://github.com/FelixBer/FindFunc

精彩推荐

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-06-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  •  关于FindFunc 
  •  使用规则过滤 
  •  工具要求 
  •  工具下载 
  • 可用规则
    • 代码模式匹配
      • 搜索给定值(常量)
        • 字节模式匹配
        • 高级代码复制
          • 复制所有字节
            • 仅复制非常量值
              • 仅复制操作码
              •  工具运行截图 
              • 项目地址
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档