Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 1, 2015 12:28:01

bs0d
Зарегистрирован: 2014-02-01
Сообщения: 76
Репутация: +  2  -
Профиль   Отправить e-mail  

Замена подстрок в файле

Приветствую
Имеется php-файл вида:

$_febe39ac9e9b707d65539e49462d7467f0 = _1945564856(6);
$_fe5a97c7ad8360a3be222258e084b50e7b = _1945564856(7);
$a = 0;
$_fe034ca37dcd2f8e2c651af9635e6f4e85 = str_replace(_1945564856(8) , _1945564856(9) , $_SERVER[_1945564856(10) ]);
$b = 3;
$_fe95f91abbe7b69b8c8249d6222ad1f455 = $_fe034ca37dcd2f8e2c651af9635e6f4e85;
$_fe034ca37dcd2f8e2c651af9635e6f4e85 = trim(str_replace(_1945564856(11) , _1945564856(12) , $_fe034ca37dcd2f8e2c651af9635e6f4e85));
$c = 4;
$_fec58059fc015a31b758b430be299891e7 = $a;

Каждому элементу php-шного массива _1945564856 соответствует элемент питоновского списка с тем же индексом, например:
_1945564856(0) = python_list[0]
_1945564856(1) = python_list[1]

Необходимо произвести замену подстрок _1945564856 на соответствующие элементы из python_list.
Предполагаю, что надо смотреть в сторону re.sub, но сопоставить индексы - у меня не получается

Отредактировано bs0d (Янв. 1, 2015 12:29:16)

Офлайн

#2 Янв. 1, 2015 13:18:05

ajib6ept
От: От: От: От: От: От: От: От:
Зарегистрирован: 2013-08-04
Сообщения: 297
Репутация: +  26  -
Профиль   Отправить e-mail  

Замена подстрок в файле

можно попробовать сгруппировать

#coding: utf-8
import re
PYTHONLIST = [str(k)*5 for k in range(15)]
def main():
    with open ("1.php", "r") as myfile:
        php = myfile.read()
    
    num_list = re.findall('(_1945564856\((.*?)\))', php)
    for num in num_list:
    	php = php.replace(num[0], PYTHONLIST[int(num[1])])
    print php
if __name__ == '__main__':
	main()



_________________________
Python golden rule: Do not PEP 8 unto others; only PEP 8 thy self.
Don't let PEP 8 make you insanely intolerant of other people's code.

Офлайн

#3 Янв. 2, 2015 01:55:44

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Замена подстрок в файле

bs0d
Имеется php-файл вида:
А какой файл нужно получить?



Офлайн

#4 Янв. 2, 2015 13:41:02

bs0d
Зарегистрирован: 2014-02-01
Сообщения: 76
Репутация: +  2  -
Профиль   Отправить e-mail  

Замена подстрок в файле

ajib6ept
благодарю, работает. только группу регулярки поправил на \d+
не знал, что можно получить тюпл групп

py.user.next
да собственно php и надо получить на выходе.
провожу деобфускацию одного интересного скрипта. руками менять 1400+ переменных - как-то не удобно.

Офлайн

#5 Янв. 3, 2015 02:46:00

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Замена подстрок в файле

bs0d
да собственно php и надо получить на выходе.
Имел в виду, что, приводя содержимое исходного файла, также надо приводить содержимое файла, который должен получиться.
По одному словесному описанию часто можно сгенерить разные результаты.



Отредактировано py.user.next (Янв. 3, 2015 02:48:21)

Офлайн

#6 Янв. 3, 2015 09:10:31

bs0d
Зарегистрирован: 2014-02-01
Сообщения: 76
Репутация: +  2  -
Профиль   Отправить e-mail  

Замена подстрок в файле

py.user.next
понял, пардонте, в следующий раз исправлюсь.
не хотелось перегружать пост лишней инфой, чтоли

Офлайн

#7 Янв. 3, 2015 10:39:36

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Замена подстрок в файле

bs0d
провожу деобфускацию одного интересного скрипта. руками менять 1400+ переменных - как-то не удобно.
Для подобных вещей нужно синтаксический анализатор использовать.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version