美文网首页
对Perl程序源代码进行编译与加密

对Perl程序源代码进行编译与加密

作者: dulunar | 来源:发表于2020-09-10 08:34 被阅读0次

前言

一直以来,写了一些基于Perl的实用脚本,但是会传播扩散,这样子后期如果被随意篡改或者售卖造成一些纠纷,于是需要对一些Perl程序源代码进行编译和加密的处理。

解决方法

现在常用的方法有三个:使用Perl自带的perlcc工具、perl2exe、PAR(Perl Archive Toolkit);

安装上面的这些模块,我一般使用cpanm进行安装,这是因为cpanm是安装Perl module的最方便的方法。自动下载安装依赖包。使用CPAN shell或下载源码包安装模块,遇到大量依赖关系,非常头痛。

安装cpanm

mkdir -p ~/perl5
wget -O- http://cpanmin.us | perl - -l ~/perl5 App::cpanminus local::lib
eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`
echo 'eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`' >> ~/.bashrc
echo 'export MANPATH=$HOME/perl5/man:$MANPATH' >> ~/.bashrc
echo 'cpanmL="cpanm -v --notest -l ~/perl5"' >> ~/.bashrc

perlcc工具

安装perlcc

cpanmL B::C

perlcc只能作用于一个perl文件,但是如果程序中有perl包,就会出现点问题,解决办法是把所有的源代码copy到一个文件,取消所有的package定义,把原来不同package下面同名的函数改名,不同的package里面的同名全局变量也要改名。然后

perlcc -o hello hello.pl

Perlcc的原理是把perl程序转换成C程序,然后用GNU C编译器编译。但是perl5.10.0版本后移除perlcc。还有就是perlcc命令可能对perl代码编译不成功,或成功后不能正常运行(实测)。

perl2exe

perl2exe,据说很好用,但令人沮丧的是要license, 而且据说跨平台还有问题。
我没有试过,这里标记一下先。

PAR

安装pp和PAR

pp 模块用于perl程序源代码的编译和打包:https://metacpan.org/pod/pp
PAR 模块用于perl程序源代码的编译和打包:https://metacpan.org/pod/PAR

cpanmL pp
cpanmL PAR
cpanmL PAR::Filter::Crypto

编译和加密

echo 'ppS=pp -f Crypto -F Crypto -M Filter::Crypto::Decrypt' >> ~/.bashrc
ppS -o hello hello.pl
                                —— dulunar 后记于 2019.12

相关文章

  • 对Perl程序源代码进行编译与加密

    前言 一直以来,写了一些基于Perl的实用脚本,但是会传播扩散,这样子后期如果被随意篡改或者售卖造成一些纠纷,于是...

  • Virbox Compiler -安全编译器——实现源代码编译过

    Virbox Compiler -跨平台编译器——实现源代码编译过程的加密。加密后程序不会报毒,可实现免杀。 这是...

  • Python程序加密打包

    1、Python源代码加密为Pyd(类dll,so等动态链接库) 步骤:1、使用此文程序编译python源程序为p...

  • 简介

    perl擅长处理文本,其程序即源代码。perl程序也只是一个纯文本文件。一个最简单的perl程序 在执行前需要改一...

  • 包-生成jar文件

    1、对程序进行编译与打包处理: 对程序打包编译:java - d . Message.java; 此时会形成cn的...

  • IOS #define和预编译指令

    预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。可见预处理过程先于编译器对源代码进行处理。 ...

  • 计算机语言:编译型/解释型、动态语言/静态语言、强类型语言/弱类

    1、编译型和解释型 编译型 编译 编译型和汇编语言是一样的:也是有一个负责翻译的程序来对源代码进行转换,生成相对应...

  • Android app安全性能测试

    1.安装包测试 (1)能否反编译代码(源代码泄露问题): 开发:对代码进行混淆;测试:使用反编译工具进行查看源代码...

  • C++从编译到生成可执行文件的流程

    流程概况:将源代码转换成机器可识别代码的过程,编译程序读取源代码,对他进行词法和语法的分析,将高级语言转化为功能等...

  • note_6.2_shell脚本编程

    编程语言的分类:根据运行方式 编译运行:源代码 --> 编译器 (编译)--> 程序文件; 解释运行:源代码 --...

网友评论

      本文标题:对Perl程序源代码进行编译与加密

      本文链接:https://www.haomeiwen.com/subject/ljimsktx.html