天空小小岛技术论坛

 找回密码
 注册
搜索
查看: 9153|回复: 0
打印 上一主题 下一主题

[分享] 看我手动解密wdLinux所有PHP文件-php版

[复制链接]
跳转到指定楼层
1#
phper 发表于 2014-11-7 10:34:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PHP 版
  1. <?php
  2. /**
  3. * wd_decode
  4. * Author: phper@tkxxd.net
  5. *
  6. */

  7. function wd_decode($filename) {

  8.         $data = unpack('C*', substr(file_get_contents($filename), 9));
  9.         $key = array(0xB8, 0x35, 0x6, 0x2, 0x88, 0x1, 0x5B, 0x7, 0x44, 0x0);
  10.         $j = count($data);
  11.         foreach($data as $k => &$v) {
  12.                 $v = $key [ 2 * ($j % 5) ] ^ ~$v;
  13.                 // $v = sprintf('%u', $v);
  14.                 $v &= 0xFF;
  15.                 $v = pack('C*', $v);
  16.                 -- $j;
  17.         }

  18.         return gzuncompress(join('', $data));
  19. }


  20. var_dump(wd_decode('index.php'));

复制代码


参考 http://www.wooyun.org/bugs/wooyun-2010-071652 中的 perl 代码

Perl 版

  1. sub wd_decode {

  2.         my @data = unpack 'C*', substr (read_file ($_[0]), 9);
  3.         my @key = (0xB8, 0x35, 0x6, 0x2, 0x88, 0x1, 0x5B, 0x7, 0x44, 0x0);

  4.         my ($i, $j) = (0, scalar @data);

  5.         for (@data) {
  6.                 $_ = $key [ 2 * ($j % 5) ] ^ ~$_;
  7.                 $_ &= 0xFF;
  8.                 -- $j;
  9.         }

  10.         return encode ('utf8', decode ('gbk', uncompress (pack 'C*', @data)));

  11. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|天空小小岛  |京ICP备2025130156号|

GMT+8, 2025-6-21 19:15 , Processed in 0.083988 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表