php做为一门当下非常流行的web语言,常常看到有人求解密php文件,想当年的asp也是一样。一些人不理解为什么要混淆(加密),甚至鄙视混淆(加密),在我看来混淆加密代码可以用来防一般的小人,会起到一定的保护作用。
. F8 R. _! V( _- V2 o* E' i0 X
* Y3 q; n' W2 r b) y, H' L/ d加密的原因:
0 }: m! U. J- t
2 b0 @' I& D( x4 f8 L6 l8 u6 c1. 保护代码,防止别人剽窃
: @$ }3 m9 J6 t# {0 D" b |- O) j! f4 ~- D% z
2. 保护文件,防止别人发现/查杀(php木马 or 后门)
( p. v( B# e; p% F5 M& c! h) o! ~% k) a$ Z1 B$ r1 E! [; Y
3. 剽窃了他人代码防止被发现
3 x' K, {7 P1 |2 f: C2 D9 d
- W9 K+ W; y% q6 b+ H% ]4. 其他商业或非商业目的
D' X9 E" c) ?/ G* w& J6 v# b
+ W: J/ K, x. @6 ~我一直都比较关注代码的加解密,从简单eval base64,gzcompress,gzinflate 到 威盾,Zend Guard加密,到近期比较流行的一种二进制(unicode乱码)加密,如 phpjm,phpdp神盾。对比这几种加密方式。
2 M4 f( q: h5 l! p& y7 ] v5 t7 C% _- |6 l
第一种加密方式,就是简单的使用函数encode代码之后,再eval(decode('encode的代码')),解密非常简单,直接把
1 R& q$ u# {. E j* t4 |& }: X$ M' _) U' O, y. [" N
本帖隐藏的内容
5 }4 v/ a' m9 n3 G4 J
eval替换成exit即可输出源代码,如果经过多层加密,就继续替换下去...
1 z5 `- X8 P# Q! p( G$ z( E0 B* r7 P; \8 M/ \3 K1 l2 W
eval(base64_decode('PD9waHAgZWNobyAndHh0Y21zLmNvbSc7Pz4='));
! {% u4 r& b8 k/ _3 Z9 b3 o2 Q. X2 D' Y6 {. O9 m
解密难度:★☆☆☆☆
% K) a( N/ Z5 b) I% k# M# V7 y. @" G+ R" ?
第二种威盾加密,做为第一种方式的升级版,即把之前的base64之类的系统内置函数变成了匿名函数。解密
5 k7 u; V8 w, E2 ~1 i" J+ W
3 ^$ H" Y1 l4 v! O6 K3 E* G9 G( w+ [本帖隐藏的内容
; @! E/ A9 B/ U+ \& B6 G n5 `也是一样把eval替换成exit即可。
4 v' ?/ v9 j$ p
) M9 U0 i3 U! ?4 Q
$OOO0O0O00=__FILE__;$OOO000000=urldecode('%74%68%36%73%62%65%68%71%6c%61%34%63%6f%5f%73%61%64%66%70%6e%72');$OO00O0000=28;$OOO0000O0=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5};$OOO0000O0.=$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16};$OOO0000O0.=$OOO0000O0{3}.$OOO000000{11}.$OOO000000{12}.$OOO0000O0{7}.$OOO000000{5};$O0O0000O0='OOO0000O0';eval(($O0O0000O0('JE9PME9PMDAwMD.//......省略
/ `5 D- O5 |% ]7 v& m f3 M7 g7 n
0 }* \ ]4 h' l解密难度:★★☆☆☆
0 b7 D) \& d; Y2 ^* Z7 ?/ G' _0 w
* B ?8 B8 U/ x3 c) d
第三种Zend Guard,
- C, z+ o; a$ u. J4 F9 E2 G) ]6 ^8 w
本帖隐藏的内容
2 x% W& i6 ?' n1 g# c
这种加密方式无法像前面一样手动解密。需要用到工具,如:dezender黑刀。 目前我知道的就只有php4~php5.2的可以被此工具解密出来,解密出来的变量或函数可能比较丑像$_obfuscate开头,因为经过混淆了。不过如果在php代码里加上一句代码,可使该程序溢出导致解密失败。
; _4 K) z$ O8 N, i* m2 B: q@Zend; 3074; 以下省略乱码
- [+ W, K7 |: r# {0 I# Q& A6 N解密难度:★★★★☆
! y' n* t$ I+ J1 m% X/ \% K
; \& m9 r9 r5 e) f6 v
第四种二进制(unicode乱码)加密,如phpjm,phpdp神盾。这种加密方式其实也是威盾的升级版,即把匿名函数字符串经过一系列的打乱分散处理之后,再把函数、变量、字符串替换成经过处理的unicode字符串。这样生成的文件就不能轻易的修改了。加大了解密的难度,解密方法也简单,就是替换掉那些变量和方法,使之成为正常的字符串,再exit即可。
) `- L) c1 L y# T" |4 Q: w" q2 M9 v+ D: I, t- `0 N/ ]
cb8ae577f0e1b634.png.网站教程深度解析php混淆加密解密的手段,希望对大家解读魔方加密有所帮助1免费在线下载-来自源码哥(ymg6.com)
, d0 d" C0 q; V& a; k/ T
' e5 `6 V/ T2 L+ l解密难度:★★★★☆
0 S3 C* J- Q# [
9 Q$ v+ _3 \+ g7 ~1 U总结:php无扩展加密无非用到的几个函数 eval , preg_replace使用e修饰符 , strtr , base64_decode。
+ n+ ]+ u% w) w, e0 a' p ]) E: f6 T
7 g& a) a( [; r+ `