V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
lander
V2EX  ›  问与答

如何屏蔽 dll 注入?

  •  
  •   lander · 2021-03-28 18:40:36 +08:00 · 1804 次点击
    这是一个创建于 1340 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如题,软件开发小白。在排查一些软件兼容性问题,使用 Process Monitor 等工具发现我们的软件被第三方软件的 dll 注入了,请教除了直接卸载这个三方软件,还有无简单的方法临时屏蔽这些三方软件 dll 注入?
    4 条回复    2021-03-28 21:42:29 +08:00
    ysc3839
        1
    ysc3839  
       2021-03-28 18:49:28 +08:00
    没什么简单办法,真要搞的话就是游戏反作弊那套技术了。
    Mithril
        2
    Mithril  
       2021-03-28 18:51:31 +08:00
    自我保护向来都是成本问题,其次才是技术问题。主要还是看你想花多大成本去做这个东西了。
    从最简单的用个守护线程,检测到第三方的文件名或者签名直接自爆。到复杂的你自己实现个类似主动防御的功能。只看你们打算下多大决心去搞了。
    当然我个人觉得最好的办法就是收集好证据,直接起诉对方一锅端就完了。
    3dwelcome
        3
    3dwelcome  
       2021-03-28 21:26:25 +08:00   ❤️ 1
    注入分系统级和普通级别。如果你这个软件是系统全局注入(比如杀毒软件),那么几乎每个启动的 EXE,都会被此软件监控。
    而且一般不能强制卸载,DLL 注入总会修改你一些代码,达到监控目的。强制卸载正常程序也会报错。
    你要说最简单屏蔽的方法,我能想到的也只有注册一个傀儡后台服务,来绕过监控了。
    BeautifulSoap
        4
    BeautifulSoap  
       2021-03-28 21:42:29 +08:00
    这第三方的定义就非常模糊,软件启动后涉及到的各种 dll 非常多非常复杂,包括系统,驱动之类的。而且各种输入法也都会往软件里注 dll 呢,这样客户装个搜狗、QQ 、手心 etc 。。。到头来实际上就成了一个是搞 dll 黑名单和还是白名单呢的问题

    至于方法,也无非是随时监测线程数量是否异常,监测进程关联的 dll 之类的,你没法阻止 dll 注入,只能事后监测。因为阻止 dll 注入是杀毒软件或反作弊器的工作了,难度不低
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3626 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 00:46 · PVG 08:46 · LAX 16:46 · JFK 19:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.