返回列表 发新帖
查看: 1091|回复: 2

discuz dz php魔方加密|dz魔方加密|php魔方加密开源|dz魔方加密开源|dz魔方加密算法

[复制链接]

305

热度

116

元宝

231

贡献

年费ViP

发表于 2016-4-25 22:17:10 | 显示全部楼层 |阅读模式
最近得到一套叫PHP魔方加密的样本,看介绍是DZ平台上的加密工具,简单分析,对代码进行了转换,比较易读,有兴趣的可以自行分析,也欢迎大家参与交流。
通过PHP魔方样本研究PHP解密,对DZ魔方加密的解密,算法研究分析。分析一下PHP魔方算法,多写一些与PHP魔方算法相关的内容。
这个PHP魔方DZ加密,还是很有特点的。有兴趣大家研究!
mofang.rar (2.97 KB, 下载次数: 18)
  1. <?php
  2. $fun_array = array(
  3.     "\xbc\xae\xc2\x87\x80\x83\x86" => "fun_1",
  4.     "\xbc\xae\xc2\xd7\x8a\x85\x83" => "fun_2",
  5.     "\xbc\xae\xc2\x82\x92\x82\x80" => "fun_3",
  6.     "\xbc\xae\xc2\x8b\x9a\x80\x80" => "fun_4",
  7.     "\xbc\xae\xc2\xc0\xa0\x84\x80" => "fun_5",
  8.     "\xbc\xae\xc2\xa2\xaa\x86\x83" => "fun_6",
  9.     "\xbc\xae\xc2\xad\xb1\x83\x83" => "fun_7",
  10.     "\xbc\xae\xc2\xcf\xbe\x85\x87" => "fun_8",
  11.     "\xbc\xae\xc2\xb9\xc2\x80\x84" => "fun_9",
  12.     "\xbc\xae\xc2\xbb\xce\x81\x85" => "fun_10",
  13.     "\xbc\xae\xc2\xc0\x87\x8f\x80" => "fun_11",
  14.     "\xbc\xae\xc2\xc7\x8f\x8b\x83" => "fun_12",
  15.     "\xbc\xae\xc2\x80\x96\x8b\x86" => "fun_13",
  16.     "\xbc\xae\xc2\xc2\x98\x8e\x86" => "fun_14",
  17.     "\xbc\xae\xc2\x90\xa2\x8d\x84" => "fun_15",
  18.     "\xbc\xae\xc2\x9b\xa9\x8a\x80" => "fun_16",
  19.     "\xbc\xae\xc2\xdc\xb5\x89\x85" => "fun_17",
  20.     "\xbc\xae\xc2" => "fun_18"
  21. );
  22. function fixstr($mystr)
  23. {
  24.     global $fun_array;
  25.     foreach ($fun_array as $k => $v) {
  26.         $mystr = str_ireplace($k, $v, $mystr);
  27.     }
  28.     return $mystr;
  29. }
  30. function fun_1(&$v_1, &$v_2, &$v_3, &$v_4, &$v_5, &$v_6, &$v_7)
  31. {
  32.     $v_3[$v_4] = !$v_3[$v_4];
  33. }
  34. function fun_2(&$v_1, &$v_2, &$v_3, &$v_4, &$v_5, &$v_6, &$v_7)
  35. {
  36.     $v_3[$v_4] =& $_GET;
  37. }
  38. function fun_3(&$v_1, &$v_2, &$v_3, &$v_4, &$v_5, &$v_6, &$v_7)
  39. {
  40.     $v_3[$v_4 - 1] = $v_3[$v_4 - 1] == $v_3[$v_4];
  41. }
  42. function fun_4(&$v_1, &$v_2, &$v_3, &$v_4, &$v_5, &$v_6, &$v_7)
  43. {
  44.     $v_3[$v_4 + 1] = NULL;
  45.     $v_4           = $v_4 + 1;
  46. }
  47. function fun_5(&$v_1, &$v_2, &$v_3, &$v_4, &$v_5, &$v_6, &$v_7)
  48. {
  49.     $v_3[$v_4] = "";
  50.     $var_1     = (int) ($v_1[$v_2++]);
  51.     $var_2     = $v_1[$v_2++];
  52.     for ($var_3 = 0; $var_3 < $var_1; $var_3++) {
  53.         $v_3[$v_4] .= $v_1[$v_2++] ^ $var_2;
  54.     }
  55. }
  56. function fun_6(&$v_1, &$v_2, &$v_3, &$v_4, &$v_5, &$v_6, &$v_7)
  57. {
  58.     $v_3[++$v_4] = NULL;
  59. }
  60. function fun_7(&$v_1, &$v_2, &$v_3, &$v_4, &$v_5, &$v_6, &$v_7)
  61. {
  62.     $var_4 = $v_3[$v_4];
  63.     unset($v_3[$v_4]);
  64.     $v_3[$v_4] = $var_4;
  65. }
  66. function fun_8(&$v_1, &$v_2, &$v_3, &$v_4, &$v_5, &$v_6, &$v_7)
  67. {
  68.     if ($v_3[$v_4]) {
  69.         $var_5 = $v_1[$v_2++] . $v_1[$v_2++] . $v_1[$v_2++] . $v_1[$v_2++] . $v_1[$v_2++] . $v_1[$v_2++] . $v_1[$v_2++] . $v_1[$v_2++] . $v_1[$v_2++] . $v_1[$v_2++] . $v_1[$v_2++] . $v_1[$v_2++];
  70.         $v_2 += (int) $var_5;
  71.     } else {
  72.         $v_2 += 12;
  73.     }
  74. }
  75. function fun_9(&$v_1, &$v_2, &$v_3, &$v_4, &$v_5, &$v_6, &$v_7)
  76. {
  77.     $v_4 = $v_4 + ((int) $v_1[$v_2++]);
  78. }
  79. function fun_10(&$v_1, &$v_2, &$v_3, &$v_4, &$v_5, &$v_6, &$v_7)
  80. {
  81.     $var_6 = $v_1[$v_2++] . $v_1[$v_2++] . $v_1[$v_2++] . $v_1[$v_2++] . $v_1[$v_2++] . $v_1[$v_2++] . $v_1[$v_2++] . $v_1[$v_2++] . $v_1[$v_2++] . $v_1[$v_2++] . $v_1[$v_2++] . $v_1[$v_2++];
  82.     $v_2 += (int) $var_6;
  83. }
  84. function fun_11(&$v_1, &$v_2, &$v_3, &$v_4, &$v_5, &$v_6, &$v_7)
  85. {
  86.     $var_7 =& $v_3[$v_4 - 1];
  87.     unset($v_3[$v_4 - 1]);
  88.     $v_3[$v_4 - 1] =& $var_7[$v_3[$v_4]];
  89. }
  90. function fun_12(&$v_1, &$v_2, &$v_3, &$v_4, &$v_5, &$v_6, &$v_7)
  91. {
  92.     $v_3[$v_4] = "";
  93.     $var_8     = (int) ($v_1[$v_2++] . $v_1[$v_2++]);
  94.     $var_9     = $v_1[$v_2++];
  95.     for ($var_10 = 0; $var_10 < $var_8; $var_10++) {
  96.         $v_3[$v_4] .= $v_1[$v_2++] ^ $var_9;
  97.     }
  98. }
  99. function fun_13(&$v_1, &$v_2, &$v_3, &$v_4, &$v_5, &$v_6, &$v_7)
  100. {
  101.     echo $v_3[$v_4];
  102. }
  103. function fun_14(&$v_1, &$v_2, &$v_3, &$v_4, &$v_5, &$v_6, &$v_7)
  104. {
  105.     unset($v_3[$v_4]);
  106.     $v_4 = $v_4 - 1;
  107. }
  108. function fun_15(&$v_1, &$v_2, &$v_3, &$v_4, &$v_5, &$v_6, &$v_7)
  109. {
  110.     $v_4       = $v_4 + 1;
  111.     $v_3[$v_4] = NULL;
  112. }
  113. function fun_16(&$v_1, &$v_2, &$v_3, &$v_4, &$v_5, &$v_6, &$v_7)
  114. {
  115.     unset($v_3[$v_4--]);
  116. }
  117. function fun_17(&$v_1, &$v_2, &$v_3, &$v_4, &$v_5, &$v_6, &$v_7)
  118. {
  119.     $v_2 = $v_3[$v_5 - 1];
  120.     $v_5 = $v_3[$v_5];
  121. }
  122. function fun_18($v_1, $v_2)
  123. {
  124.     static $var_11;
  125.     if (strlen($var_11) == 0) {
  126.         $var_11 = "\x12\xab\xd0\x14\x92\x96\x30\xa0+\x3a\xa6\x20\x20\x1a\xcd\x90\x1c\x9f\x99\x9c\x17\x06\x9a\x1c\x1c\xe9)I\xefmi\x36\x23NLEBMD\xdb\x1b\x5c\xddT\x5bF\xdd\xef\x40\xcc\xc6\xba\x17\x0b\xbc\x39\x39d\xf4\xc6b\xe9\xe0\xf9\x39Y\xff}y\x33\xcf\xb6\xaa\xbc\x06\x84\x94\x00\x84\x86\x0b\x90\xa2\x0d\x81\x8bj\xed\xeal\xe9\xec\xed\x22S\xebhj\x36\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc1Zh\xc7KA\xa5\x35\x07\xa3(\x21i\xae\xe6o\xe2\xea\x31\x30u\xa3\xd0\xb7\x9c\xa7\xa4\xca\xdf\xb6\xb0\x15\x95\x83\x13\x9e\x93\xbe\x7c\x26\xb8\x30\x38h\xd3\xa6n\xe9\xed\x35\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00i\xab\xf1o\xe7\xef\x9e\x15\x04\x98\x1e\x1e\xc7\x00H\xc1LD\x32\x30/\xe5\x9d\xec\x9b\x9d\xe1\xe5\xd2\x9d\xea\xeb\xf3\x9b\xdd\x90\x85\xe1\xfd\xeb\xf7\xa4\x24\x32\xa2/\x22\xf1jX\xf7{q\x8c.\x26\x8a\x0a\x0f\xa8j\x30\xae\x26.\x3c\x9e\x96\x3a\xba\xbf\xb9e\x0c\xbf\x30\x3c";
  127.     }
  128.     $var_12 = array();
  129.     $var_13 = array();
  130.     $var_14 = $var_15 = 0;
  131.     foreach ($v_1 as $var_16) {
  132.         $var_12[++$var_14] = $var_16;
  133.     }
  134.     $var_12[++$var_14] = count($v_1);
  135.     $var_12[++$var_14] = -1;
  136.     $var_12[++$var_14] = 0;
  137.     $var_17            = $var_14;
  138.     while ($v_2 >= 0) {
  139.         $var_16 = "\xbc\xae\xc2" . ($var_11[$v_2] ^ $var_11[$v_2 + 1]) . ($var_11[$v_2] ^ $var_11[$v_2 + 2]) . ($var_11[$v_2] ^ $var_11[$v_2 + 4]) . ($var_11[$v_2] ^ $var_11[$v_2 + 5]);
  140.         $v_2 += ord($var_11[$v_2] ^ $var_11[$v_2 + 3]);
  141.         $var_16 = fixstr($var_16);
  142.         $var_16($var_11, $v_2, $var_12, $var_14, $var_17, $var_13, $var_15);
  143.     }
  144.     return $var_12[$var_14];
  145. }
  146. fun_18(array(), 0);
  147. ?>
复制代码


138

热度

515

元宝

5

贡献

步入草根

发表于 2016-4-26 08:54:04 来自手机 | 显示全部楼层
顶一个

评分

参与人数 1贡献 +2 收起 理由
zhangfei + 2 很给力!

查看全部评分

0

热度

11

元宝

8

贡献

步入草根

发表于 2018-1-3 10:53:00 | 显示全部楼层
{:26:}{:26:}顶一个
返回列表 发新帖
 懒得打字嘛,点击右侧快捷回复【最新发布】   【赞助草根吧享更多权益】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

收藏帖子 返回列表 搜索

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

小黑屋|手机版|草根吧