当前位置: 首页 > news >正文

byte[]数组的正则表达式搜索 z

在byte[]数组的特定位置进行正则表达式匹配。

为了从硬盘上搜索特定类型的文件,需要根据文件的特征值进行匹配。

对于已掌握文件结构的文件,采用hard-code的方式进行匹配;这样速度快;

对于未掌握文件结构的文件,根据文件的特征数据,使用正则表达式进行匹配。缺点是匹配速度慢。但是相对于阅读或破解每种文件的数据结构,可以节约开发时间。

由于C#中的正则表达式引擎仅提供了对字符串的正则匹配,而我们从硬盘上读取的数据是byte[]类型,所以需要添加对byte[]数据进行正则匹配的支持。

另外,文件的特征值应(否则就很难称之为“特征”了)出现在固定的位置,所有要指定在特定位置进行正则匹配。

using System.Text.RegularExpressions;        

//byte[]数组Grep搜索,确定在指定offset处是否匹配正则表达式字符串
//buffer:要搜索的byte[]数组
//regex:要匹配的正则表达式字符串
//offset:buffer数组的偏移
        public static bool BinaryRegex(byte[] buffer, string regex,int offset)
        {
            List<char> charList = new List<char>();
            foreach (byte b in buffer)
            {
                charList.Add((char)b);
            }
            string bString = new String(charList.ToArray());
            Match match = Regex.Match(bString,regex);
            if (match.Success && match.Index == offset)
                return true;
            else return false;
        }

 

相关文章:

  • File类基本操作之OutputStream字节输出流
  • 全限定名
  • vsftpd基于pam_mysql的认证和hash编码的方式配置虚拟用户
  • Java中char转为16进制
  • 人脸识别算法初次了解
  • Python编程笔记(第三篇)【补充】三元运算、文件处理、检测文件编码、递归、斐波那契数列、名称空间、作用域、生成器...
  • Linux Memory Hotplug
  • 25个增强iOS应用程序性能的提示和技巧
  • 20165306 课下作业(第十周)
  • tortoise svn连接问题
  • 又一款基于BCH开发出来的社交软件BlockPress
  • 企业CIO如何做好免费ERP系统的选型
  • 【table】给table表格设置一个通用的css3样式(默认有斑马条纹)
  • 在Puppet中用ERB模板来自动配置Nginx虚拟主机
  • Linux下逻辑地址、线性地址、物理地址详细总结
  • 2019年如何成为全栈工程师?
  • 345-反转字符串中的元音字母
  • HTML中设置input等文本框为不可操作
  • httpie使用详解
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • JavaScript中的对象个人分享
  • js作用域和this的理解
  • Protobuf3语言指南
  • Shell编程
  • supervisor 永不挂掉的进程 安装以及使用
  • 从零开始在ubuntu上搭建node开发环境
  • 从伪并行的 Python 多线程说起
  • 订阅Forge Viewer所有的事件
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 简单数学运算程序(不定期更新)
  • 前端攻城师
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 微信小程序--------语音识别(前端自己也能玩)
  • 小程序测试方案初探
  • ${ }的特别功能
  • (4)(4.6) Triducer
  • (4)事件处理——(7)简单事件(Simple events)
  • (ros//EnvironmentVariables)ros环境变量
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (图)IntelliTrace Tools 跟踪云端程序
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • (转)ORM
  • (转)shell调试方法
  • (转)重识new
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .net mvc 获取url中controller和action
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .net/c# memcached 获取所有缓存键(keys)
  • .net项目IIS、VS 附加进程调试
  • .Net中wcf服务生成及调用
  • /dev下添加设备节点的方法步骤(通过device_create)
  • [ 云计算 | Azure 实践 ] 在 Azure 门户中创建 VM 虚拟机并进行验证