JavaScript Encode - PullRequest
       20

JavaScript Encode

1 голос
/ 20 июня 2011

В Интернете я нахожу плагин Ext.Gantt для ExtJS, который имеет специальный код. Кто-нибудь знает, как кодировать, как ту или иную сложную форму.

Кодированная диаграмма Ганта

1 Ответ

2 голосов
/ 20 июня 2011

Похоже, что он запутывается пакером Дина Эдвардса, а затем преобразуется в шестнадцатеричное обозначение.

Просто скопируйте все с var _0x5749 = до eval(function. Откройте FireBug, вставьте его в консоль и распечатайте переменную. Это программа JavaScript, которая была запутана пакером Дина Эдвардса.

Сценарии в кодировке упаковщика имеют подпись: eval(function(p,a,c,k,e,d){e=function(c){, которая в этом случае преобразуется в eval(function (_0x68cdx1, _0x68cdx2, _0x68cdx3, _0x68cdx4, _0x68cdx5, _0x68cdx6) { _0x68cdx5 = function (_0x68cdx3) {. Обратите внимание, что «e» кодируется в _0x68cdx5, а «c» кодируется в _0x68cdx3.

Существуют веб-инструменты для декодирования упаковщика Дина Эдвардса, но есть очень простой способ получить текст сценария:

  1. Скопировать весь код до (но не включая) Ext.onReady(function() {
  2. Ищите eval(function(...
  3. Заменить "eval" на "console.log"
  4. Запустите сценарий в файле node.js, JsShell, Rhino, FireBug или консоли разработчика Chrome или Safari.
  5. Скрипт в текстовом формате печатается на консоли
  6. Скопируйте сценарий и передайте его через встроенный JavaScript-обработчик
  7. Я получил 3839 строк после использования: http://jsbeautifier.org/

Я бы назвал это упрощенным запутыванием, поскольку необработанный исходный код можно получить в процессе декодирования.

Лучший обфускатор, который я рекомендую, - это Google Closure Compiler в режиме ADVANCED - который делает сценарии практически невозможными для обратной разработки.

...