Regex 如何使用不可注册版权的可执行代码?

Regex 如何使用不可注册版权的可执行代码?,regex,perl,source-code-protection,Regex,Perl,Source Code Protection,我在想办法。这种想法可以——以某种形式——允许我在Perl代码中到处添加难以删除的版权注释,这样几乎难以辨认,并且很难使用正则表达式删除——代码仍然是可执行的 正如下面一位评论者所指出的,以下技巧可应用于任何此类正常技术: perl -MO=Deparse obfuscated.pl > plaintext.pl 也许这里有人能找到解决办法。正如评论中所指出的,删除所有评论很容易 你要做的是以一种明确无误的方式留下你的商标。你可能想尝试一下。我的贡献,很容易解决,但可能会绊倒一个草率的

我在想办法。这种想法可以——以某种形式——允许我在Perl代码中到处添加难以删除的版权注释,这样几乎难以辨认,并且很难使用正则表达式删除——代码仍然是可执行的


正如下面一位评论者所指出的,以下技巧可应用于任何此类正常技术:

perl -MO=Deparse obfuscated.pl > plaintext.pl

也许这里有人能找到解决办法。

正如评论中所指出的,删除所有评论很容易


你要做的是以一种明确无误的方式留下你的商标。你可能想尝试一下。

我的贡献,很容易解决,但可能会绊倒一个草率的代码窃取者:如果版权声明被篡改,会在代码中引入微妙的bug

例如:

sub square_root {
    my $arg = shift;
    return sqrt($arg + 0.1 * apply_fudge_factor());
}

sub apply_fudge_factor {
    return 8410 != unpack("%32W*", ($::D//=join'',<DATA>));
}

print "sqrt(9)=",square_root(9);

__END__
=head1 NAME

my_program.pl - a program by me, and not by you

=head1 AUTHOR

Copyright (c) 2014 by Me

=cut

有意为你的作品争光的人可能不会再三考虑删除你的版权声明,无论你如何添加它们。实际上,您遇到了一个更大的问题,代码很难解决这个问题

也就是说,我曾经使用的一个技巧是使用十六进制编辑器将文本添加到我的应用程序使用的JPEG图像的末尾。许多程序只是忽略了这些额外的信息,因为这些信息是在通常的EXIF字段之外添加的,所以单独使用图像编辑器很难检测到,尽管文本搜索可以在使用容易识别的文本时找到它们。有关更多信息,请参阅以下链接


另一种选择是,如果您在Windows系统上,将数据加载到称为“备用数据流”的东西中的老把戏。

我正在与一位我见过的人合作,他因自己的工作以外的工作而获得荣誉。说来话长。只要它有我的名字并且清晰易读,这个表达可能看起来很奇怪。有趣的是,如果版权的每个实例都是根据某种算法以不同的方式编写的。比如,也许我可以制作一个代码处理程序,接收我的代码,然后吐出一个完全“随机”但仍然执行的副本纠正混乱。你在寻找一个社会问题的技术解决方案。如果你真的想要防弹的东西,请向(或在你居住国的同等机构)注册你的版权。在网上注册一件作品似乎要花35美元。当然,如果此代码是为您的雇主编写的,他们可能已经有权使用此代码。如果是这样的话,也许你应该向你的老板咨询一下,担心你的代码会被你的同事偷走。不要大吹大擂,但不管文件中有多少注释,你仍然可以做
perl-MO=Deparse obfuscated.pl>plaintext.pl
,这相当简单,不太晦涩,我在想这个漏洞。。。也许它不必是注释?就像一个无用的变量声明。嗯,也许不是。我希望它能节省内存等等。是的,我读过这篇文章。事实上,我是第一次听说它的。我很好奇,这是什么“老把戏”?我只是在和一个熟人打交道。他问我是否可以用我的一些代码来处理他自己代码中正在处理的东西。我猜这就像是一个木匠大师,在一座豪宅里,做着所有华丽而细致的装饰、栏杆、橱柜等等,这座豪宅的主人后来声称,华丽的某些方面是他自己做的。。。或者别的什么。。。它有点像木匠的心脏,不是吗?也许看到“备用数据流”的最佳方式是使用记事本在某处创建一个名为“text.txt”的文件,然后添加一些文本并保存它。接下来,使用记事本在同一位置创建名为“text.txt:SomeOtherFileStream”的文件。注意冒号,这是重要的一点。添加一些文本并保存它。打开“text.txt”,查看您键入的第一位文本。打开“text.txt:SomeOtherFileStream”并查看其他文本。2个数据流,但仅显示一个文件。将文件复制到另一个位置,两个流都会复制。请记住,这是特定于NTFS的,如果将文件复制到其他文件系统,则不会起作用。此外,许多应用程序不知道这些其他文件流,如果用于将数据传输到其他系统,则会在遇到这些文件流时忽略它们。无论上述版权声明如何,Stack Exchange网站上的所有内容(包括示例代码)都是根据Creative Commons Attribute Share sample许可证授权给Stack Exchange的。
sqrt(9)=3.01662062579967