Regex 用于特殊Base64掩码的正则表达式

Regex 用于特殊Base64掩码的正则表达式,regex,encoding,base64,mask,Regex,Encoding,Base64,Mask,我正在寻找一个正则表达式,它可以检测恶意软件中使用的不同Base64掩码,如 0123456789ABCDEFGHIjklmnopqrstuvxyzABCDEFGHIjklmnopqrstuvxyz+/ 0ABCDEFGHIJKLMNOPQRSTUVWXYZABC EFGHIJKLMNOPQRSTUVXYZ123456789+/ 但是我的简单正则表达式也可以匹配重复字符,比如zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

我正在寻找一个正则表达式,它可以检测恶意软件中使用的不同Base64掩码,如

0123456789ABCDEFGHIjklmnopqrstuvxyzABCDEFGHIjklmnopqrstuvxyz+/ 0ABCDEFGHIJKLMNOPQRSTUVWXYZABC EFGHIJKLMNOPQRSTUVXYZ123456789+/ 但是我的简单正则表达式也可以匹配重复字符,比如zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

 [a-zA-Z0-9+/]{64}

是否有一种方法可以使用正则表达式匹配非重复的64个字符?

如果您希望验证您是否有64个字符,并在字符串中的任何位置检测到它们都不是重复的字符,例如

好字符串:0abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz123456789+/

错误字符串0abcdefghijklmnopqrstuvxyzabefghijklmnopqrstuvxyz123456789+/,因为G出现两次

然后您可以使用这个正则表达式:

^?=.{64}$?!*?=*\一,

如果输入字符串具有64个唯一字符,则正则表达式将返回匹配项

^匹配字符串的开头 ?=.{64}$提前查看以确保字符串中有64个字符 ?! 强制执行负前瞻,如果内部表达式为true,则返回false .*? 将前言移到任何字符 . 捕获单个角色并放入捕获组1 ?=打开正向前瞻,查看组1中当前字符后的任何字符是否相同 .*? 跳过任意数量的字符,直到找到下一个 \1返回对捕获组1的引用,以确保角色不重复 积极展望未来 关闭负面展望
您希望匹配的标准是什么?匹配恶意base64的标准是什么?在编码字符串的任何位置有一行中不重复的64个字符?标准是任何64字节的字符串,其不重复字符为:ABCDEFGHIjklmnopqrStuvxyzabCDEFGHIjklmnopqrStuvxyZ0123456789+/用例:大多数情况下,在恶意样本上运行$strings会显示编码中使用的64位掩码。很多时候,您会遇到编码方案仍然是base64,但掩码稍微有点调整。因此,当您尝试使用常规解码器解码时,它将o/p垃圾数据。这个正则表达式将有助于检测经过调整的base64编码。