Как сделать код нечитаемым? - PullRequest
2 голосов
/ 17 ноября 2010

Например, у нас есть это:

<?php
$titles[3] = 'three'; 
$titles[2] = 'two'; 
$titles[1] = 'one'; 
print_r( $titles); 

foreach ($titles as $t ) { 
print "title=$t "; 
}
?>

Как превратить это во что-то подобное?

<?php eval(gzinflate(str_rot13(base64_decode('PGRpdiBzdHlsZT0nPGRpdiBzdPGRpdiBzdHlsZT0nHlsZT0nandsoon')))); ?>

Абсолютно не понимаю, каксделанный.Что такое магия?

Пожалуйста, опишите.

Спасибо.

Ответы [ 7 ]

4 голосов
/ 17 ноября 2010

Вы ищете термин « обфусцировать ».Если вы просто выполните поиск в Google по запросу «php obfuscators», вы найдете программное обеспечение, в которое вы сможете скопировать и вставить свой код, и оно запутает его для вас.

1 голос
/ 17 ноября 2010

Делая что-то подобное, вы намеренно заставляете свой код выполняться дольше, не добавляя никаких преимуществ.Поскольку любой может декодировать этот код обратно в исходный код, он действительно не имеет никакой другой цели, кроме как просто открыть некоторые возможности php и сказать: «Смотри, Ма! Я теперь хакер»

Если вы действительно хотитезапретить другим пользователям читать ваш код, вам нужен что-то вроде Zend encoder, что сделает ваш код нечитаемым и все еще работоспособным как php.

1 голос
/ 17 ноября 2010

Как сделать код нечитабельным?Это легко: назначьте его одному из программистов, с которым я здесь работаю.

1 голос
/ 17 ноября 2010

ну, просто сделайте обратное с исходным текстом, то есть в этом порядке: gzdeflate, str_rot13, base64_encode.

1 голос
/ 17 ноября 2010

Вы ищете что-то, чтобы запутать код.

Вот PHP-обфускатор с открытым исходным кодом: http://www.raizlabs.com/software/phpobfuscator/

1 голос
/ 17 ноября 2010

Попробуйте использовать обфускатор: http://www.fopo.com.ar/

0 голосов
/ 17 ноября 2010

Посмотрите на http://www.ideone.com/vaAXz для демонстрации того, что здесь происходит.

В основном, использование base64_encode, str_rot13 и gzdeflate преобразуют вашу строку в обфусцированную строку, которая затем обфускацируется, пропуская ее через обратные функции в обратном порядке (gzinflate, str_rot13снова (все, что он делает, это * вращает строку на 13 мест, поэтому a <-> n, b <-> o и т. д.) и base64_decode).Затем необъяснимый код запускается через eval, чтобы его можно было выполнить.

Это не особенно хороший способ достижения "безопасного" кода, если вы к этому стремитесь, потому что, предоставляя шагичтобы деобфусцировать ваш код, вы по своей природе позволяете любому, имеющему доступ к коду, преобразовывать его обратно в открытый текст.Как правило, обфускаторы кода делают ваш код нечитаемым, заменяя значимые имена переменных такими вещами, как $a, $b и т. Д., А также удаляя комментарии, пробелы и любые другие удобства, которые мы обычно используем для обеспечения читабельности кода.

...