首页
社区
课程
招聘
[推荐]php 解密eval用法
发表于: 2013-10-3 09:57 11615

[推荐]php 解密eval用法

2013-10-3 09:57
11615
四处寻找高人指点,无人帮忙,革命还是要靠自己,找了一篇文章,不敢独享,发来让无助的朋友们学习,请看如下

我写了下面两个PHP文件:

//B.PHP

<?php
$str=file_get_contents(2.txt);
while (preg_match("/eval(gzinflate(str_rot13(base64_decode(([^]*)/",$str,$match)){
$fp=fopen(1.txt,w);
fputs($fp,$match[1]);
fclose($fp);
system(php a.php);
$str=file_get_contents(2.txt);
}
?>

//A.PHP

<?php
$str=file_get_contents(1.txt);
$str=base64_decode($str);
$str=str_rot13($str);
$str=gzinflate($str);
$fp=fopen(2.txt,w);
fputs($fp,$str);
fclose($fp);
?>
把你的代码保存为2.TXT,在CMD下运行下面的命令:
PHP B.PHP
过一会程序执行完毕,2.TXT就是解密后的代码。

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 2
活跃值: (72)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
PHP使用eval(gzinflate(str_rot13(base64_decode('BASE64加密后内容'))))核心代码的解密

下非扩展方式的php加密方法:

这里有个在线的,还不错。木马防杀还行,要保护代码可就不行了。

对应的写了一个简单的解密的,

专门针对eval。这个原理很有用途。

特别说明:此解密程序好像一定得在PHP5上面使用,

我在PHP4上面测试eval(gzinflate(str_rot13(base64_decode('BASE64加密后内容'))))内加密的代码始终无法正常解密.

<?php

//已经加密的文件内容

$a="eval(gzinflate(str_rot13(base64_decode('这里面放BASE64代码'))));";

function decodephp($a) {

$max_level=300; //最大层数

for($i=0;$i<$max_level;$i++) {  

  ob_start();  

  eval(str_replace('eval','echo',$a));  

  $a = ob_get_clean();  

  if(strpos($a,'eval(gzinflate(str_rot13(base64_decode')===false) {   

   return $a;  

  }

}

}

echo decodephp($a);

?>

php使用N层加密eval(gzinflate(base64_decode("codes")))的破解

首先申明一下,这个并非是我原创,是我转自一个国外的BLOG上面的.自己测试了下.觉得很好用的.就转自己博客里面了.方便以后自己使用.

原始博文地址:306K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3c8S2L8X3W2D9L8#2)9J5k6h3q4J5K9h3q4V1L8%4y4K6i4K6u0W2j5$3!0E0i4K6u0r3x3U0l9H3y4W2)9J5c8R3`.`. ... late-base64_decode/

如果您想看的是PHP使用eval(gzinflate(str_rot13(base64_decode('BASE64加密后内容'))))核心代码的解密,请移步这里查看:PHP使用eval(gzinflate(str_rot13(base64_decode('BASE64加密后内容'))))核心代码的解密.

特别说明:此解密程序好像一定得在PHP5上面使用,

我在PHP4上面测试eval(gzinflate(base64_decode("codes")))内加密的代码始终无法正常解密

以下是代码: <?php

