强大的OSINT情报工具:Blackbird用户名与邮箱搜索分析平台

项目标题与描述

Blackbird是一款强大的OSINT(开源情报)工具,专为用户名和邮箱搜索而设计。该工具集成了WhatsMyName项目的600多个社交平台数据库,能够快速准确地查找目标账户在不同平台的存在情况。项目采用Python开发,提供命令行界面,支持AI智能分析和多种数据导出格式。

功能特性

  • 多平台搜索: 支持600+社交媒体的用户名和邮箱反向查找
  • 智能AI分析: 集成免费AI引擎,自动生成用户行为和技术画像
  • 多种导出格式: 支持PDF、CSV、JSON等多种结果导出方式
  • 批量处理: 支持用户名列表文件和邮箱列表文件的批量处理
  • 元数据提取: 能够从响应中提取丰富的用户元数据信息
  • 实时更新: 自动检查并更新平台数据库,确保数据最新
  • 智能过滤: 内置结果过滤机制,减少误报率

安装指南

系统要求: Python 3.6+,支持Windows、Linux、macOS系统

bash 复制代码
# 克隆仓库
git clone https://github.com/p1ngul1n0/blackbird
cd blackbird

# 安装依赖
pip install -r requirements.txt

依赖项: rich、aiohttp、reportlab、python-dotenv、requests等

使用说明

基本用户名搜索:

bash 复制代码
python blackbird.py --username johndoe

邮箱搜索:

bash 复制代码
python blackbird.py --email johndoe@example.com

使用AI分析:

bash 复制代码
python blackbird.py --username johndoe --ai

导出PDF报告:

bash 复制代码
python blackbird.py --email johndoe@example.com --pdf

设置AI API密钥:

bash 复制代码
python blackbird.py --setup-ai

核心代码

主程序初始化:

python 复制代码
def initiate():
    if not os.path.exists("logs/"):
        os.makedirs("logs/")
    logging.basicConfig(
        filename=config.LOG_PATH,
        level=logging.DEBUG,
        format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
    )

    parser = argparse.ArgumentParser(
        prog="blackbird",
        description="An OSINT tool to search for accounts by username in social networks.",
    )
    parser.add_argument(
        "-u",
        "--username",
        nargs="*",
        type=str,
        help="One or more usernames to search.",
    )

站点检查核心逻辑:

python 复制代码
async def checkSite(site, method, url, session, semaphore, config):
    returnData = {
        "name": site["name"],
        "url": url,
        "category": site["cat"],
        "status": "NONE",
        "metadata": None,
    }
    async with semaphore:
        response = await do_async_request(method, url, session, config)
        if response == None:
            returnData["status"] = "ERROR"
            return returnData
        try:
            if response:
                if (site["e_string"] in response["content"]) and (
                    site["e_code"] == response["status_code"]
                ):
                    if (site["m_string"] not in response["content"]) and (
                        (site["m_code"] != response["status_code"])
                        if site["m_code"] != site["e_code"]
                        else True
                    ):
                        returnData["status"] = "FOUND"

AI分析功能:

python 复制代码
def send_prompt(prompt, config):
    config.console.print(f":sparkles: Analyzing with AI...")
    apikey = load_api_key_from_file(config)
    if not apikey:
        config.console.print(":x: No API key found. Please obtain an API key first with --setup-ai")
        return None
    headers = {
        "Content-Type": "application/json",
        "User-Agent": "blackbird-cli",
        "x-api-key": apikey
    }
    payload = {
        "prompt": prompt
    }

PDF导出功能:

python 复制代码
def saveToPdf(foundAccounts, resultType, config):
    regularFontFile = os.path.join(
        os.getcwd(),
        config.ASSETS_DIRECTORY,
        config.FONTS_DIRECTORY,
        config.FONT_REGULAR_FILE,
    )
    boldFontFile = os.path.join(
        os.getcwd(),
        config.ASSETS_DIRECTORY,
        config.FONTS_DIRECTORY,
        config.FONT_BOLD_FILE,
    )
    try:
        pdfmetrics.registerFont(TTFont(config.FONT_NAME_REGULAR, regularFontFile))
        pdfmetrics.registerFont(TTFont(config.FONT_NAME_BOLD, boldFontFile))
相关推荐
云知谷3 小时前
【C++基本功】C++适合做什么,哪些领域适合哪些领域不适合?
c语言·开发语言·c++·人工智能·团队开发
rit84324994 小时前
基于MATLAB实现基于距离的离群点检测算法
人工智能·算法·matlab
初学小刘5 小时前
深度学习:从图片数据到模型训练(十分类)
人工智能·深度学习
递归不收敛5 小时前
大语言模型(LLM)入门笔记:嵌入向量与位置信息
人工智能·笔记·语言模型
之墨_6 小时前
【大语言模型】—— 自注意力机制及其变体(交叉注意力、因果注意力、多头注意力)的代码实现
人工智能·语言模型·自然语言处理
从孑开始6 小时前
ManySpeech.MoonshineAsr 使用指南
人工智能·ai·c#·.net·私有化部署·语音识别·onnx·asr·moonshine
墨风如雪6 小时前
DeepSeek OCR:用'眼睛'阅读长文本,AI记忆新纪元?
aigc
涛涛讲AI7 小时前
一段音频多段字幕,让音频能够流畅自然对应字幕 AI生成视频,扣子生成剪映视频草稿
人工智能·音视频·语音识别
可触的未来,发芽的智生7 小时前
新奇特:黑猫警长的纳米世界,忆阻器与神经网络的智慧
javascript·人工智能·python·神经网络·架构
WWZZ20257 小时前
快速上手大模型:机器学习2(一元线性回归、代价函数、梯度下降法)
人工智能·算法·机器学习·计算机视觉·机器人·大模型·slam