我的APT(Anti-Paching Technology)逻辑如下......
1)在MSSQL服务器上存储可执行文件的md5哈希以进行保护.
2)执行md5比较(在我的应用程序启动期间)服务器上找到的哈希,以及可执行文件本身.
3)如果比较失败退出应用程序静默.
以上所有这些都在它最终被挖走之前!
我的意思是什么是保护文件不被修补的最佳方法?不使用现成的工具(.net reactor,virtualizer等)
编辑:其他东西刚刚进入我的脑海.
有没有办法检查服务器端的应用程序完整性?我的意思是我的应用只能在线工作.我可以在服务器(我的域)上执行一些可以检查应用程序完整性的东西吗?
我有一个Java小程序,只能在Windows上运行.(它使用第三方COM对象;它不是跨平台的.)
有没有办法在Windows上将Java applet作为独立应用程序运行?
p = subprocess.Popen(args = "myprog.exe" + " " +
str(input1) + " " +
str(input2) + " " +
str(input3) + " " +
strpoints, stdout = subprocess.PIPE)
在上面的代码中,input1,input2和input3都是转换为字符串的整数.变量"strpoints"是任意长度的字符串列表.input1告诉myprog strpoints的长度.当然,当我尝试运行上面的代码时,我收到以下错误消息:
TypeError:无法隐式地将'list'对象转换为str
如何将strpoints的所有元素传递给myprog.exe?我注定要做str(strpoints)然后让myprog.exe解析这个逗号,撇号等?例如,
`>>> x = ['a','b']
`>>> str(x)
"['a','b']"
或者我应该提前创建一个巨大的字符串?例如,
'>>> x = ['a','b']
'>>> stringify(x)
'ab'
stringify会是这样的
def stringify(strlist):
rlist = ""
for i in strlist:
rlist = rlist + i + " "
return rlist
这可能是一个基本问题,但我想问,因为我不知道它.
如果我有一个二进制文件,它是在HP-UX上创建的,我突然在Linux上使用这个二进制文件,或者让我们说在AIX或sun solaris这样的任何其他平台上,如果我想查看二进制文件的详细信息,请参阅它是在哪个平台上开发的,我怎么能在任何平台上做到这一点?还是有一种通用的方式在unix的所有风格上做它?
我的目标是从VB.NET控制应用程序.没有API,我没有源,只有编译的EXE文件.有没有办法找到打开的应用程序,在应用程序中找到一个按钮,单击一个按钮,并知道它被单击?有没有办法在应用程序中读取文本框的内容?
对我来说,在EXE中存储一些文件以复制到选定位置实际上很有用.我正在生成HTML和JS文件,需要复制一些CSS,JS和GIF.
片段
System.IO.File.WriteAllBytes(@"C:\ MyFile.bin",ProjectNamespace.Properties.Resources.MyFile);
对我不起作用!
在"WriteAllBytes"上,它说:"无法从'System.Drawing.Bitmap'转换为'byte []'"用于图像,"无法从'string'转换为'byte []'"用于文本文件.
救命!
更新:解决方案如下.
假设我有一个用C#编写的应用程序,名为EquipCtrl.exe,它在PC上作为本地进程运行,以控制一台设备.
显然,我希望在每台PC上只运行一个Equipctrl实例.如果我有两个装备来控制每台PC,那么我会将它限制为每台PC两个实例.
我做的方式是1.进程名称之一.我将进程命名为EqCtrl,在进程启动时,它将使用名称"EqCtrl"计算数字进程.2.执行名称.在启动时,使用执行名称EquipCtrl.exe计算进程数.3.登记处记录.4. SQL Server数据库记录.
对我来说,进程名称或执行名称检测是最简单的,也是我最常做的(如果不是全部的话).但是,他们容易受到名字冲突的影响.即使我进一步找出执行路径,也可以通过将执行文件复制到另一个文件夹来规避限制.
在.NET上执行执行限制的最佳方法是什么?为什么?注册表记录是最好的方式吗?
我有一个VB6可执行文件,我们用作真实程序的Starter可执行文件.
问题是Windows 7在任务栏中为新进程显示一个新图标,而不是我点击启动我的程序的那个(当然,因为启动程序exe已经结束,而新的exe似乎是一个新的程序).
目前我使用Shell对象启动另一个exe.是否有更好的方法从vb6执行此操作,可能通过使用具有声明的本机C函数,该函数在当前进程中启动exe,而不会生成新进程?
编辑:
感谢atzz提供有关应用程序模型ID的重要信息.我现在有一个快捷方式,我的应用程序启动器具有良好定义的ID,我的应用程序也在启动时设置ID,现在可以从工具栏中的右侧图标精美地访问.但是,仍存在两个问题:
该应用程序是一个以Exe4J开头的Java应用程序,在Exe4J显示启动画面之前我没有任何机会设置AppID,因此在显示启动画面时,任务栏中有第二个图标.
如果我没有手动将我的入门应用程序图标从桌面拖到工具栏,而是使用我的应用程序图标并将其设置为"粘性",则真正的应用程序会被粘贴,而不是启动器.
如果我的启动器会在自己的进程中启动应用程序,那么这两个问题都会得到很好的解决.我听说过使用exec()而不是fork()来实现Linux程序...是否有类似于Windows的东西?
我有以下代码片段:
<html>
<head>
<title>Example of Very First PHP Script ever!</title>
</head>
<body>
<script>
function comexe(){
C:\Program Files\Notepad++\notepad++.exe C:\Documents and Settings\User\Desktop\file.txt
}
</script>
<a href="return false;" onclick="comexe()">music</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如何从HTML运行另一个程序?我究竟做错了什么?
一世
我想将此默认图标更改为我想要的图标.这该怎么做 ?我搜索并找到了Windows的解决方案如何在基于Qt的项目中设置应用程序图标?但不适用于Linux.
我试图通过设置Icon = myPath/icon.icon或icon.PNG使用.desktop文件来做到这一点但它不起作用.知道如何做到这一点?