Décodeur de code PHP

La semaine dernière avec Olea on est tombé sur un module Prestashop tout moche qui avait un code de ce style :

eval(gzinflate(base64_decode(strrev('AYwtRlkyv8MKXlcyNj09QdFyO30S'))));

Impossible donc de savoir son action. En enlevant le eval() pour voir le code

echo gzinflate(base64_decode(strrev('AYwtRlkyv8MKXlcyNj09QdFyO30S')));

on tombe sur

eval(base64_encode(str_rot13('DF5fgEZ135HHtrdfcv'))));

et ainsi de suite.

Cela s’appelle du code impénétrable ou de l’obfuscation. Très utilisé pour cacher un vilain code pas beau avec tracker, virus et tout ça.

Donc voici un décodeur pour ce genre de code. En gros il fait la même chose que eval() mais sans exécuter le code.

https://gist.github.com/Shagshag/5848915

Pour info le code du module en question avait 45 eval() imbriqués et rien de méchant. L’auteur ne voulait juste pas qu’on voit son code. (raté)