【怎样修改php源码】【顶部html源码】【ptb源码分析】编译perl源码_perl 编译器

来源:酒店管理 php源码

1.perl官网上binaries和source的区别
2.perl是编译编译什么?
3.perl如何避免反编译
4.如何交叉编译perl

编译perl源码_perl 编译器

perl官网上binaries和source的区别

       binaries“二进制文件”的意思Source“源”的意思即:binaries是项目开发时使用文件,source是源码的意思,也就是可以查看到源文件源码,有助于更好的理解。至于source也就是经验丰富的元老能看明白,一般我们只使用binaries文件。

perl是什么?

       Perl是一种功能丰富的计算机程序语言。strawberry perl是源码Perl语言的编译器。

       Strawberry Perl是编译编译用于MS Windows的perl环境,其中包含运行和开发perl应用程序所需的源码一切。 它被设计为尽可能接近UNIX系统上的编译编译perl环境。

       它包括perl二进制文件,源码怎样修改php源码编译器(gcc)+相关工具,编译编译所有外部库(加密,源码数学,编译编译图形,源码xml等),编译编译所有捆绑的源码数据库客户端以及对Strawberry Perl的期望。

       在Linux和大多数类似UNIX的编译编译系统(包括Mac OS X)下,perl与系统一起安装。源码 Windows有两个可用的编译编译版本:Strawberry Perl和ActivePerl。

       编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。

       一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)

扩展资料:

       Perl借用了C,sed,awk,shell脚本语言和许多其他编程语言的功能。它最重要的顶部html源码功能是其集成的正则表达式功能和庞大的第三方代码库CPAN。

       简而言之,Perl像C一样强大,并且像脚本描述语言(如awk和sed)一样方便。 Perl语言爱好者将其称为“一种拥有各种语言功能的梦幻脚本语言”和“ Unix中的王牌工具”。

       编译是从源代码(通常是高级语言)到目标代码(通常是低级语言或机器语言)的转换过程,可以由计算机或虚拟机直接执行。

       但是,也存在从低级语言到高级语言的编译器。在这种类型的编译器中,用来从由高级语言生成的ptb源码分析低级语言代码重新生成高级语言代码的又被叫做反编译器。也有从一种高级语言生成高级语言的编译器,或生成需要进一步处理的中间代码的编译器(也称为级联)。

       

       百度百科-perl

perl如何避免反编译

       为了保护Perl源代码,常用的有三种方法。

       1.

       使用Perl自带的perlcc工具。这个工具有一个最大的弱点:它只能作用于一个perl文件。假如你和我一样写了十几二十几个perl包,主程序里倒是空空如也,估计要郁闷死。用也是班级助手源码可以用的,就是要把所有的源代码copy到一个文件,取消所有的package定义,把原来不同package下面同名的函数改名,不同的package里面的同名全局变量也要改名。然后

       $perlcc -o hello hello.pl

       得到可执行程序hello. Perlcc的原理是把perl程序转换成C程序,然后用GNU

       C编译器编译。它在Windows上也可以用,但需要额外安装C编译器,比如Intel C或者MS Microsoft Visual

       C。由于perlcc把代码先变C再变可执行程序,怎么发送源码反编译出来的源码很难看懂,所以安全性很高。但是把所有的代码写一个文件,模块也不能用了,这简直是从地铁时代回到乌蓬船时代,我想不会有人觉得舒服。何况这样混杂后的代码该如何维护升级和做版本控制呢,头大。另外,perlcc有申明,不保证它编译出来的东西能用(参见$perldoc

       perlcc)。我没遇到这个情况,而是遇到了perlcc直接就对我的程序编译不通过,没戏唱了。{ ..更新:找到perl不能编译我的程序的原因了:1.

       只能用use 不能用require,模块文件名的后缀都改成.pm, use后跟不带后缀的文件名就可以。2.

       所有的全局数组,必须用my, our,

       或者local来定义,不可以用缺省作用范围。第二点其实应该是perlcc的一个bug了,因为关联数组和简单变量都没有这个问题。}

       2. perl2exe,据说很好用,但令人沮丧的是要license, 而且据说跨平台还有问题。

       3. PAR(Perl Archive Toolkit)。这个命名法则是类似于JAR(Java

       Archive)。下载下来以后还要从CPAN上下载一些依赖性模块。CPAN模块果然好装,每个模块都是

       $perl Makefile.PL

       $make

       $make install

       就能装好。最后安装PAR。装好以后会在/usr/bin/下面添加一些工具。我不关心别的,就要用pp:

       $pp -o hello hello.pl

       这样生成的hello就是可执行文件,而且把用到的perl模块文件也全打包进来了。运行的时候它会在/tmp/par-username/下生成一个叫

       cache-之类的临时文件夹,打开看看可以发现就是自己的源代码。这样不是没达到我想要的隐藏源代码的目的么?原来还需要启动过滤器:

       $pp -f Bleach -o hello hello.pl

       或者

       $pp -f Bytecode -o hello hello.pl

       前面的Bleach过滤器是PAR自己实现的,而Bytecode这种过滤方式是Perl的标准格式(需要Perl

       5.8.1以上版本支持)。过滤之后,临时文件夹里面的文件就不是简单可读了。当然是有办法crack,

       但这和恢复带初始变量名的源代码是两回事。

