2016-01-04 4 views
-2

Как изменить строки в массивах javascript. Я хочу изменить коды массива на строки. Как изменить строки в массивах javascript. Я хочу изменить коды массива на строки.Javascript array changer

Как это получить;

var _0x1576 = ["SayHello", "GetCount", "Message : ", "You are welcome."]; 

function NewObject(_0x7aa7x2) { 
    var _0x7aa7x3 = 0; 
    this.SayHello = function (_0x7aa7x4) { 
     _0x7aa7x3++; 
     alert(_0x7aa7x2 + _0x7aa7x4); 
    }; 
    this.GetCount = function() { 
     return _0x7aa7x3 
    }; 
} 
var obj = new NewObject("Message : "); 
obj.SayHello("You are welcome."); 

с;

var _0x1576 = ["SayHello", "GetCount", "Message : ", "You are welcome."]; 

function NewObject(_0x7aa7x2) { 
    var _0x7aa7x3 = 0; 
    this[_0x1576[0]] = function (_0x7aa7x4) { 
     _0x7aa7x3++; 
     alert(_0x7aa7x2 + _0x7aa7x4); 
    }; 
    this[_0x1576[1]] = function() { 
     return _0x7aa7x3 
    }; 
} 
var obj = new NewObject(_0x1576[2]); 
obj.SayHello(_0x1576[3]); 
+0

Похоже, вы хотите минимизировать свой код –

+0

, в каком направлении вы хотите изменить строки? от 'this.SayHello' до' this [_0x1576 [0]] 'или наоборот? –

+0

@Nina Scholz обратный. Я хочу изменить «этот [_0x1576 [0]]« похожие коды – user2976880

ответ

0

EDIT: Так что у вас есть код, где все имена переменных были заменены числами или индексами в этот глобальный массив имен, и вы хотели бы быть в состоянии прочитать его. Существует уже answer to this question, который содержит ссылки на кучу полезных инструментов деобфускации.

Ваше дело выглядит довольно тривиально - кажется, что вы можете просто выполнить поиск строк и заменить его, заменяя значение массива каждый раз, когда он индексируется. Регулярное выражение /_0x1576\[(\d+)\]/g должно найти все, что обращается к переменной _0x1576 с целым индексом. Внутренняя группа (\d+) должна предоставить вам индекс, с которым он был найден. Вы можете использовать что-то вроде этого, чтобы дефокусировать свой источник. Однако некоторые имена были потеряны в процессе обфускации; то есть имя параметра 0x7aa7x4 в функции SayHello не может быть восстановлено. Вам нужно будет прочитать этот метод, понять, какова его цель, и попытаться найти себе значимое имя.

Один вопрос: сколько кода у вас есть? Если в массиве строк есть только несколько имен, то предложение @Nina Scholz кажется довольно разумным. Просто просмотрите их один за другим, в текстовом редакторе и используйте функцию «Найти и заменить».

+0

Нет. Я не хочу этого делать. Я имею в виду; от 'this [_0x1576 [0]]' to 'this.SayHello' – user2976880