![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| KSURi |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
Есть код, который модифицирует другой код, в частности заменяет имена переменных на случайно сгенерированные строки:
В переменной $source содержится модифицируемый исходник, считанный вот таким макаром:
В дебаггере видно что имена переменных нормально помещаются в @tmp, значит переменные нормально отлавливаются. Однако замены все равно не происходит (с флагом m в s/// тоже)...
Этот код остается без изменений. Иногда, в более больших сорцах замена 2-3 переменных из 10-15 все-таки происходит. В чем трабл? Это сообщение отредактировал(а) KSURi - 17.3.2007, 20:10 -------------------- Died at Life.pl line 21 |
||||||
|
|||||||
| nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 37 Всего: 84 |
не проверял код, просто заметил, попробуйте с переменной работь, т.е.
работаем с $var |
|||
|
||||
| Nab |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 25.3.2006 Где: Kiev Репутация: 26 Всего: 37 |
Ну я думаю последнюю строчку можно заменить вот так, а то боюсь он ее еще раз интерпретирует:
хотя может лучше вот так:
А вообще код не очень внятный...
-------------------- Чтобы правильно задать вопрос нужно знать больше половины ответа... Perl Community FREESCO in Ukraine |
||||||
|
|||||||
| KSURi |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
Nab
tnx, помогл обрамление в \Q...\E ЗЫ: вариант с добавление слэша вообще оказался не рабочим Это сообщение отредактировал(а) KSURi - 17.3.2007, 23:24 -------------------- Died at Life.pl line 21 |
|||
|
||||
| nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 37 Всего: 84 |
KSURi, это необрамление, а экранирование символов...
|
|||
|
||||
| KSURi |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
Ну немного не так выразился) -------------------- Died at Life.pl line 21 |
|||
|
||||
| stan777 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 29.1.2007 Репутация: нет Всего: нет |
Мда кто ж мог знать что в редактируемом скриптом перл-файле могут быть метасимволы
Да так красивше Это сообщение отредактировал(а) stan777 - 19.3.2007, 00:22 |
|||
|
||||
| amg |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Вот в этих строках, в квадратных скобках... Подозреваю, это не совсем то, что имелось в виду. Может, нужно так:
|
||||
|
|||||
| Nab |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 25.3.2006 Где: Kiev Репутация: 26 Всего: 37 |
amg, молодец, я на них просто не обратил внимания... здесь тоже кроеться куча скрытых траблов....
-------------------- Чтобы правильно задать вопрос нужно знать больше половины ответа... Perl Community FREESCO in Ukraine |
|||
|
||||
| tishaishii |
|
|||
![]() Создатель ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1262 Регистрация: 14.2.2006 Где: Москва Репутация: 4 Всего: 8 |
Нет особой возможности сделать это универсально.
Можно, ведь, составлять имена динамически, а ещё есть eval. Вобщем, абсфукация получается для ограниченного количества вариантов. |
|||
|
||||
| tishaishii |
|
|||
![]() Создатель ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1262 Регистрация: 14.2.2006 Где: Москва Репутация: 4 Всего: 8 |
Короче, не знаю что и предложить, примерный вариант для абсфукатора:
Но он не спасает в универсале. Это сообщение отредактировал(а) tishaishii - 20.3.2007, 17:55 |
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |