我已经写了一个程序,是一个非官方的、独立的插件对于一个应用程序。它允许用户获得的服务的价格较低的替代然后供应商所拥有的一个。我的程序不是非法的,对任何种类的服务条款,并且肯定不是一种病毒,广告,或者类似的东西。这就是说,供应商当然是不高兴我把他的竞争,并试图阻止我的应用程序的运行。

他已经尝试了一些战术阻止人们从我的应用程序的运行,同时他的.他使它如此,如果它被检测到,他应用程序抛出虚假错误。

第一,他检查,看看如果我的计划是运行,寻找一个开放的窗口,用正确的标题。我反对这种通过随机的程序的标题,在启动时。

接下来,他看上去运行的进程名称。我反驳这一应用程序的复本身当它开始是作为[随机的字符串的].exe和随后运行的。

不管怎么说,我的问题是这个:还有什么他可以做为检测,如果我运行的程序?我知道,你可以读窗口文本(即状态吧,标签)。我准备好对付这种通过更换标签的图像(呃,任何其他办法?).

但还有什么?你可以检测是什么。dll一程序已载入?如果是这样,这可能是解决通过随机的dll名在装货之前他们吗?

我知道,它是能够获得程序的签名存储器,并跟踪这种方式(如病毒扫描仪),但他的机会这样做可能是不好的,因为这听起来很先进。

虽然这是有点蹩脚的他可以做的,它的那种乐趣。它就像一个书呆子的拳头的斗争。

编辑: 当我说这是一个插件,这仅仅是(不正确的)期我使用。它是一个独立的EXE。"API"之间的我的程序和其他是我的就是简单数据输入控制(如文本框等)。

有帮助吗?

解决方案

我觉得有点肮脏回答这个问题,但现在已经很晚了,我正在等待驱动器副本完成......

他可以使用校验和来识别您的可执行文件/ dll。这解决了重命名技巧。

你可以通过在开始时随机修改程序中的位来解决这个问题(例如,更改资源,使用嵌入式版本等等)。

如果我是他,我也会开始寻找网络流量模式;例如,如果您将客户引导到竞争对手,那么您正在从某个地方查找该信息,以便在插件访问黑名单中的网站时终止该进程和/或卸载该库。

如果你把猫和老鼠的游戏放得足够远(例如,如果它被删除就会重新创建你的可执行文件/库),你可能会被防病毒软件标记为病毒。

其他提示

不太适合你的竞争对手。

将项目部署为未编译的加密源代码。编写一个解密和部署程序,可以随机化,重命名类,重新安排代码以避免任何特定的签名检测。

然后使用CSharpCodeProvider在客户端计算机上编译代码以编译代码。您可以使用完全随机的函数签名生成随机程序集(我建议使用大型的真实,常见,单词字典而不是完全随机。您可以将它们连接在一起以获得更多乐趣。例如,实时,虚拟,空间,办公室,网络, Utility.Space.Live.Network.dll,Utility.Virtual.Live.dll)。

每个客户端上的每个版本的程序都会有所不同。确保隐藏部署程序。也许它应该在安装自定义版本后自行删除。

不管怎么说,我的问题是这个:还有什么他可以做为检测,如果我运行的程序?

  • 是你的节目EXE或DLL?
  • 你叫一个插件:什么堵在?
  • 你是怎么程序开始推出/逃跑吗?
  • 什么是你的节目做到"插在"?
  • What's API之间的程序和其他程序?

这不是你最后一个问题的答案,而是所描述问题的答案。

如何修复其他应用程序。 找到它在标题中寻找的字符串并更改其中的一些字母。

让您的客户知道问题所在,方法是向他们提供另一个应用程序而非您自己的应用程序。

@ryeguy ...最好的防守是一个很好的进攻imho。尽可能在禁用你的进程之前禁用他的进程。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top