/*

Taken from 040K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4m8Z5M7q4)9J5k6h3&6W2N6q4)9J5c8X3#2S2L8Y4g2S2L8q4)9J5c8X3c8W2i4K6u0r3k6Y4g2F1j5%4c8A6L8$3&6Q4x3X3g2W2N6X3q4D9i4K6u0W2M7r3S2H3i4K6t1K6y4e0V1^5y4U0t1`.

Directions:

1. Save this snippet as decrypt.php

2. Save encoded PHP code in coded.txt

3. Create a blank file called decoded.txt (from shell do CHMOD 0666 decoded.txt)

4. Execute this script (visit decrypt.php in a web browser or do php decrypt.php in the shell)

5. Open decoded.txt, the PHP should be decrypted if not post the code on d9cK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3q4J5K9h3q4V1L8%4y4K6i4K6u0W2j5$3!0E0i4K6u0r3k6X3!0J5N6h3#2K6i4K6u0r3N6$3g2T1i4K6u0V1k6r3g2$3k6h3I4G2M7r3#2W2L8Y4c8Q4x3V1k6D9j5h3#2H3

gzinflate执行加密代码的解密方法翻译为中文后的文字(此段汉字原始文件里面可没.嘿)

1. 把这整段脚本保存为decrypt.php

2. 把需要解密的代码保存为coded.txt并且和decrypt.php在同一目录.

3. 创建一个空白文件命名为decoded.txt (必须把decoded.txt 的权限设置为CHMOD 0666,也就是可以写入的.当然,你可以不创建文件文件.只要文件夹有写入权限,脚本便会自动创建一个名为decoded.txt的文档. )

4. 运行解密脚本(浏览器中运行decrypt.php 即访问f08K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8W2!0q4y4W2)9^5x3W2!0m8z5q4!0q4y4#2)9&6b7g2)9^5y4q4!0q4y4g2)9&6c8W2)9&6c8W2!0q4y4g2)9&6x3q4)9^5c8q4)9J5c8W2!0q4y4g2!0m8c8q4)9&6z5q4!0q4y4W2)9&6y4q4!0n7c8g2!0q4y4#2)9&6b7W2!0m8c8g2!0q4y4g2!0n7c8q4)9&6y4g2)9J5c8X3c8W2j5%4u0&6M7s2c8Q4x3X3g2H3K9s2m8Q4x3U0V1`.

5. 打开decoded.txt, 代码应该已经解密完成,如果出现错误请把代码发送到93aK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3q4J5K9h3q4V1L8%4y4K6i4K6u0W2j5$3!0E0i4K6u0r3k6X3!0J5N6h3#2K6i4K6u0r3N6$3g2T1i4K6u0V1k6r3g2$3k6h3I4G2M7r3#2W2L8Y4c8Q4x3V1k6D9j5h3#2H3

*/

echo "\nDECODE nested eval(gzinflate()) by DEBO Jurgen <mailto:jurgen@person.be\n\n";

echo "1. Reading coded.txt\n";

$fp1 = fopen ("coded.txt", "r");

$contents = fread ($fp1, filesize ("coded.txt"));

fclose($fp1);

echo "2. Decoding\n";

while (preg_match("/eval\(gzinflate/",$contents)) {

    $contents=preg_replace("/<\?|\?>/", "", $contents); eval(preg_replace("/eval/", "\$contents=", $contents)); } echo "3. Writing decoded.txt\n"; $fp2 = fopen("decoded.txt","w"); fwrite($fp2, trim($contents)); fclose($fp2);

?>

再简单的说下gzinflate,eval(gzinflate(base64_decode("codes")));decoding-eval-gzinflate-base64_decode的使用方法.

保存上面的程序文件decrypt.php,

当然文件名可以自己设置.

在此文件的同一目录建立一个coded.txt,

这个里面放的是加密过的代码,也就是eval(gzinflate(base64_decode("codes")))当中的codes;

再说明白点就是是要解密的eval(gzinflate(base64_decode("codes")))里面执行的密原文.

执行保存过的文件decrypt.php,这样便会在同一目录生成一个decoded.txt的txt文档,

打开此文档.里面就是那些被加密的原始代码.
2013-10-3 11:07
0
雪    币: 211
活跃值: (52)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
你的博客url都没贴上,我给你补全吧

66bK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3c8S2L8X3W2D9L8#2)9J5k6h3q4J5K9h3q4V1L8%4y4K6i4K6u0W2j5$3!0E0i4K6u0r3k6r3g2U0L8$3c8A6L8X3N6Q4x3X3c8W2N6X3q4D9i4K6u0V1k6%4A6A6L8X3k6D9j5i4c8W2i4K6u0V1j5X3q4K6k6e0j5@1i4K6u0V1k6r3g2U0L8$3c8W2i4K6u0r3

这个就是循环解密的,而且只能解嵌套的,碰上zend那种引用自身偏移量的,就挂了

不过话说回来,一个好的php后门是不会出现任何函数的关键词的,任何基于文法扫描的都会失败,楼主加油
2013-10-3 20:02
0
游客
登录 | 注册 方可回帖
返回