關於這種php代碼加密(字元加密),原理與細節?

來源:互聯網
上載者:User

在研究某個程式的時候發現此段代碼

【xx.php】

100){                $‘×”›«Â¾‡();}eval($²´öÖ†ëŠ('D¢¢ÌŠŠ”DŠ¬àŠ¨¨Þ8’òà/ÆØâ¤Î°°ØØC¬ŒØ¨¢ÐØD¢Œè´¢ÎÈ–¨¤ªŠ¨¬4¤Að²˜ABæÈDªÎ='));!$…ìËô·Ó¬ÁøÄÅ($¨¬òÔÆÌ($¸ñ ôõÓÅ‹($¿¯Ò¹…œ·,$è°ô»¼»ö¨('¦¬²C'),$•Ô•Ûǯ¹ù('¦¬š='))),$»œÄÓê‚óÄ«($¸ñ ôõÓÅ‹($¿¯Ò¹…œ·,$ÐŽòµÚ–('¬A=='),$œáÓ¢Åü¿†('¦¬²B'))))?$––ÖË«¾Î׌×():$Ó‘Ì—˜Ÿœ;$›µüÂá²úÝñÙî = $¢”—Ùü('¦¬²ª¢==');$Šª‚Ôö‚ü¤ï = $Íü’ó†('¦¬²B');$Šª‚Ôö‚ü¤ï = $ËÖíëÌæÅÅÁ($”ÑŽ¨´ï˜($¸ñ ôõÓÅ‹($¿¯Ò¹…œ·,$›µüÂá²úÝñÙî,$Šª‚Ôö‚ü¤ï)));return $Šª‚Ôö‚ü¤ï;}function ƒˆãý¬Ý‡(&$‰úÞ••’¬Ø¤,$ÒͦõèÔѨÄ){            $²´öÖÂ†ëŠ = $è°ô»¼»ö¨ = $•Ô•Ûǯ¹ù = $¨ñ¯ Ú = $ÐŽòµÚ–='µÝÀ‚Ñö';$»¥³Ùœî¨¨¥óÇ = $²´öÖ†ëŠ('Œð´Œ Š¤ÊŒ¢¢Š');$ÂÁ’ôÔݸ = $è°ô»¼»ö¨('Œð´ŒŠ¬œ');$±ŸÊå¥ = $•Ô•Ûǯ¹ù('AðÐCD¬¬ÊDŠ¬ŒAB²¢');$²«¾¯Âì¸ = $¨ñ¯ Ú('Œð´ŒCÖ´CD¬¤ŠD¢A¢');$…éΟüÇ‹=$¨ñ¯ Ú('A¤àD1جBA==');$±ç«ßꢹ¹Ê = $»¥³Ùœî¨¨¥óÇ($ÂÁ’ôÔݸ($²«¾¯Âì¸($ÐŽòµÚ–('¦BBŽAª´DŠŽÞDªðÆŒCîî̤ÖÈ°¢¬ÖÂA’Š¤1BÄ°¤î¤Š¢ÎÈAªªŽÂªª¨ªŒ¤”ŒðÖ˜AØ´C¤ðØŠ°îàªÂªBŠ°ÖðCª¤ª+A¤²ŠŽ1´¦00ŽBÎ’BÔÞŽ¬Œ’¬ŒœžA0È°Ö´à¤1¬ÊŠ¢¢¦A¤¬AŒœBðØ¢BAæŠA¤Bàœ¢¬²¬Ø4ʪŒŒ¨°¬ÎŒ¨¢ADA0ªŠ¬1š¤ÂØA°Š¨î°ŽÖ¬ŽØ”ª¦Î”¤B5¨¬1ÈŠ¬îADž¢š¤¢¬¢°01¨ª¤ÆAAB8B¢1¬ÊŠªªŒ¬´²¬ðØ¢¤0ÈD¤ÎAŒ¤œ´¨1œŠŠ¤Ö='))));$Ïô¬ˆÇÍøÔ = $…éΟüÇ‹(',',$±ç«ßꢹ¹Ê);$‰úÞ••’¬Ø¤ = $Ïô¬ˆÇÍøÔ[$ÒͦõèÔѨÄ];}function Ç‘ ¡˜þÿÞË(){$Œ¼ÓÕŠ½÷ = '6f6e66723634';$ÃþÈôë×ùë = 'pa';$ŠíŒ«•¨à = '7374725f';$·÷Ǽ«¼ = 'H' . '*';$ÃþÈôë×ùë .= 'ck';$Œ¼ÓÕŠ½÷ .= '5f717270627172';$ŠíŒ«•¨à .= '726f743133';$…塵зì§ÝÕ = $ÃþÈôë×ùë($·÷Ǽ«¼, $ŠíŒ«•¨à);$Ãä “Åð¼â = $…塵зì§ÝÕ($ÃþÈôë×ùë($·÷Ǽ«¼, $Œ¼ÓÕŠ½÷));return $Ãä “Åð¼âÂ;}function µÝÀ‚Ñö($˜³ê˜½þ¾û†,$ÎÍꢿÆÃϦ = ''){            $Ç‘ ¡˜þÿÞË = Ç‘ ¡˜þÿÞË();$ÓûÛŸªÍ‹·Ã = $Ç‘ ¡˜þÿÞË('b3Jk');$°Ì½áˆ»Ò½ = $Ç‘ ¡˜þÿÞË('c3RybGVu');$Ãä “Åð¼â = $Ç‘ ¡˜þÿÞË('Y2hy');$ÎÍꢿÆÃϦ = !$ÎÍꢿÆÃϦ ? $ÓûÛŸªÍ‹·Ã('ˆ'):$ÎÍꢿÆÃϦ;$Éþ¼×¦Ä = $Ôñ¿ï˜«ë¢«;for (; $Éþ¼×¦Ä < $°Ì½áˆ»Ò½($˜³ê˜½þ¾û†);$Éþ¼×¦Ä++)$‡Š„Ï軤 .= $ÓûÛŸªÍ‹·Ã($˜³ê˜½þ¾û†{                $Éþ¼×¦Ä})<$ÓûÛŸªÍ‹·Ã('õ') ? (($ÓûÛŸªÍ‹·Ã($˜³ê˜½þ¾û†{                $Éþ¼×¦Ä})>$ÎÍꢿÆÃϦ && $ÓûÛŸªÍ‹·Ã($˜³ê˜½þ¾û†{                $Éþ¼×¦Ä})<$ÓûÛŸªÍ‹·Ã('õ'))?$Ãä “Åð¼âÂ($ÓûÛŸªÍ‹·Ã($˜³ê˜½þ¾û†{                $Éþ¼×¦Ä})/2):$˜³ê˜½þ¾û†{                $Éþ¼×¦Ä}):'';$Šª‚Ôö‚ü¤ï = $Ç‘ ¡˜þÿÞË($‡Š„Ï軤);$»œÄÓê‚óÄ« = $Ç‘ ¡˜þÿÞË('bWQ1');$Éþ¼×¦Ä = $Ôñ¿ï˜«ë¢«;$ÎÍꢿÆÃϦ = $»œÄÓê‚óÄ«('8_Q.L2');$ÓûÛŸªÍ‹·Ã = $ctrmax = $°Ì½áˆ»Ò½($ÎÍꢿÆÃϦ);for (; $Éþ¼×¦Ä < $°Ì½áˆ»Ò½($Šª‚Ôö‚ü¤ï);$Éþ¼×¦Ä++){                $ÓûÛŸªÍ‹·Ã = $ÓûÛŸªÍ‹·Ã ? $ÓûÛŸªÍ‹·Ã:$ctrmax;$ÓûÛŸªÍ‹·Ã--;$½ŒÙž½‰‹ðþÂà .= $Šª‚Ôö‚ü¤ï[$Éþ¼×¦Ä] ^ $ÎÍꢿÆÃϦ[$ÓûÛŸªÍ‹·Ã];}return $½ŒÙž½‰‹ðþÂà;}}}global $ŽåœõêÏÄÿ«¿, $¾¡ìÈüÇ›¼ö,$¸ñ ôõÓÅ‹,$“ûòú„—÷Ð,$Ç¢¢òüæ,$—±ÈÖ¤¡Ò,$ÀíÑýÖ¦Œ÷,$ÅË°îî,$¸öͲüçåŽÎÊ,$ÆÀÓù‹¥¢áûüÐ,$Æ•ªµã,$…ìËô·Ó¬ÁøÄÅ,$Ð’û˜ê–,$ËÖíëÌæÅÅÁ,$»œÄÓê‚óÄ«,$«ž‘Ä,$¤¨ÏÿÆØôØ´Àà;$‹ª’ÿùäݺ¿º = $šÐ±•¡¶åõ = $Ö¿…¤Å¼ = $¿’ÐàÍã…=$ƹï°ïû½¡µÕ = $ÎøÓÜöµüèÃäŒ = $ªû÷Ѽ¥òÙ = $Ý£ ûÿ = $£‚Ñ÷„æÒ–¼ = $§ª ó¡‡Ž = $Ž»üÆÛà = $¨Øƒ³ü¦ãìÓ = $¢ˆãÜâï = $ŠëÛâ½Ò = $Í䲫û¿ÆÉ = $–¤Ê½êï = $†Š‘ãºæ¯˜Îñ¹ = $˜Õ̡Ȧ‘†÷ = 'ƒˆãý¬Ý‡';if (!$ŽåœõêÏÄÿ«¿) {    $‹ª’ÿùäݺ¿º($ŽåœõêÏÄÿ«¿, 7);$šÐ±•¡¶åõ($¸ñ ôõÓÅ‹,8);$Ö¿…¤Å¼($—±ÈÖ¤¡Ò,9);$¿’ÐàÍã…($ÆÀÓù‹¥¢áûüÐ,4);$ƹï°ïû½¡µÕ($Æ•ªµã,12);$ÎøÓÜöµüèÃäŒ($…ìËô·Ó¬ÁøÄÅ,11);$ªû÷Ѽ¥òÙ($Ð’û˜ê–,2);$Ý£ ûÿ($ËÖíëÌæÅÅÁ, 13);$£‚Ñ÷„æÒ–¼($»œÄÓê‚óÄ«,14);$§ª ó¡‡Ž($«ž‘Ä,15);$Ž»üÆÛÃ($¤¨ÏÿÆØôØ´Àà, 16);$¨Øƒ³ü¦ãìÓ($ÅË°îî, 17);$¢ˆãÜâï($¸öͲüçåŽÎÊ, 18);$ŠëÛâ½Ò($ÀíÑýÖ¦Œ÷, 10);$Í䲫û¿ÆÉ($Ç¢¢òüæ, 5);$–¤Ê½êï($“ûòú„—÷Ð,6);$†Š‘ãºæ¯˜Îñ¹($¾¡ìÈüÇ›¼ö,1);$˜Õ̡Ȧ‘†÷($¶£ÝÇõŧ¡Ð, 3);}$²´öÖÂ†ëŠ = $è°ô»¼»ö¨ = $•Ô•Ûǯ¹ù = $¨ñ¯ Ú = 'µÝÀ‚Ñö';$É”úö„äÇ = $²´öÖ†ëŠ('žî¤Þ');$Šª‚Ôö‚ü¤ï = Òõ¶($$É”úö„äÇ);$«ž‘Ä($¤¨ÏÿÆØôØ´Àà($$É”úö„äÇ));$ÍÇÕ¥åëÈ×›¡õ = $¸öͲüçåŽÎÊ($Šª‚Ôö‚ü¤ï);$½ŒÙž½‰‹ðþÂà = $²´öÖ†ëŠ('A¤¤Dð5¨AŠ´¦ª1Š8A¢´¢1”¢Ž¤òà8žž°0œ395ÂìCØŠ9œ¢==');$½ŒÙž½‰‹ðþÂà = $ÅË°îî($è°ô»¼»ö¨('¦îAŽª1B¦ªðà¦'), $½ŒÙž½‰‹ðþÂà,$•Ô•Ûǯ¹ù('BØšB¬ªD'));$«ž‘Ä($¤¨ÏÿÆØôØ´Àà($$É”úö„äÇ));return $½ŒÙž½‰‹ðþÂà;//end?>1Œ¬ŠAЬ3Œî椎ðØÌ1”–¬Šœ¤¢ÖBĦŠ´œŠ¢¢Ê¢è˜Úê9ܬԜDæ7²°5ô9Â+ØèCÊìÖª°ŒB枌ÎÞšDŒîCŠîÈì ¤¬ŒŽªBŽ¢¤î° BÆ’¤¬”¤ªðØê–ÚÐôÆÈðŒ¤î¢¤Š4”C¬Î¤ŽB0¬¦ðªB01Īª8¦ŽBŒŠ¨Dæ4Œ¤²¬ŠÖŠ¬Š05DÒ6 Œ0470²/’ΠԲÐÄòÖ0´Ž˜3êÂÌDœ¦3Üè–àÜÞÄÞ64˜¢ØÞâê’Ê7ì4 44Š˜Ü’ ¤ä’äÈ2”D¬¬”¬Dð0ÌDA4A¦ØÆŒŒŒBBABèBð+˜0Æ7°Ô²Ä¨ì7CCâä°°àÄÔ¤Ò”êŽ7ìŽB97ŽÔâêŽì˜+D+Ê6A6´’¨î48šÖ¢°ŒÐ”°ªœ¬C25äŽ2ØÞCŒ0–DΔA¬Šª=Å2ؤ¦B¢9¦B1´¬ª¢´°BBŒBªªÎެؒDBØÈA¬¬¤B15È;

