好吧,让我们说我们不希望hexworkshop或hxd打开我制作的可执行文件。我该怎么做呢?它甚至可能吗?基本上我正在寻找的是阻止其他程序打开我的程序而不需要我的程序在当时打开。
注意:我确实知道如何终止进程,但只有在程序当前打开时才有效。我想要的是防止程序打开/读取.exe,即使程序没有运行。
答案 0 :(得分:3)
除非Windows本身阻止您这样做,否则根本无法阻止Windows应用程序打开任何类型的文件。例如通过文件权限等。这是无用的。即如果您可以执行该应用程序,您可以打开并阅读它,因为您需要能够执行该操作。基本上你的程序是一个文件,操作系统就这样对待它。
由于您的目标是防止盗版或窃取您的软件,我听过的一个选项是将常规的程序有效性检查放入代码中。
大多数黑客只会规避早期检查以使其运行起来,但如果您的检查分散在整个代码中,那么黑客就更难以规避这些检查。
另一种选择是使用加密狗。据我所知,您的程序在运行时由软件或加密狗加密和解密。但是,在某些时候,它在内存中,因此内存转储将获得该软件。
您可以做的最好的事情是让代码变得非常困难。但这并非不可能。
不容易被盗的软件的终极版本是不能在您的PC上运行的软件。例如基于网络的服务。
顺便说一句,在评论中描述的自我破坏或擦除硬盘的软件在大多数国家可能都是非法的。
答案 1 :(得分:0)
应该可以通过在Windows中配置审计进程跟踪来确定上次运行应用程序的时间。以下链接可以帮助您入门:
进程跟踪将在Windows事件日志中创建条目,然后您可以使用C ++,C#和/或VB.Net进行访问。
通过这种方式,您可以查看某个程序是否正在运行(与您的程序发生冲突)并退出您的应用程序。
修改强>
注意:我确实知道如何杀死进程,但只有在运行时才有效 该计划目前正在开放我想要的是防止程序 即使程序没有运行,也可以打开/读取.exe
您需要使用诸如Salamander protector
之类的工具 - .NET保护程序是一种为您的.NET代码提供真正保护的技术。与通过符号重命名使反编译更加困难的混淆器相比,RemoteSofts保护器完全停止MSIL反汇编和反编译。使用此工具,您可以放心,没有人能够窃取您的源代码。使用此工具,您不再需要担心Microsoft .NET平台的一个令人头痛的问题 - 反编译。