@IKuu

Какие способы декодирования существуют в PHP?

Имеется движок (ядро) для игрового сервера, написано на PHP. Сам движок зашифрован непонятным мне методом (кусок кода):
$list = ["\157\x70\x65\x6e\111\156\x76\x65\x6e\164\157\x72\171" => ["\x6e\x61\x6d\145" => "\x54\141\153\x69\x6e\x67\40\x49\156\x76\145\156\x74\157\162\x79", "\x72\x65\161\x75\x69\x72\145\x73" => []], либо public function __construct(Server $O8666750554638273663) { goto O1970219884901744879; O6505149678668561343: $O1777212593691497481 = @fopen($this->path, "\x77\142"); goto O4083818622447351734; O3393899177948378635: $this->fp = $O1777212593691497481; goto O0537484758143303834; O8048393773490650940: $this->encodeData(); goto O2278372111902823051; O2791274778590356360: $this->generalData(); goto O8382244228756303546; O1005405451303321896: $this->data["\x74\x69\155\145"] = $this->time; goto O6370898434236048902; O8942154602257954378:


Таким образом зашифрован каждый файл движка, как можно это декодировать?
  • Вопрос задан
  • 123 просмотра
Решения вопроса 1
delphinpro
@delphinpro Куратор тега PHP
frontend developer
Обычный обфусцированный код.
Достаточно отворматировать, чтобы уловить что там

\x74\x69\155\145 - юникодная запись = time
(upd: подобные строки легко перевести в читамеый вид, закинув ее в consol.log в браузере
Или в phpStorm Вырезать/Вставить Ctrl-X/Ctrl-V)

$O8666750554638273663 - переменная
O6505149678668561343: - метка

$list = ["openInventory" => [
  "name" => "Taking Inventory",
  "requires" => []
];


public function __construct(Server $O8666750554638273663) {
        goto O1970219884901744879;

        O6505149678668561343:
        $O1777212593691497481 = @fopen($this->path, "wb");
        goto O4083818622447351734;

        O3393899177948378635:
        $this->fp = $O1777212593691497481;
        goto O0537484758143303834;

        O8048393773490650940:
        $this->encodeData();
        goto O2278372111902823051;

        O2791274778590356360:
        $this->generalData();
        goto O8382244228756303546;

        O1005405451303321896:
        $this->data["time"] = $this->time;
        goto O6370898434236048902;

        O8942154602257954378:


Можно закинуть в IDE, сделать автоформат, посидеть, переименовав переменные в нормальные имена и всё. А если дорабатывать собрались, то пожалуй стоит сделать рефакторинг, избавившись от goto. Тут придется посидеть подольше.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Sanes
@Sanes
Похоже на обфускатор какой-то. При должной сноровки и наличия времени, можно привести в человеческий вид.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы