Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/oalabs/hashdb
静态分析哈希分析逆向工程恶意软件分析二进制分析
GitHuboalabs/hashdb

hashdb

恶意软件中使用的各种哈希算法

查看仓库
405746个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
overview_hashdb

AWS Deploy Chat Support

HashDB

HashDB 是一个社区驱动的恶意软件哈希算法库。

如何使用 HashDB

HashDB 既可以作为独立的哈希库使用,同时也为 OALabs 运营的 HashDB 查找服务 提供数据。该服务允许分析人员反查哈希,并获取被哈希的 API 名称和字符串值。

独立模块

你可以像使用任何标准 Python 模块一样,克隆 HashDB 并在你的逆向工程脚本中使用它。下面是一些示例代码。

root@kitploit:~
>>> import hashdb
>>> hashdb.list_algorithms()
['crc32']
>>> hashdb.algorithms.crc32.hash(b'test')
3632233996

HashDB 查找服务

OALabs 运营着一个免费的 HashDB 查找服务,可用于针对 HashDB 库中列出的任何哈希查询哈希表。哈希表中包含了完整的 Windows API 集合,以及许多恶意软件中常用的字符串。你甚至可以添加自己的字符串!

HashDB IDA 插件

HashDB 查找服务提供了一个 IDA Pro 插件,可以直接在 IDA 中自动化哈希查找! 客户端可从 GitHub 此处 下载。

如何添加新的哈希

HashDB 依靠社区支持来让我们的哈希库保持最新!我们的目标是让贡献者从首次提交到发出 PR,添加一个新哈希所花时间不超过五分钟。为实现这一目标,我们提供了以下简化流程。

  1. 确保该哈希算法尚不存在……我们知道这看起来有点傻,但请再确认一下。

  2. 创建一个具有描述性名称的分支。

  3. 在 /algorithms 目录中添加一个新的 Python 文件,以你的哈希算法命名。尽量使用算法的官方名称;如果该算法是独有的,则使用与之对应的恶意软件名称。

  4. 使用以下模板来设置你的新哈希算法。所有字段均为必填项且区分大小写。

    root@kitploit:~
    #!/usr/bin/env python
    
    DESCRIPTION = "your hash description here"
    # Type can be either 'unsigned_int' (32bit) or 'unsigned_long' (64bit)
    TYPE = 'unsigned_int'
    # Test must match the exact hash of the string 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
    TEST_1 = hash_of_string_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
    
    
    def hash(data):
        # your hash code here
    
  5. 请仔细检查你的 Python 代码风格,我们使用 Python 3.9 上的 Flake8。你可以从 git 仓库的根目录在本地尝试以下 lint 命令。

    root@kitploit:~
    pip install flake8
    flake8 ./algorithms --count --select=E9,F63,F7,F82 --show-source --statistics
    
  6. 使用我们的测试套件在本地测试你的代码。请从 git 仓库的根目录在本地运行以下命令。请注意,你必须以模块方式运行 pytest,而不是直接运行,否则它将无法识别我们的测试目录。

    root@kitploit:~
    pip install pytest
    python -m pytest
    
  7. 提交一个 pull request——你的新算法将自动进入测试队列,如果测试通过,它将被合并。

就这么简单!你的新哈希不仅会加入 HashDB 库,而且还会为 HashDB 查找服务 生成一张新的哈希表,你可以立即开始反查哈希!

❗新哈希规则

对 /algorithms 目录之外进行更改的 PR 不属于我们自动化 CI 的一部分,将受到额外的审查。

所有哈希都必须在 DESCRIPTION 字段中包含有效的描述。

所有哈希都必须在 TYPE 字段中包含 unsigned_int 或 unsigned_long 类型。HashDB 目前只接受无符号 32 位或 64 位哈希。

所有哈希都必须在 TEST_1 字段中包含字符串 ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 的哈希值。

所有哈希都必须包含一个函数 hash(data),该函数接受一个字节字符串并返回该字符串的哈希值。

添加自定义 API 哈希

某些哈希算法会分别对模块名称和 API 进行哈希处理,然后将哈希值组合起来,生成一个单独的 module+API 哈希。一个典型的例子是标准的 Metasploit ROR13 哈希。这些算法无法与标准词表配合使用,需要包含模块名称和 API 的自定义词表。为了处理这些情况,我们允许自定义算法只对某些词汇返回有效的哈希值。

添加自定义 API 哈希需要以下额外组件。

  1. TEST_1 字段必须设置为 4294967294 (-1)。

  2. 哈希算法必须对所有无效哈希返回 4294967294。

  3. 必须添加一个额外的 TEST_API_DATA_1 字段,其中包含对该算法有效的示例词。

  4. 必须添加一个额外的 TEST_API_1 字段,其中包含 TEST_API_DATA_1 字段的哈希值。

站在巨人的肩膀上

非常感谢 FLARE 团队在 shellcode_hashes 方面付出的努力。多年前,这个项目为快速简便的恶意软件哈希反查树立了标杆,而且它至今仍是一个极其有用的工具。那么为什么要重复造轮子呢?

坦率地说,这一切都关乎词表和可访问性。如今我们看到一个巨大的转变:恶意软件中各种字符串都开始使用哈希,而旧的将所有 Windows DLL 导出函数进行哈希的方法已经不够用了。我们想要一个能够持续处理数百万个注册表键和值、文件名以及进程名称的解决方案。我们还希望这些数据能够通过 REST API 获取,这样我们不仅可以在静态分析工具中使用,还可以在我们的自动化工作流中使用。话虽如此,如果没有 shellcode_hashes,就不会有我们,所以该给的功劳还是要给 🙌


下载工具