質問するログイン新規登録

回答編集履歴

1

追記

2019/10/13 06:39

投稿

kyoya0819
kyoya0819

スコア10434

answer CHANGED
@@ -3,4 +3,73 @@
3
3
  - 1, PHPファイルを取得
4
4
  - 2, 1文字ずつ切り離す。
5
5
  - 3, 1文字ずつハッシュ化
6
- - 4, ファイルを保存
6
+ - 4, ファイルを保存
7
+
8
+ 質問者さんが内容を抹消してしまうので以下に質問者がどんなことを質問したかを書いておきます。
9
+
10
+ # 以下は質問者により意図的に内容が抹消される前の質問です。
11
+
12
+ PHPのファイルtest.phpを難読化するphpを書いています。
13
+ 以下のスクリプトだと難読化が弱いので、より複雑に難読化させる方法を教えてください。
14
+ 今回はencrypt.phpという以下のファイルを作ります。
15
+ ```PHP
16
+ <?php
17
+ $infile = "./test.php";
18
+ $outfile = "./test_encrypted.php";
19
+ $data="ob_end_clean();?>";
20
+ $data.=php_strip_whitespace($infile);
21
+ $data=gzcompress($data,9);
22
+ $data=base64_encode($data);
23
+ $out='<?ob_start();$a=\''.$data.'\';eval(gzuncompress(base64_decode($a)));$v=ob_get_contents();ob_end_clean();?>';
24
+ file_put_contents($outfile,$out);
25
+ ?>
26
+ ```
27
+ test.phpをより複雑に難読化させられるのでしたら、encrypt.phpの手法はどのような方法でもかまいません。
28
+ test.phpという通常のphpファイルをtest_encrypted.phpという難読化されたファイルを生成させられるよう
29
+ encrypt.phpを改良してください。
30
+ 追記:
31
+ openssl_encryptというものがあると知り、導入してみましたが実行後のtest_encrypted.phpが動作しません。
32
+ どこが問題でしょうか。
33
+ ```PHP
34
+ <?php
35
+ $infile = "./test.php";
36
+ $outfile = "./test_encrypted.php";
37
+ $data="ob_end_clean();?>";
38
+ $data.=php_strip_whitespace($infile);
39
+ // compress data
40
+ $data=gzcompress($data,9);
41
+ // encode in base64
42
+ $data=base64_encode($data);
43
+ // generate output text
44
+ //与えられた文字を16進数に変換
45
+ function strtohex($x)
46
+ {
47
+ $s='';
48
+ foreach (str_split($x) as $c) $s.=sprintf("%02X",ord($c));
49
+ return($s);
50
+ }
51
+ //生成条件
52
+ //passとなっているところはopensslコマンド的にはkeyとなる
53
+ $iv = "1234567890123456";
54
+ $pass = '1234567890123456';
55
+ $method = 'aes-256-cbc';
56
+ $endata = openssl_encrypt ($data, $method, $pass, true, $iv);
57
+ $out='<?
58
+ ob_start();
59
+ $a = \'
60
+ '.$endata.'
61
+ \';
62
+ $b = openssl_decrypt($data, $method, $pass, true, $iv);
63
+ eval(gzuncompress(base64_decode($b)));
64
+ $v=ob_get_contents();
65
+ ob_end_clean();
66
+ ?>
67
+ ';
68
+ // write output text
69
+ var_dump(file_put_contents($outfile,$out));
70
+ ?>
71
+ ```
72
+ ※PHPのファイルは直接見られることはないといった回答やセキュリティがどうのこうの
73
+ といった回答がありました。そのような回答は必要ありません。ただ難読化させるということにのみ焦点を当てた回答をお願い致します。
74
+ 趣味でやっているため、なんのためにこのようなことをするのかといった回答もご遠慮お願い致します。
75
+ 難読化に関する回答のみお願い致します