Найти - Пользователи
Полная версия: Замена подстрок в файле
Начало » Python для новичков » Замена подстрок в файле
1
bs0d
Приветствую
Имеется 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, но сопоставить индексы - у меня не получается
ajib6ept
можно попробовать сгруппировать

#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()
py.user.next
bs0d
Имеется php-файл вида:
А какой файл нужно получить?

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

py.user.next
да собственно php и надо получить на выходе.
провожу деобфускацию одного интересного скрипта. руками менять 1400+ переменных - как-то не удобно.
py.user.next
bs0d
да собственно php и надо получить на выходе.
Имел в виду, что, приводя содержимое исходного файла, также надо приводить содержимое файла, который должен получиться.
По одному словесному описанию часто можно сгенерить разные результаты.
bs0d
py.user.next
понял, пардонте, в следующий раз исправлюсь.
не хотелось перегружать пост лишней инфой, чтоли
Shaman
bs0d
провожу деобфускацию одного интересного скрипта. руками менять 1400+ переменных - как-то не удобно.
Для подобных вещей нужно синтаксический анализатор использовать.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB