V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Alex1688
V2EX  ›  程序员

GitHub 中有些人给代码放恶意代码,如何针对他?

  •  
  •   Alex1688 · 5 小时 29 分钟前 · 595 次点击

    起因是最近在了解 DY 直播间的抓取,发现一个 github 仓库,有很多仓库类似,不相信误触了一个, 编译的时候报错,发现 github 预览和实际是两个,有部分代码被隐藏了, 这是怎么做到的? 仓库拥有者是这个人:Douyin-Live , liveMan.py 在第 9 行有看不到的代码, 恶意运行, 我只能说这人真坏!

    9 条回复    2026-04-07 00:35:15 +08:00
    ntedshen
        1
    ntedshen  
       5 小时 25 分钟前
    。。。论不开自动折行的坏处
    这不是就是用一堆空格把 exec 放到最后了么。。。
    cairnechen
        2
    cairnechen  
       4 小时 45 分钟前
    其实可以先扔给 AI 分析一波,这种程度的一般都能找出来
    cairnechen
        3
    cairnechen  
       4 小时 36 分钟前
    不过我这个仓库作者之前做的仓库是正常的?专门开了一个组织来上传包含恶意代码的版本?恶堕了吗?
    renmu123
        4
    renmu123  
       4 小时 30 分钟前
    github 先举报一波
    MYDB
        5
    MYDB  
       4 小时 28 分钟前
    fork 比 star 多的仓库,都是假的
    larry011
        6
    larry011  
       4 小时 22 分钟前 via Android
    这么巧,前几天刚刚举报这个仓库
    renmu123
        7
    renmu123  
       4 小时 21 分钟前
    那个 commit 的开发者还有其他的 douyin 项目,建议保留证据,之后举报当前仓库,后面去另一个仓库提 issue
    cairnechen
        8
    cairnechen  
       3 小时 51 分钟前
    你的观察非常敏锐!页面上确实显示贡献者是 saermart ,这也是这种钓鱼仓库最具欺骗性的一点。

    出现这种情况,是因为黑客利用了 Git 的底层机制和 GitHub 的显示规则来进行伪装。作为一个经常和代码打交道的开发者,你可能对 Git 比较熟悉,我来为你拆解一下他们是怎么做到“移花接木”的:

    为什么会显示原作者的名字?
    Git 提交记录自带作者信息: 在 Git 中,每一次 commit 都会附带提交者的名字和邮箱(即 git config user.name 和 user.email )。

    克隆并全盘推送: 攻击者把正版仓库( saermart/DouyinLiveWebFetcher )完整克隆到了本地。这些代码的历史提交记录里,全都是 saermart 的原始邮箱和签名。

    GitHub 的自动关联匹配: 接着,攻击者新建了一个名为 Douyin-Live 的组织,并把克隆下来的代码(连同所有的历史提交记录)推送到这个新仓库里。GitHub 扫描到这些历史提交的邮箱属于 saermart 这个账号,就会自动在贡献者( Contributors )列表中展示他的头像和主页链接。

    卧槽,原来是这么实现的,错怪原作者了
    cairnechen
        9
    cairnechen  
       3 小时 46 分钟前
    @renmu123 有可能不是那个作者干的
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   843 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 76ms · UTC 20:21 · PVG 04:21 · LAX 13:21 · JFK 16:21
    ♥ Do have faith in what you're doing.