9

我正在寻找软件保护和/或代码混淆软件,如Oreans ThemidaVSProtectASPRotect等。但是,防病毒误报对我来说是个大问题。我不能给我们的合法用户带来不便或吓跑。不幸的是,上面提到的所有三种产品似乎都存在这个问题。

我用 Delphi 编写的32 位本机(不是 .NET)Windows 应用程序现在使用自定义许可证管理代码,并且运行良好,但是由于没有使用代码混淆,因此每次发布后数小时内就会产生裂缝。因此,我正在寻找一种产品,它至少可以增加一定程度的防破解保护,并且不会产生防病毒软件的误报。

我的首要任务是在我的软件中引入非回避性和稳定性、没有错误和防病毒误报问题。抗裂保护水平是次要的。

4

8 回答 8

8

你必须自己动手。误报来自与已知恶意软件匹配的“签名”。例如,如果某些恶意软件使用 upx 进行压缩,并且扫描程序发现 upx 已编译到您的应用程序中,则您可能会被错误识别。
您可能会因为扫描仪看到您正在使用 Delphi(或任何其他编译器,就此而言)而得到误报。但是越模糊,扫描器认为“我在这里发现了一些独特的东西”的信心就越高,并与它的已知恶意软件目录交叉引用。]

如果机场安检像反恶意软件公司一样工作,我会在机场被看到就被枪杀,因为我是一个棕色头发、棕色眼睛的男性。

如果扫描仪足够懒惰,您可能会被标记为您使用的安装程序、您使用的第 3 方组件、资源字符串、“随机机会”、与代码签名证书或您使用的编译器有关的事情。

有人会使用 FireMonkey 制作恶意软件。一些反恶意软件(可能不止一个)会注意到这一点。在一段时间内,FireMonkey 应用程序会遇到麻烦。

这里有一个有趣的讨论:不 小心制造了病毒?

于 2011-10-03T17:18:36.193 回答
4

Arxan guard它旨在与可视化 C++ 应用程序一起工作,但有进取心的 Delphi 开发人员也许可以使用它来保护他们的产品。我知道一个用 Delphi 编写的非常流行的商业应用程序使用它,但是您必须自己编写一些工具来将 Delphi 映射文件和其他调试信息转换为 Visual C++ 格式。

如果您想自己动手,请注意任务是比黑客更聪明,并以某种难以确定的方式建立更多相互依赖的反保护层,以成功抵抗黑客。我个人的感觉是,无论如何,你不会让那些人给你钱,所以花时间阻止他们使用你的软件只不过是割断你的鼻子来侮辱你的脸。但如果这是你在互联网上以破解的形式努力工作,那么无论如何,继续努力超越他们。

请注意,如果您使用高级技术,例如自我修改代码,您几乎肯定会被一些反恶意软件检测软件标记,并且需要申请加入白名单。如果你不准备去自修改代码,那么即使尝试也可能是零点。我不知道有什么东西会抵制不需要自我修改、即时修复和损坏技术的直接离线反编译技术。

一旦未加密的 exe 完全加载到内存中,在启动时完成的普通旧 exe 解密技术也非常容易绕过和完全删除。

于 2011-10-03T17:23:54.610 回答
3

我相信你可以看看一个叫做The Enigma Protector

开发人员非常了解误报问题,并在此问题上积极与 AV 公司合作。以下是开发人员在他的一篇论坛帖子“从 Enigma Protector 3.0 开始,受保护的文件不会出现错误检测!” 链接到论坛帖子

自从几年前从 Ice License 切换以来,我一直在使用这种保护,并且只遇到过一个误报检测问题。我通知了开发人员,他立即为我联系了 Avast。它在下一次 AV 检测更新中得到解决。

该保护具有许多功能和非常有用的帮助文件。它使用标记系统进行虚拟化,当这些标记中的代码运行时,它将使用一种只有保护系统知道的特殊语言,称为内部虚拟处理器上的 PCODE。

它有自己的 API,可以为它编写插件。它还包括一个用于文件和注册表的虚拟框,但现在我可以永远继续下去。

克里斯

于 2011-10-04T23:29:34.803 回答
2

我认为你应该以不同的方式看待这个问题。我们使用 Oreans 并遇到了类似的问题,但通过签署可执行文件绕过了这些问题。防病毒软件需要更长的时间来查看您的应用程序,但如果它经过数字签名,大多数人仍会接受它是无病毒的。

我这么说的原因是保护系统会随着防病毒系统的变化而变化。您今天可以找到成功通过防病毒测试的系统,而明天,当有人发布一些由同一产品加密的间谍软件时,您的系统将被标记为病毒。

更新 - 有几个孤立的仍在抱怨,但大多数人接受签名的有效(我们得到了 43 个标志中的 6 个,而没有签名我们有超过一半的投诉)

于 2011-10-10T14:31:11.787 回答
1

是的,有可用的解决方案。(免责声明:我在软件版权保护公司Wibu-Systems工作)我可以向您保证 CodeMeter 不会触发防病毒系统,也不需要管理员权限来安装。我还可以告诉你,任何本土解决方案都可能很快被破解——我们已经花费了数年时间(以及该领域的其他供应商,如 Arxan、Safe-Net 和 Keylok)来开发混淆和混淆的方法-是饼干。

大多数破解者只是使用调试器在许可证检查例程(向用户显示的错误消息或对话框)处设置断点,然后在身份验证检查时修补汇编语言代码(寻找类似将 EAX 与 EBX 进行比较之类的东西)并将代码更改为始终返回 true)。所以他们不需要尝试去混淆你的代码等。这就是为什么大多数商业上可用的解决方案使用加密而不是某种身份验证/验证检查——加密不能被修补。但即使是加密的可执行文件也可以被内存转储和重建,除非您非常熟悉如何重新安排 PE 文件格式以及处理密钥存储和密钥交换。

鉴于具有所有优势和优势(许可证管理、灵活性、跨平台支持等)的商业系统的成本可能非常低,为什么要自己动手呢?大多数人不编写自己的安装程序,因为您可以使用 MSFT、InstallShield 或 NSIS——为什么要编写自己的许可和保护解决方案?

于 2011-10-04T14:55:20.593 回答
1

我想你不会得到 100% 的保证,但我从来没有遇到过犰狳的问题。保护您的 exe 并使用有效证书对其进行签名。

于 2011-10-08T00:59:33.910 回答
0

一如既往,这是一个艰难的过程。

我想说您应该开始寻找在编译时而不是之后应用的产品。打包二进制文件的打包程序总是会产生可疑的结果,因为它们的行为很像病毒。

我相信许多像 Sonys SecuROM这样的游戏保护方案都会这样做,或者至少已经开始这样做了。但有人可能会争辩说,虽然你在误报方面是安全的,但破解者已经知道如何击败这些主流产品。

所以你需要找到那个好的崭露头角的振铃器产品。

于 2011-10-03T17:56:02.057 回答
0

尝试使用十六进制编辑器来编辑像“UPX”等标题。二进制不需要它们,只需要解压它们的工具。

于 2011-10-03T22:57:18.050 回答