问题标签 [software-protection]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
reverse-engineering - 使用硬件加密狗的软件安全保护
我已经阅读了所有关于盗版和硬件支持的现有讨论,所以这不是同一个老问题。我对这个旧讨论有了新的转折。您现在可以购买用于 USB 的加密狗,允许您将一些重要的代码放入加密狗。如果您有一个复杂的算法并将其放入加密狗中,则必须有人对加密狗的内容进行逆向工程。如果他们像过去那样试图欺骗加密狗,这是行不通的。他们所能看到的只是数据进入一个“黑匣子”,结果数据出来了。在源代码中绕过许可证检查不再是寻找跳转真/假的问题。
也许一个手头有很多空闲时间的数学家最终可以扭转它,但那是一种极端的兴趣!另一种选择是硬件加密狗本身需要被黑客入侵。有许多针对此内置的保护措施,但这可能是最有效的方法。
所以我想采取一个场景,看看我是否错过了什么。我将算法的重要部分放入加密狗以保护它。6 个 double 和 1 个 int 进入加密狗,返回 1 个 double 和 1 个 int。这发生在数千个数据点上。这是具有相似复杂性的几个函数之一。黑客可以看到我的汇编代码的其余部分(我尽可能地对其进行混淆),但假设它很容易被黑客入侵。我的问题是,破解加密狗访问我在这个专有硬件中的汇编代码有多难?我们以这家公司的产品为例:http ://www.senselock.com
我对如何给客户带来不便的讲座不感兴趣,我应该开源我的产品,拜托。我正在寻找有关软件/硬件工程师如何从此类设备中提取我的装配对象的技术讨论。而且我问的不是为了破解一个,而是要知道我有多少麻烦,因为我不鼓励篡改。我知道,只要有意愿,总会有办法。但乍一看,绕过这个方案似乎需要花费数千美元的努力?
鉴于到目前为止的反应,我将添加更多细节。加密狗具有以下属性,“对芯片的访问受PIN保护,最大重试次数由软件开发人员预先设定。例如,在字典攻击下,一旦重试次数超过预先设定的设定值,芯片将触发“自锁机制”。因此,要访问芯片以及其中的代码,您必须知道 PIN 码,否则在尝试 10 次后,您将被锁定。我个人看不出任何人可以破坏这个系统。进出什么并不重要,重要的是加密狗 ARM 处理器内部运行的是什么。物理强制访问会破坏芯片。电气访问将需要 PIN,否则芯片将被锁定。不然怎么可能妥协?
java - 加密 JAVA SpringFramework WebApplication
我创建了一个 SpringFramework WebApplication,现在我想分发它。一位客户要求我评估他自己服务器上的应用程序。我想保护我的加密源代码。可能吗?如果是,最好的工具是什么?使用它会有性能损失吗?
windows-server-2012 - 软件保护提供商服务重新启用自动更新
我们遇到了一个问题,在 windowsupdate.log 文件开始编写自动更新检查的同时,有相应的事件查看器条目显示有关 Security-SPP 的内容。
在该条目之前,更新设置由组策略设置。我的问题:Security-SPP 是否可以重新启用自动更新和/或覆盖已为组策略确定的内容?
c# - Agile.net .NET 混淆器 - 标记为 [Serializable] 的类型不会被混淆
使用 Agile.net .NET Obfuscator 我注意到标记为 [Serializable] 的类型没有被混淆。是否可以禁用此功能?所以我想混淆标记为 [Serializable] 的类型
android - 如何保护 C++ 动态库不被未经许可使用?
我们正在构建一个 Unity3D 插件。任何使用我们插件的游戏,在为某个平台构建时,还包括我们的插件,该插件以该平台的动态库形式存在。例如,当 Android apk 从 Unity 导出时,它将包含我们的库xyz.so。该库是用 C++ 编写的。
我们如何保护我们的动态库不被盗?似乎任何人都可以“解压缩”一个 apk Android 包,获取我们的库,获取导出,从我们的免费试用版获取文档,并最终使用该库而无需成为许可客户。在这个用例中是否有推荐的保护模型?
c# - 如何使用 c# 停用我的 dll 文件
我正在为桌面应用程序(C#/VB.NET)构建 dll 文件。
根据与客户的许可,特定 dll 文件和该 dll 中特定功能的过期日期有一个xml文件。我的应用程序使用这些 dll 工作,我正在寻找如何锁定/停用或阻止用户使用:1)整个 dll 文件(当日期过期时)2)dll 文件中的特定功能。((当日期到期时))
c++ - 基本的篡改保护
我正在尝试创建一个对 licenseCheck 函数具有篡改保护的基本程序,但它总是说它是正确的,即使我在 Ollydbg 中 nop 整个 licenseCheck 函数或更改并重建代码。
我正在关注《秘密软件》一书,并编写了以下程序:
该程序基本上“散列”了 BEGIN 函数和 END 函数之间的代码,但它似乎不起作用。即使在篡改之后,哈希值也始终是正确的。
我正在使用 Windows 7 和 Visual Studio 2017 构建/运行程序。
security - 如何将笔式驱动器转换为加密狗?
我有一个用 c# 编写的桌面应用程序。我只希望拥有许可证加密狗的用户能够使用该软件。我查了一下,有提供这种设施的公司,但我发现它们很贵。
有没有办法可以将旧的笔式驱动器变成加密狗,这样它就不会显示在文件资源管理器中,但软件可以从中读取?
file - 通过使它们无法打开来保护 TTF 字体文件,但仍可作为 webfonts 使用
我是字体制作者,我想保护我的网络字体。
我知道保护字体文件的 HTACCESS 方法,但我发现还有另一种保护网络字体的方法:当您尝试使用 Windows 字体查看器打开TTF 字体文件时故意损坏它们,这样它们就无法安装,而相同的文件仍然可以在浏览器中作为 webfont 使用。
这是我发现的一个工作示例(他们是如何做到的,这是个谜): http: //fontface.co.il/fonts/demo_s.asp?id=131
如您所见,如果字体文件缓存在浏览器中,您可以访问它们,但是当您下载 TTF 文件并通过“Windows 字体查看器”打开它以进行安装时,它会给您此错误: “请求的文件 _____.ttf 不是有效的字体文件”。
你可以在你的电脑上自己测试一下,你会发现这个网络字体仍然只适用于 TTF。(不包括@font-face 中的 woff / eot 文件)
这正是我想要对自己的字体做的事情。这样它们仍然可以作为网络字体工作,而不能作为桌面字体工作,这使得未经培训的人更难在没有许可证的情况下安装它们。
但是,我无法弄清楚他们是如何做到的。有任何想法吗?
delphi - 黑客能否访问已编译的 exe Delphi VCL 应用程序中的变量、方法、单元等的名称?
我正在为使用 Delphi 7 创建的软件使用保护模式,想知道我是否需要担心函数/过程、变量等中使用的名称。“黑客”能否在编译的 exe VCL 应用程序中访问这些名称用 Delphi 创建而没有任何第三方保护(即混淆)?