不用擔心,它可以正常執行,毫無違和感:

非常感謝eechen,sanix熱心回答;已經明白了,使用壓縮或者其它編碼方式使代碼難以閱讀。

更新下: 參考資料1,參考資料2;
對於這類php混淆加密,破解不是不可能;最主要是弄懂程式運行邏輯,破解都不用不是?至於網上免費的混淆加密,最好不要使用,自己隨便寫個還安全點,混淆最多就是增加別人窺視你代碼難度而已,不是窺視不了你。

回複內容:

在研究某個程式的時候發現此段代碼

【xx.php】

100){                $‘×”›«Â¾‡();}eval($²´öÖ†ëŠ('D¢¢ÌŠŠ”DŠ¬àŠ¨¨Þ8’òà/ÆØâ¤Î°°ØØC¬ŒØ¨¢ÐØD¢Œè´¢ÎÈ–¨¤ªŠ¨¬4¤Að²˜ABæÈDªÎ='));!$…ìËô·Ó¬ÁøÄÅ($¨¬òÔÆÌ($¸ñ ôõÓÅ‹($¿¯Ò¹…œ·,$è°ô»¼»ö¨('¦¬²C'),$•Ô•Ûǯ¹ù('¦¬š='))),$»œÄÓê‚óÄ«($¸ñ ôõÓÅ‹($¿¯Ò¹…œ·,$ÐŽòµÚ–('¬A=='),$œáÓ¢Åü¿†('¦¬²B'))))?$––ÖË«¾Î׌×():$Ó‘Ì—˜Ÿœ;$›µüÂá²úÝñÙî = $¢”—Ùü('¦¬²ª¢==');$Šª‚Ôö‚ü¤ï = $Íü’ó†('¦¬²B');$Šª‚Ôö‚ü¤ï = $ËÖíëÌæÅÅÁ($”ÑŽ¨´ï˜($¸ñ ôõÓÅ‹($¿¯Ò¹…œ·,$›µüÂá²úÝñÙî,$Šª‚Ôö‚ü¤ï)));return $Šª‚Ôö‚ü¤ï;}function ƒˆãý¬Ý‡(&$‰úÞ••’¬Ø¤,$ÒͦõèÔѨÄ){            $²´öÖÂ†ëŠ = $è°ô»¼»ö¨ = $•Ô•Ûǯ¹ù = $¨ñ¯ Ú = $ÐŽòµÚ–='µÝÀ‚Ñö';$»¥³Ùœî¨¨¥óÇ = $²´öÖ†ëŠ('Œð´Œ Š¤ÊŒ¢¢Š');$ÂÁ’ôÔݸ = $è°ô»¼»ö¨('Œð´ŒŠ¬œ');$±ŸÊå¥ = $•Ô•Ûǯ¹ù('AðÐCD¬¬ÊDŠ¬ŒAB²¢');$²«¾¯Âì¸ = $¨ñ¯ Ú('Œð´ŒCÖ´CD¬¤ŠD¢A¢');$…éΟüÇ‹=$¨ñ¯ Ú('A¤àD1جBA==');$±ç«ßꢹ¹Ê = $»¥³Ùœî¨¨¥óÇ($ÂÁ’ôÔݸ($²«¾¯Âì¸($ÐŽòµÚ–('¦BBŽAª´DŠŽÞDªðÆŒCîî̤ÖÈ°¢¬ÖÂA’Š¤1BÄ°¤î¤Š¢ÎÈAªªŽÂªª¨ªŒ¤”ŒðÖ˜AØ´C¤ðØŠ°îàªÂªBŠ°ÖðCª¤ª+A¤²ŠŽ1´¦00ŽBÎ’BÔÞŽ¬Œ’¬ŒœžA0È°Ö´à¤1¬ÊŠ¢¢¦A¤¬AŒœBðØ¢BAæŠA¤Bàœ¢¬²¬Ø4ʪŒŒ¨°¬ÎŒ¨¢ADA0ªŠ¬1š¤ÂØA°Š¨î°ŽÖ¬ŽØ”ª¦Î”¤B5¨¬1ÈŠ¬îADž¢š¤¢¬¢°01¨ª¤ÆAAB8B¢1¬ÊŠªªŒ¬´²¬ðØ¢¤0ÈD¤ÎAŒ¤œ´¨1œŠŠ¤Ö='))));$Ïô¬ˆÇÍøÔ = $…éΟüÇ‹(',',$±ç«ßꢹ¹Ê);$‰úÞ••’¬Ø¤ = $Ïô¬ˆÇÍøÔ[$ÒͦõèÔѨÄ];}function Ç‘ ¡˜þÿÞË(){$Œ¼ÓÕŠ½÷ = '6f6e66723634';$ÃþÈôë×ùë = 'pa';$ŠíŒ«•¨à = '7374725f';$·÷Ǽ«¼ = 'H' . '*';$ÃþÈôë×ùë .= 'ck';$Œ¼ÓÕŠ½÷ .= '5f717270627172';$ŠíŒ«•¨à .= '726f743133';$…塵зì§ÝÕ = $ÃþÈôë×ùë($·÷Ǽ«¼, $ŠíŒ«•¨à);$Ãä “Åð¼â = $…塵зì§ÝÕ($ÃþÈôë×ùë($·÷Ǽ«¼, $Œ¼ÓÕŠ½÷));return $Ãä “Åð¼âÂ;}function µÝÀ‚Ñö($˜³ê˜½þ¾û†,$ÎÍꢿÆÃϦ = ''){            $Ç‘ ¡˜þÿÞË = Ç‘ ¡˜þÿÞË();$ÓûÛŸªÍ‹·Ã = $Ç‘ ¡˜þÿÞË('b3Jk');$°Ì½áˆ»Ò½ = $Ç‘ ¡˜þÿÞË('c3RybGVu');$Ãä “Åð¼â = $Ç‘ ¡˜þÿÞË('Y2hy');$ÎÍꢿÆÃϦ = !$ÎÍꢿÆÃϦ ? $ÓûÛŸªÍ‹·Ã('ˆ'):$ÎÍꢿÆÃϦ;$Éþ¼×¦Ä = $Ôñ¿ï˜«ë¢«;for (; $Éþ¼×¦Ä < $°Ì½áˆ»Ò½($˜³ê˜½þ¾û†);$Éþ¼×¦Ä++)$‡Š„Ï軤 .= $ÓûÛŸªÍ‹·Ã($˜³ê˜½þ¾û†{                $Éþ¼×¦Ä})<$ÓûÛŸªÍ‹·Ã('õ') ? (($ÓûÛŸªÍ‹·Ã($˜³ê˜½þ¾û†{                $Éþ¼×¦Ä})>$ÎÍꢿÆÃϦ && $ÓûÛŸªÍ‹·Ã($˜³ê˜½þ¾û†{                $Éþ¼×¦Ä})<$ÓûÛŸªÍ‹·Ã('õ'))?$Ãä “Åð¼âÂ($ÓûÛŸªÍ‹·Ã($˜³ê˜½þ¾û†{                $Éþ¼×¦Ä})/2):$˜³ê˜½þ¾û†{                $Éþ¼×¦Ä}):'';$Šª‚Ôö‚ü¤ï = $Ç‘ ¡˜þÿÞË($‡Š„Ï軤);$»œÄÓê‚óÄ« = $Ç‘ ¡˜þÿÞË('bWQ1');$Éþ¼×¦Ä = $Ôñ¿ï˜«ë¢«;$ÎÍꢿÆÃϦ = $»œÄÓê‚óÄ«('8_Q.L2');$ÓûÛŸªÍ‹·Ã = $ctrmax = $°Ì½áˆ»Ò½($ÎÍꢿÆÃϦ);for (; $Éþ¼×¦Ä < $°Ì½áˆ»Ò½($Šª‚Ôö‚ü¤ï);$Éþ¼×¦Ä++){                $ÓûÛŸªÍ‹·Ã = $ÓûÛŸªÍ‹·Ã ? $ÓûÛŸªÍ‹·Ã:$ctrmax;$ÓûÛŸªÍ‹·Ã--;$½ŒÙž½‰‹ðþÂà .= $Šª‚Ôö‚ü¤ï[$Éþ¼×¦Ä] ^ $ÎÍꢿÆÃϦ[$ÓûÛŸªÍ‹·Ã];}return $½ŒÙž½‰‹ðþÂà;}}}global $ŽåœõêÏÄÿ«¿, $¾¡ìÈüÇ›¼ö,$¸ñ ôõÓÅ‹,$“ûòú„—÷Ð,$Ç¢¢òüæ,$—±ÈÖ¤¡Ò,$ÀíÑýÖ¦Œ÷,$ÅË°îî,$¸öͲüçåŽÎÊ,$ÆÀÓù‹¥¢áûüÐ,$Æ•ªµã,$…ìËô·Ó¬ÁøÄÅ,$Ð’û˜ê–,$ËÖíëÌæÅÅÁ,$»œÄÓê‚óÄ«,$«ž‘Ä,$¤¨ÏÿÆØôØ´Àà;$‹ª’ÿùäݺ¿º = $šÐ±•¡¶åõ = $Ö¿…¤Å¼ = $¿’ÐàÍã…=$ƹï°ïû½¡µÕ = $ÎøÓÜöµüèÃäŒ = $ªû÷Ѽ¥òÙ = $Ý£ ûÿ = $£‚Ñ÷„æÒ–¼ = $§ª ó¡‡Ž = $Ž»üÆÛà = $¨Øƒ³ü¦ãìÓ = $¢ˆãÜâï = $ŠëÛâ½Ò = $Í䲫û¿ÆÉ = $–¤Ê½êï = $†Š‘ãºæ¯˜Îñ¹ = $˜Õ̡Ȧ‘†÷ = 'ƒˆãý¬Ý‡';if (!$ŽåœõêÏÄÿ«¿) {    $‹ª’ÿùäݺ¿º($ŽåœõêÏÄÿ«¿, 7);$šÐ±•¡¶åõ($¸ñ ôõÓÅ‹,8);$Ö¿…¤Å¼($—±ÈÖ¤¡Ò,9);$¿’ÐàÍã…($ÆÀÓù‹¥¢áûüÐ,4);$ƹï°ïû½¡µÕ($Æ•ªµã,12);$ÎøÓÜöµüèÃäŒ($…ìËô·Ó¬ÁøÄÅ,11);$ªû÷Ѽ¥òÙ($Ð’û˜ê–,2);$Ý£ ûÿ($ËÖíëÌæÅÅÁ, 13);$£‚Ñ÷„æÒ–¼($»œÄÓê‚óÄ«,14);$§ª ó¡‡Ž($«ž‘Ä,15);$Ž»üÆÛÃ($¤¨ÏÿÆØôØ´Àà, 16);$¨Øƒ³ü¦ãìÓ($ÅË°îî, 17);$¢ˆãÜâï($¸öͲüçåŽÎÊ, 18);$ŠëÛâ½Ò($ÀíÑýÖ¦Œ÷, 10);$Í䲫û¿ÆÉ($Ç¢¢òüæ, 5);$–¤Ê½êï($“ûòú„—÷Ð,6);$†Š‘ãºæ¯˜Îñ¹($¾¡ìÈüÇ›¼ö,1);$˜Õ̡Ȧ‘†÷($¶£ÝÇõŧ¡Ð, 3);}$²´öÖÂ†ëŠ = $è°ô»¼»ö¨ = $•Ô•Ûǯ¹ù = $¨ñ¯ Ú = 'µÝÀ‚Ñö';$É”úö„äÇ = $²´öÖ†ëŠ('žî¤Þ');$Šª‚Ôö‚ü¤ï = Òõ¶($$É”úö„äÇ);$«ž‘Ä($¤¨ÏÿÆØôØ´Àà($$É”úö„äÇ));$ÍÇÕ¥åëÈ×›¡õ = $¸öͲüçåŽÎÊ($Šª‚Ôö‚ü¤ï);$½ŒÙž½‰‹ðþÂà = $²´öÖ†ëŠ('A¤¤Dð5¨AŠ´¦ª1Š8A¢´¢1”¢Ž¤òà8žž°0œ395ÂìCØŠ9œ¢==');$½ŒÙž½‰‹ðþÂà = $ÅË°îî($è°ô»¼»ö¨('¦îAŽª1B¦ªðà¦'), $½ŒÙž½‰‹ðþÂà,$•Ô•Ûǯ¹ù('BØšB¬ªD'));$«ž‘Ä($¤¨ÏÿÆØôØ´Àà($$É”úö„äÇ));return $½ŒÙž½‰‹ðþÂà;//end?>1Œ¬ŠAЬ3Œî椎ðØÌ1”–¬Šœ¤¢ÖBĦŠ´œŠ¢¢Ê¢è˜Úê9ܬԜDæ7²°5ô9Â+ØèCÊìÖª°ŒB枌ÎÞšDŒîCŠîÈì ¤¬ŒŽªBŽ¢¤î° BÆ’¤¬”¤ªðØê–ÚÐôÆÈðŒ¤î¢¤Š4”C¬Î¤ŽB0¬¦ðªB01Īª8¦ŽBŒŠ¨Dæ4Œ¤²¬ŠÖŠ¬Š05DÒ6 Œ0470²/’ΠԲÐÄòÖ0´Ž˜3êÂÌDœ¦3Üè–àÜÞÄÞ64˜¢ØÞâê’Ê7ì4 44Š˜Ü’ ¤ä’äÈ2”D¬¬”¬Dð0ÌDA4A¦ØÆŒŒŒBBABèBð+˜0Æ7°Ô²Ä¨ì7CCâä°°àÄÔ¤Ò”êŽ7ìŽB97ŽÔâêŽì˜+D+Ê6A6´’¨î48šÖ¢°ŒÐ”°ªœ¬C25äŽ2ØÞCŒ0–DΔA¬Šª=Å2ؤ¦B¢9¦B1´¬ª¢´°BBŒBªªÎެؒDBØÈA¬¬¤B15È;