如何交叉编译perl

       å…ˆä¸‹è½½Perl源码:/projects/perlcross.berlios/files/, 下载版本是:perl-5..0-cross-0.3.tar.gz

       åˆ†åˆ«è§£åŽ‹è¿žä¸ªæ–‡ä»¶åˆ°åŒä¸€ä¸ªç›®å½•ä¸‹ï¼›

       1

       åœ¨ubuntu中安装 perlbrew:

     sudo apt-get install perlbrew

       perlbrew init

       source ~/perl5/perlbrew/etc/bashrc

       perlbrew install perl-5..1

       2

       3

       4

       5

       ç­‰å¾…perlbrew安装完毕;

       2

       3

       1

       åˆå¹¶ 两个解压出来的perl目录,进入perl-5..1的Cross目录中:

cp -rfv perl-5..0/*  perl-5..1/

       cd perl-5..1/Cross

       2

       1

       æ–‡ä»¶å†…容如下注意加了星号的内容:

### Target Arch

       ** ARCH = arm

**

       #ARCH = i-pc

       #ARCH = sh4

       #ARCH = mips

       #ARCH = mipsel

       #ARCH = ppc

       ## Specific arm

       **#CONFIG_TARGET_ARM_SAX0 = 1

**

       #CONFIG_TARGET_ARM_XSCALE = 1

       ### Target OS

       **OS = linux

**

       #OS = solaris2.8

       1

       ä¿®æ”¹perl的config文件

gedit Cross/config ##或者 vi gedit Cross/config

       2

       3

       4

       5

       6

       7

       8

       9

       

       

       

       

       

       

       

       ä¸Šé¢åŠ ç²—字体表示注意的或者修改的;

       ä¿®æ”¹å½“前目录(Cross目录)中的Makefile文件:

       å…ˆæ”¹å˜ä¸€ä¸‹ç›®å½•å†…容的权限:

       chmod /Cross/

*

       ä¿®æ”¹çš„Makefile文件内容:

   export TOPDIR=${ shell pwd}

          include $(TOPDIR)/config

          export CFLAGS

          ** export SYS=arm-linux

**

          ** export CROSS=/stuff/bitbake/bin/tmp/sysroots/i-    linux/usr/armv7a/bin/arm-angstrom-linux-gnueabi-

**

          ** export LD_LIBRARY=/stuff/bitbake/bin/tmp/sysroots/i-linux/usr/lib:$(LD_LIBRARY_PATH)

**

          export FULL_OPTIMIZATION = -fexpensive-optimizations -fomit-frame-pointer -O2

          export OPTIMIZATION = -O2

          export CC = arm-angstrom-linux-gnueabi-gcc

          export CXX = arm-angstrom-linux-gnueabi-g++

          export LD = arm-angstrom-linux-gnueabi-ld

          export STRIP = arm-angstrom-linux-gnueabi-strip

          export AR = arm-angstrom-linux-gnueabi-ar

          export RANLIB = arm-angstrom-linux-gnueabi-ranlib

       

       make CC=arm-angstrom-linux-gnueabi-gcc ARCH=arm patch

       make CC=arm-angstrom-linux-gnueabi-gcc ARCH=arm perl

       ç¼–译会出错,但是没关系,会在根目录生成perl可执行文件;

文章所属分类:综合频道,点击进入>>