欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

教你如何解密 “ PHP 神盾解密工具 ”

 更新時間:2014年06月20日 08:41:33   投稿:hebedich  
PHP 神盾解密工具是一網絡大神針對“神盾加密”出的一款解密工具,深受眾網友的歡迎,今天我們就來談談這個解密工具的問題

其實對神盾解密并沒有那么感興趣,只是看到了作者把工具又加密了,感覺不爽。研究了一下,其實解密沒那么復雜。

利用php_apd擴展很輕松地就這把這搞定了。只有四句代碼。

<?php
rename_function('gzuncompress','new_gzuncompress');
override_function('gzuncompress', '$arg', 'print(new_gzuncompress($arg)); return new_gzuncompress($arg);');
 
require_once 'decryption.php';
decryption('decryption.php');

該工具的核心代碼:decryption.php

<?php
function decryption($fileName) {
  /**
   * 解碼函數
   * @param string $str 待解碼字符串
   * @param string $flg 是否解析后解碼
   * @return string   已解碼字符串
   */
  function decode($str, $flg = '') {
    if($flg === '') {
      $ret = $str;
    } else {
      $ret = 'ۯ'; $i = 0; $l = strlen($str);
      while($i++ < $l) {
        $c = ord($str[$i-1]);
        $ret .= $c<245 ? ( $c>136 ? chr($c/2) : $str[$i-1] ) : "";
      }
    }
    return base64_decode($ret);
  }
   
  $err = '解碼遇到錯誤,請聯(lián)系教主處理該文件!';
  $str = file_get_contents($fileName);
  $path = pathinfo($fileName);
  $dirname = $path['dirname']; // 文件所在目錄
  $baseName = $path['filename']; // 文件名
   
   
  if (preg_match('|IN_DECODE_(\w{32})|s', $str, $arr)) {
    // 防止解密自己,其實方法都已經告訴你了,自己動手解碼才快樂
    $arr[1] === '761b5f52db6dff7ce91344e99dcedab7' && die("err: [-1] - 請勿試圖用本工具解密本工具!");
  } else {
    die("err: [-1] - 沒有發(fā)現神盾特征,你確定這是神盾加密?");
  }
   
  // 匹配代碼主題部分
  // '';@\$[\x00-\xff]+\(\\'([\x00-\xff]+?)\\'\.\(
  preg_match('|\'\';@\$[\x00-\xff]+\(\\\\\'([\x00-\xff]+?)\\\\\'\.\(|s', $str, $arr) || die("err: [0] - ".$err);
  $code = $arr[1];
 
  // 匹配中間加密部分
  preg_match('|\(\'([\x00-\xff]+)\',\'|s', $code, $arr) || die("err: [1] - ".$err);
  $key = base64_decode(decode($arr[1], "decode"));
 
  $code = preg_replace('|\'\.[\x00-\xff]+\'\)\)\.\'|s', $key, $code);
 
  // 匹配尾部被加密代碼
  preg_match('|=\'(x[\x00-\xff]+)\'\)\);|s', $str, $arr) || die("err: [2] - ".$err);
  $core = $arr[1];
 
  // 匹配驗證key
  preg_match('|[\w+/=]{59}=|s', $arr[1], $arr) || die("err: [3] - ".$err);
  $key = $arr[0];
 
  $core = str_replace($key, '', $core); // 去除key
  $suffix = gzuncompress($core); // 得到 base64 的末尾部分
 
  // 解碼
  $code = gzuncompress(base64_decode($code . $suffix));
 
  // 匹配干凈的代碼
  if (preg_match('|<!--<\?php endif;\?>(<\?php[\r\n]{1,2}[\x00-\xff]+\?>)<\?php \$GLOBALS\[|s', $code, $arr)) {
    $code = $arr[1];
  }
 
  // 寫到文件
  $source = $dirname . DIRECTORY_SEPARATOR . $baseName . "_source.php";
  file_put_contents($source, $code);
  die("解密成功,已經保存為: " . $source);
}

相關文章

  • PHP判斷字符串長度的兩種方法很實用

    PHP判斷字符串長度的兩種方法很實用

    這篇文章主要介紹了PHP判斷字符串長度的相關資料,需要的朋友可以參考下
    2015-09-09
  • PHP實現驗證碼校驗功能

    PHP實現驗證碼校驗功能

    這篇文章主要為大家詳細介紹了PHP實現驗證碼校驗功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • php 實現銀聯(lián)商務H5支付的示例代碼

    php 實現銀聯(lián)商務H5支付的示例代碼

    這篇文章主要介紹了php 實現銀聯(lián)商務H5支付的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • php加密解密實用類分享

    php加密解密實用類分享

    加密和解密是一項常規(guī)任務,這里介紹一個加解密類。如果你想在用戶忘記密碼時為他或她找回原來的密碼,那么這個類是個好用的工具
    2014-01-01
  • PHP實現長輪詢消息實時推送功能代碼實例講解

    PHP實現長輪詢消息實時推送功能代碼實例講解

    這篇文章主要介紹了PHP實現長輪詢消息實時推送功能代碼實例講解,文中代碼演示的很清楚,有感興趣的可以研究參考下
    2021-02-02
  • Vagrant(WSL)+PHPStorm+Xdebu 斷點調試環(huán)境搭建

    Vagrant(WSL)+PHPStorm+Xdebu 斷點調試環(huán)境搭建

    這篇文章主要介紹了Vagrant(WSL)+PHPStorm+Xdebu 斷點調試環(huán)境搭建,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • php中二維數組排序問題方法詳解

    php中二維數組排序問題方法詳解

    一維數組排序可以使用asort、ksort等一些方法進程排序,相對來說比較簡單。二維數組的排序怎么實現呢?使用array_multisort和usort可以實現,下面跟著小編來學習php中二維數組排序問題方法詳解
    2015-08-08
  • Laravel中注冊Facades的步驟詳解

    Laravel中注冊Facades的步驟詳解

    這篇文章主要介紹了Laravel中注冊Facades的步驟,詳細分析了Laravel中注冊Facades的原理,實現方法與相關注意事項,需要的朋友可以參考下
    2016-03-03
  • PHP在線生成二維碼代碼(google api)

    PHP在線生成二維碼代碼(google api)

    通過google在線生成二維碼的api在線生成二維碼,需要的朋友可以參考下
    2013-06-06
  • laravel框架學習筆記之組件化開發(fā)實現方法

    laravel框架學習筆記之組件化開發(fā)實現方法

    這篇文章主要介紹了laravel框架學習筆記之組件化開發(fā)實現方法,結合實例形式分析了laravel框架組件化開發(fā)相關的實現步驟與操作注意事項,需要的朋友可以參考下
    2020-02-02

最新評論