ELFHash算法 1. 基本概念 ELFHash算法是一种用于字符串哈希的算法,广泛应用于UNIX系统V版本4中的“可执行链接格式”(Executable and Linking Format,即ELF)文件中。ELFHash算法通过将字符串中的每个字符进行一系列位运算,生成一个固定大小的哈希值,该哈希值用于快速索引和查找字符串。
2.ELFhash 首先我需要声明,字符串hash算法ELFhash的算法的形成的三列的均匀性我不会证明 根据其他的大牛的描述,ELFhash算法对于长字符串和短字符串都有优良的效率,以下的数据援引刘爱贵大神的实验数据: Hash应用中,字符串是最为常见的关键字,应用非常普通,现在的程序设计语言中基本上都提供了字符串hash表的支持。字...
现在,有非常多的字符串hash算法都很优秀,本文主要面对ELFhash算法来表述,相对来说比较的清晰 2.ELFhash 首先我需要声明,字符串hash算法ELFhash的算法的形成的三列的均匀性我不会证明 根据其他的大牛的描述,ELFhash算法对于长字符串和短字符串都有优良的效率,以下的数据援引刘爱贵大神的实验数据: Hash应用中,字符串...
1//ELF Hash Function2unsignedintELFHash(char*str)3{4unsignedinthash =0;5unsignedintx =0;67while(*str)8{9hash = (hash <<4) + (*str++);//hash左移4位,把当前字符ASCII存入hash低四位。10if((x = hash &0xF0000000L) !=0)11{12//如果最高的四位不为0,则说明字符多余7个,现在正在存...
我想强调两个在telfhash发展中很重要的解决方案。其中之一是导入散列(impash),它主要用于识别属于同一恶意软件家族的恶意软件二进制文件。它通过获取PE文件(从导入目录)的导入函数及其相关库名称,并创建以逗号分隔的列表来分析类似的恶意软件文件。之后,将使用MD5校验和算法对该列表进行散列。在图3所示的示例中,我们以...
ELFHash算法解释: ELFhash函数关键是要取得字符串对应的hash值。(别人的分析:它对于长字符串和短字符串都很有效,字符串中每 个字符都有同样的作用,它巧妙地对字符的ASCII编码值进行计算,ELFhash函数对于能够比较均匀地把字符串分布 在散列表中。这些函数使用位运算使得每一个字符都对最后的函数值产生影响。) ...
对于Linux物联网恶意软件,telfhash利用导入函数及其相关库名称来分析ELF可执行文件,生成一个相似性摘要算法,对类似的文件进行聚类。telfhash还解决了针对不同架构编译的恶意软件的多架构挑战,通过忽略编译器添加的特定于体系结构的函数,实现了针对不同体系结构编译的文件的聚类。此外,它还提供了一个与...
public long ELFHash(String str) { long hash = 0; long x = 0; for(int i = 0; i < str.length(); i++) { hash = (hash << 4) + str.charAt(i); if((x = hash & 0xF0000000L) != 0) { hash ^= (x >> 24); } hash &= ~x; } return hash; } ...
最近看UCC源码时,看到作者处理字符串哈希时,使用了ELFHash函数,于是查阅了一点资料,对这个算法作了个了解,记录哈 1 // ELF Hash Function 2 unsigned int ELFHash(char *str) 3 { 4 unsigned int hash = 0;...
数字范围较大,只能用字符串储存,注意去掉前导0,用map或其他的hash算法都可以,这里用的ELFhash算法 #include <bits/stdc++.h> using namespace std; typedef unsigned int ui; const int N = 7003, MOD = 7003; int Hash[N], num[N]; int res; ...