我的APT(Anti-Paching Technology)逻辑如下......
1)在MSSQL服务器上存储可执行文件的md5哈希以进行保护.
2)执行md5比较(在我的应用程序启动期间)服务器上找到的哈希,以及可执行文件本身.
3)如果比较失败退出应用程序静默.
以上所有这些都在它最终被挖走之前!
我的意思是什么是保护文件不被修补的最佳方法?不使用现成的工具(.net reactor,virtualizer等)
编辑:其他东西刚刚进入我的脑海.
有没有办法检查服务器端的应用程序完整性?我的意思是我的应用只能在线工作.我可以在服务器(我的域)上执行一些可以检查应用程序完整性的东西吗?
就文件权限而言,当您使用php脚本解压缩tar文件时,谁是创建文件的"所有者"用户?
我想知道它是否是我的ftp用户,因为我上传了脚本文件?或者apache拥有该文件?我知道他们的标志是为了保留我不想要的原始权限(由其他人创建和存档的文件).我希望我的用户成为文件的创建者/所有者.
PS它是一个云环境.以下是我上传的代码.我通过在浏览器中访问该页面来执行.我可以在Dreamweaver中更改文件权限...这是否意味着我是所有者?
exec('wget http://wordpress.org/latest.tar.gz');
exec('tar -xzvf latest.tar.gz');
我试图谷歌搜索这个问题,发现许多人有同样的问题,但没有解决方案.
$result = exec("C:\\Ruby191\\bin\\lessc.bat less\\$file", $output);
Run Code Online (Sandbox Code Playgroud)
这result是一个空字符串和output一个空数组.同样的事情:
$result = exec("cmd /c C:\\Ruby191\\bin\\lessc.bat less\\$file", $output);
Run Code Online (Sandbox Code Playgroud)
我确信路径是正确的; 我确信exec()已启用.
我试过exec,shell_exec,system和没有工作.
lessc是较少的CSS.
编辑
apache错误日志说:
'"ruby.exe"'无法识别为内部或外部命令,可运行程序或批处理文件.
我知道在执行可能返回非零的命令时使用catch很常见......但是在这种情况下如何获得输出?
具体来说,我希望做一些像"catch {exec diff fileA fileB} ret"这样的事情.文件是不同的,ret值是1.我实际需要的是diff的输出,详细的差异.但我相信"捕捉{exec ...}错误"的做法并没有提供它,对吗?
有人可以建议这个任务吗?是否有tcl-builtin命令来做文件差异?(我认为可以将输出重定向到文件,然后读取文件......还有其他选择吗?)
谢谢!XM
我花了几个小时在谷歌上仍然找不到一个PHP文档解释这个.有人能指出我正确的链接吗?从SVN获得此代码:
<?php
echo `snv up`;
Run Code Online (Sandbox Code Playgroud)
我无法理解的一件事是`标记......它不是引号......它是qwerty键盘上最左上角的键.
似乎这将执行"svn up"作为shell命令,但是与exec("snv up")有什么不同呢?有人能指出我可靠的解释来源吗?

我有一个产生多个进程的程序,我想通过在进程完成时捕获PID来记录进程完成的顺序。据我所知,标准回调不包含PID(stdout,stderr和error)。
我想避免使用spawn,但是除非有任何善良的主意,否则我将不得不这样做。
提前致谢。
编辑:
澄清:
var child = child_process.exec(..., function() {
console.log( child.pid );
});
Run Code Online (Sandbox Code Playgroud)
不适用于多个进程。这将返回最后一个过程,而不是触发回调的过程。
尝试回答使用Bash/Perl根据每个文件的名称修改文件我结束了一个我不知道如何使用find和sed一起使用的点.
假设存在某种文件结构,我们想要更改一行,附加文件名.
如果是正常for循环,我们会这样做:
for file in dir/*
do
sed -i "s/text/text plus $file/g" $file
done
Run Code Online (Sandbox Code Playgroud)
但是,假设我们想要find用来更改所有子目录中的文件.在这种情况下,我会用...
find . -type f -exec sed -i "s/text/text plus {}/g" {} \;
^
it does not like this part
Run Code Online (Sandbox Code Playgroud)
但这些{}内sed是不能接受的,我得到的错误
sed:-e expression#1,char 20:`s'的未知选项
我发现了一些类似的问题(1),但在这种情况下,我无法将其概括为足以让我理解.
我相信你们会为此提供一个很好的解决方案.谢谢!
所以我看了类似的问题,我找到了一些解决方案,但我不知道如何做到这一点.
我想要做的是从字符串向类中添加一个方法.我可以使用该setattr()方法执行此操作,但这不会让我self在额外方法中用作属性.这是一个例子:(我为变量名称道歉,当我嘲笑一个想法时,我总是使用yolo)
class what:
def __init__(self):
s = 'def yolo(self):\n\tself.extra = "Hello"\n\tprint self.extra'
exec(s)
setattr(self,"yolo",yolo)
what().yolo()
Run Code Online (Sandbox Code Playgroud)
返回:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: yolo() takes exactly 1 argument (0 given)
Run Code Online (Sandbox Code Playgroud)
如果s = 'def yolo():\n\tself.extra = "Hello"\n\tprint self.extra'
那时我得到这个结果:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 2, in yolo
NameError: global name 'self' is not defined
Run Code Online (Sandbox Code Playgroud)
这实际上意味着我不能动态地为类创建方法,我知道这是不好的做法和unpythonic,因为这些方法无法访问类的其余部分可以访问的变量.
我感谢任何帮助.
我在Linux,A和B上有两个进程.我想从进程A与进程B共享文件描述符,现在我只是将它序列化为a char*并将其传递给execl参数,但这不起作用.
Ac看起来像这样:
union descriptor{
char c[sizeof(int)];
int i;
} fd;
pid_t pid;
fd.i = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
// Perform other socket functions
pid = fork();
if(pid == 0){
// Read data from socket
if(execl("./B", fd.c, NULL) < 0){
exit(EXIT_FAILURE);
}else(
exit(EXIT_SUCCESS);
}
}else if(pid < 0){
exit(EXIT_FAILURE);
}else{
waitpid(pid, NULL, 0);
}
Run Code Online (Sandbox Code Playgroud)
Bc看起来像这样:
union descriptor{
char c[sizeof(int)];
int i;
} fd;
memcpy(&fd.c[0], argv[0], sizeof(int));
write(fd.i, "TEST", 4);
close(fd.i);
Run Code Online (Sandbox Code Playgroud)
但这不起作用,我不明白为什么不.我怎样才能做到这一点?如果它的工作原理,它是经过共享父母和孩子之间的文件描述符的最佳解决方案fork和一个exec?
问题与我提出的问题无关,它是由@OliCharlesworth指出的传递整数的错误方式引起的.请关闭这个问题.
我需要你的帮助.目前我使用的是Mac OS X 10.9.4和xampp apache 1.8.3-3.我需要使用ffmpeg(版本3.2)通过PHP转换视频文件,exec()但我无法使其工作.我做了一些运行终端命令行的测试,系统正常运行.只在php中它不起作用.ffmpeg是通过brew编译和安装的.
我运行了以下测试:
exec("/usr/local/Cellar/ffmpeg/2.3/bin/ffmpeg -i /Applications/XAMPP/xamppfiles/htdocs/teste/trailer.mp4 /Applications/XAMPP/xamppfiles/htdocs/teste/trailer2.flv 2>&1", $o, $v);
var_dump($o);
var_dump($v);
Run Code Online (Sandbox Code Playgroud)
并得到以下:
array(4) {
[0]=> string(51) "dyld: Symbol not found: __cg_jpeg_resync_to_restart"
[1]=> string(82) "Referenced from: /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO"
[2]=> string(63) "Expected in: /Applications/XAMPP/xamppfiles/lib/libJPEG.dylib"
[3]=> string(67) " in /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO" } int(133)
Run Code Online (Sandbox Code Playgroud)