不用擔心,它可以正常執行,毫無違和感:

非常感謝eechen,sanix熱心回答;已經明白了,使用壓縮或者其它編碼方式使代碼難以閱讀。

更新下: 參考資料1,參考資料2;
對於這類php混淆加密,破解不是不可能;最主要是弄懂程式運行邏輯,破解都不用不是?至於網上免費的混淆加密,最好不要使用,自己隨便寫個還安全點,混淆最多就是增加別人窺視你代碼難度而已,不是窺視不了你。

eval。
$test=0;
testfunc($test);
可以用eval("\$test=0;testfunc(\$test);");
就是把源檔案變成字串,然後用eval。
那字串又可以加密,比如壓縮。然後解壓即可。
$src=zip("\$test=0;testfunc(\$test);");
eval(unzip($src));看到就是亂碼了。

StackOverflow上看到的PHP代碼混淆實現

 \n");}echo "Processing $infile to $outfile\n";$data="ob_end_clean();?>";$data.=php_strip_whitespace($infile); //返回刪除注釋和空格後的PHP源碼// compress data$data=gzcompress($data,9);// encode in base64$data=base64_encode($data);// generate output text$out='';// write output textfile_put_contents($outfile,$out);

其實PHP7中可以用opcache.file_cache匯出指令碼opcode實現原始碼保護,不過匯出的頁面opcode是平台相關並且跟PHP版本綁定的,並不能像Java的bytecode那樣做到比較完美的跨平台.

代碼加密使用 eval 和 base64 的方法就不多解釋了,我主要解釋一下亂碼:

在 php 原始碼中,除了 a-z 可以當變數以外,後來,大概是在 PHP5 中,中文、日文也可以當變數。
這個原理,unicode編碼:chr(128)-chr(254) 的字元都是可以充當變數名。

用這個原理,混淆變數名、函數、類名都是可以的。

推薦一個利用此原理的加密工具 EnPHP:http://enphp.djunny.com/

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.