最近做了一个小工具,用来解决在 GitHub 上批量搜索和下载代码文件的需求。

我做了什么

这个工具主要包含两个核心功能:

1. GitHub 代码搜索与批量下载

通过 GitHub API 搜索代码,支持多种过滤条件:

  • 按关键词搜索
  • 按编程语言过滤(Python、Java、Go 等)
  • 按文件名过滤
  • 按用户或仓库过滤
  • 支持正则表达式内容过滤

最重要的是,它支持多线程并行下载,可以快速批量获取搜索结果中的代码文件。

2. 文件内容匹配工具

下载完代码后,可以用这个工具在本地文件中搜索匹配的内容,支持:

  • 正则表达式匹配
  • 显示匹配行的上下文
  • 按文件类型过滤

使用场景

这个工具特别适合:

  • 安全研究人员搜索敏感信息泄露
  • 开发者学习特定功能的实现方式
  • 代码审计和分析
  • 批量收集特定模式的代码示例

快速开始

# 搜索包含特定关键词的 Python 代码python github_code_downloader.py -q "fofa_key" -l python -regex "[0-9a-fA-F]{32}"# 在下载的文件中搜索匹配内容python file_matcher.py downloaded_code/20251211_143611 "[0-9a-fA-F]{32}" -e .py

输出示例

使用文件匹配工具搜索后,会生成详细的匹配结果报告,包含匹配行的上下文:

正在搜索目录: downloaded_code\20251211_143611使用的正则表达式: [0-9a-fA-F]{32}输出匹配行上下的行数: 2只搜索以下后缀的文件: .py文件: downloaded_code\20251211_143611\BCEVM_mass_deface_fofa_shodan_loader.py_fofa_shodan_loader_1765435009.py     4: import os     5:  >>> 6: FOFA_EMAIL = "xxx"     7: FOFA_KEY = "xxx"     8: SHODAN_KEY = "xxx"------------------------------文件: downloaded_code\20251211_143611\cn-xwhat_VulScanner_vulscan_Project_serviceUtil.py_vulscan_Project_serviceUtil_1765435045.py     15:      16: FOFA_EMAIL = "[email protected]" >>> 17: FOFA_KEY = "xxx"     18:      19: port_label = {------------------------------

匹配的行会用 >>> 标记,方便快速定位。

项目地址

项目已开源到 GitHub,欢迎查看和使用:

🔗 GitHub Code Search

如果这个工具对你有帮助,欢迎给个 ⭐ Star 支持一下!


如果你有任何问题或建议,欢迎提 Issue 或 PR。