cainepavl/Iffy_Offer

GitHub: cainepavl/Iffy_Offer

一款桌面工具,通过分析发件人邮箱、域名和邮件标头等多维信号,快速评估录用通知邮件是否来自合法公司或为钓鱼诈骗。

Stars: 0 | Forks: 0

# Iffy_Offer — 录用通知邮件合法性检查器 [![版本](https://img.shields.io/badge/version-v1.0.0-blue.svg)](https://github.com/cainepavl/Iffy_Offer/releases) [![许可证: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-blue.svg)]() [![平台](https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-informational.svg)]() [![UI: Tkinter](https://img.shields.io/badge/UI-Tkinter-orange.svg)]() 这是一款桌面工具,用于分析录用通知邮件,并评估其是否来自合法公司或为钓鱼/诈骗邮件。 输入公司名称和发件人的电子邮件地址(可选粘贴原始邮件标头),点击 **Analyze**,几秒钟内即可获得风险评估结果。 ## 开发初衷 我经常收到一些感觉不太对劲的录用通知邮件——例如使用免费邮箱服务商地址却自称来自世界500强公司、没有任何邮件基础设施的全新域名、显示名称与实际发件人不符等。我希望能找到一种快速的方法来核查这些邮件,而不必每次都手动查阅 DNS 记录和 WHOIS 信息。Iffy Offer 自动执行了这些检查,并在几秒钟内给出通俗易懂的结论。它虽然无法识破所有骗局,但能迅速识别出那些明显的诈骗。 ## 功能 - **域名分析** — 检测同形异义字符替换 (`amaz0n.com`) 和拼写错误域名 (`amzon-careers.com`) - **免费服务商检测** — 标记来自 Gmail、Yahoo、Hotmail 等的地址 - **ATS 平台识别** — 识别合法的招聘平台(Greenhouse、Workday、Lever、LinkedIn 等) - **域名年龄检查** — 通过 WHOIS 查询标记全新域名(< 30 天) - **DNS 记录检查** — 验证 MX、SPF 和 DMARC 记录 - **标头分析** — 检测显示名称欺骗和 Reply-To 劫持(在提供原始标头的情况下) - **风险评分** — 将所有信号汇总为一个单一分数,并附带颜色编码的结论 - **深色和浅色模式** — 一键切换 ## 截图 | 深色模式 | 浅色模式 | |-----------|------------| | ![深色模式](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/723245e46b230905.png) | ![浅色模式](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/c407f3feb4230911.png) | ## 安装说明 **环境要求:** Python 3.10 或更高版本 ### 1. 验证您的 Python 版本 ``` python3 --version ``` 如果输出结果低于 `3.10`,请在继续之前[从 python.org 下载更新版本](https://www.python.org/downloads/)。 ### 2. 克隆代码仓库 ``` git clone https://github.com/cainepavl/Iffy_Offer.git cd Iffy_Offer ``` ### 3. 创建并激活虚拟环境(推荐) ``` python3 -m venv venv ``` ``` # Linux / macOS source venv/bin/activate # Windows — PowerShell venv\Scripts\Activate.ps1 # Windows — Command Prompt venv\Scripts\activate.bat ``` 当环境激活后,您的命令行提示符将显示 `(venv)`。 ### 4. 安装依赖项 ``` pip install -r requirements.txt ``` ### 5. 启动应用 ``` python main.py ``` ### Tkinter 注意事项 Tkinter 是 Python 标准库的一部分,在 Windows(通过 python.org 安装程序)和 macOS 上会自动包含。在 Linux 上可能需要单独安装: ``` # Debian / Ubuntu sudo apt install python3-tk # Fedora sudo dnf install python3-tkinter # macOS(如果在 Homebrew Python 安装后缺失) brew install python-tk ``` ### WSL (Windows Subsystem for Linux) Iffy Offer 会打开一个 GUI 窗口,因此 WSL 需要显示后端才能渲染它。 **Windows 11 — 带有 WSLg 的 WSL 2(推荐)** WSLg 内置于 Windows 11(21H2 及更高版本)中,可自动处理 GUI 应用。按照上述 Linux 安装步骤操作即可——无需额外的显示设置。 **Windows 10 — 不带 WSLg 的 WSL 2** 在 Windows 端安装一个 X server(例如 [VcXsrv](https://sourceforge.net/projects/vcxsrv/)),在启动时勾选“Disable access control”,然后在运行应用之前导出显示变量: ``` export DISPLAY=$(grep nameserver /etc/resolv.conf | awk '{print $2}'):0.0 python main.py ``` ## 使用说明 1. **公司名称** — 输入 supposedly 发送该邮件的公司名称(例如 `Amazon`、`Google`、`Acme Corp`) 2. **发件人邮箱** — 粘贴*完整的*发件人地址,包括显示的名称(例如 `Amazon Recruiting `) 3. **原始标头** *(可选)* — 在您的邮件客户端中,选择“显示原文”或“查看源码”,并将完整的标头块粘贴到文本区域中。 这将启用显示名称欺骗和 Reply-To 不匹配检查。 4. 点击 **Analyze Email**,等待几秒钟以完成 DNS/WHOIS 查询。 ## 查找原始标头块 原始标头块是位于邮件正文上方的机器可读元数据。每封邮件都有标头块;只是默认隐藏了。 ### 如何在常见客户端中打开它 | 客户端 | 步骤 | | ------------------- | ---------------------------------------------------------------------------------------------------- | | **Gmail** (网页版) | 打开邮件 → 点击右上角的 **⋮** (三点) 菜单 → **显示原始邮件** | | **Outlook** (网页版) | 打开邮件 → 点击 **⋯** → **查看** → **查看邮件源码** | | **Outlook** (桌面版) | 在独立窗口中打开邮件 → **文件** → **属性** → 在 *Internet 标题* 框中查找 | | **Apple Mail** | 打开邮件 → **显示** 菜单 → **邮件** → **原始源码** | | **Thunderbird** | 打开邮件 → **显示** 菜单 → **邮件源码** (或 `Ctrl+U`) | | **Yahoo Mail** | 打开邮件 → 点击 **⋯** 菜单 → **查看原始邮件** | ### 复制哪些内容 打开原始源码后,您会在最顶部看到类似以下的内容: ``` Delivered-To: you@example.com Received: from mail.sender.com ... DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sender.com; h=from:to:subject:date; bh=...; b=... From: "HR Team" To: you@example.com Subject: Exciting Opportunity Date: Fri, 06 Jun 2026 10:00:00 +0000 Reply-To: different@otherdomain.com ... ``` 复制从**第一行**开始到(但不包括)将标头与邮件正文分开的空白行之前的所有内容。将该部分内容粘贴到 Iffy Offer 的 **Raw Headers** 字段中。 ## 评分机制 每项检查都会向累积风险分数提供一个带符号的整数增减值。 | 检查项目 | 分数变化 | | -------------------------------- | :---------: | | 免费邮件提供商 (gmail 等) | –40 | | 已知的 ATS / 招聘人员平台 | +20 | | 域名中包含同形异义字符 | –30 | | 检测到 Typosquatting (域名抢注) | –25 | | 域名注册少于 30 天 | –30 | | 域名注册 30–180 天 | –15 | | 域名注册超过 2 年 | +10 | | 无 MX 记录 | –20 | | 无 SPF 记录 | –10 | | 无 DMARC 记录 | –10 | | Reply-To 域名不匹配 | –20 | | 显示名称欺骗 | –15 | **结论区间:** | 分数 | 结论 | | ---------- | ---------------- | | ≥ 0 | 🟢 看似合法 | | –1 至 –29 | 🟡 存疑 | | ≤ –30 | 🔴 危险! | ## 本工具不会执行的操作 - **不会打开、扫描或执行附件** — 检查附件需要沙盒环境,这超出了本工具的范围。 - **不会跟踪或分析**邮件正文中的链接。 - **不会联系公司**以验证招聘人员的身份。 - **不会发送您的数据到任何地方** — 唯一的外部网络请求是针对您输入的域名进行的标准 DNS 和 WHOIS 查询。不会传输任何邮件内容、个人信息或使用数据。 - **无法保证准确性** — 资源充足的攻击者可能会通过某些检查(例如在虚假域名上设置 SPF/DMARC)。请将此工具作为多种参考手段之一,而不是最终的判断标准。 ## 局限性 - 针对某些 TLD 的 WHOIS 查询可能会失败(隐私保护、不受支持的注册局)。 遇到这种情况,工具会在域龄处显示“未知”,而不会报错。 - DNS 检查需要网络连接。 - ATS 平台和免费服务商列表是手动维护的 — 可能无法覆盖所有服务。 ## 扩展 要添加新的免费服务商或 ATS 平台,只需在 `data/free_providers.txt` 或 `data/ats_platforms.txt` 中添加一行即可。无需修改代码。 要添加新的检查规则,请参阅 `CLAUDE.md` 中的 **Adding a New Check** 章节。 ## 许可证 **MIT License** — Copyright (c) 2026 Caine Pavlosky 您可以出于任何目的自由使用、复制、修改和分发本软件(无论是否修改),只需保留版权声明和许可声明即可。有关完整的许可证文本,请参阅 [`LICENSE`](LICENSE) 文件。 ## 免责声明 Iffy Offer 仅供**教育和个人使用**。它是一款启发式工具,**并非 100% 准确** — 精明的攻击者可能会通过某些检查(例如注册具有正确 SPF/DMARC 记录的域名)。 在采取任何行动之前,请务必通过官方公司渠道验证可疑邮件。本工具不构成法律、安全或专业建议。
标签:Python, Sigma 规则, Tkinter, 反钓鱼, 域名分析, 无后门, 桌面应用, 求职防骗, 逆向工具, 邮件安全