· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› 2Four-F касательно Strings.mac

Посл.отвђт Сообщенiе


Дата: Авг 30, 2004 20:16:22

Пытаюсь сделать так:
invoke ErrorToLog, $CTA0(" \[Failed to apply protection against TerminateProcess\]")


получаю строку вида:
db ' <Failed to apply protection against _imp__TerminateProcess@8>',0


Вопрос:

Можно ли как-то пофиксить не уходя от макроса?


Дата: Авг 30, 2004 20:24:41

offtop: не по теме, но о наболевшем :)
Тебя еще самого твой TerminateProcess не зае?
/offtop


Дата: Авг 30, 2004 20:51:10

volodya
У меня не было времени им заниматься, сейчас решил доделать наконец-то мессаги и выпустить очередную версию плагина, тем более что в нём был обнаружен и исправлен серьёзный баг, который почему-то проявлялся исключительно на XP(sp2),
так что не зае? ;-)

ЗЫ: Нужно было мне законсперироваться и предложить другую фразу для примера :-)


Дата: Авг 30, 2004 20:51:38

[ volodya: Тебя еще самого твой TerminateProcess не зае? ]

Владимир, не мешайте людям интересоваться моим творчеством :) Хотя, я иногда сам жалею, что его сотворил ;)


[ Asterix: Можно ли как-то пофиксить не уходя от макроса? ]

Можно. Нужно поменять любую букву в TerminateProcess. Можно просто регистр terminateProcess. Такой косяк будет с любым символом. Всё что попало в масмовую символьную таблицу он пытается интерпритировать. Так что любым способом меняй символ, другого выхода не знаю. Кстати, в strings.mac в разделе "L I M I T A T I O N S" про это написано.


Дата: Авг 30, 2004 20:58:08

Four-F
> Кстати, в strings.mac в разделе "L I M I T A T I O N S" про это написано.

Ну да, я помню что где-то читал, но забыл где ;-)

Я думал что можно сделать типа T\erminateProcess, но чтобы символ \ не появлялся в строке а макрос как-то это дело учёл бы :-)


Дата: Авг 30, 2004 21:17:21

Владимир, не мешайте людям интересоваться моим творчеством :)

Господи, да что вы, что вы... Умолкаю. Ухожу :)


Дата: Авг 31, 2004 01:26:00

Прикрутил. Два варианта воркэраунда.

1. Либо определять \* в любом месте имени символа так:
invoke ErrorToLog, $CTA0(" \[Failed to apply protection against Terminate\*Process\]")
Макросы просто пропустят эту эскейп-последовательность.


2. Либо определять любую заведомо неиспользуемую эскейп-последовательность в любом месте имени символа так:
invoke ErrorToLog, $CTA0(" \[Failed to apply protection against T\erminateProcess\]")
Т.к. эскейп-последовательности \e нет, то будет выдано "WARNING!: 'e' : unrecognized character escape sequence", но символ 'e' всё равно будет добавлен. Тут поведение такое же как в ЯВУ компиляторах.



А что там, кстати, с "protection against TerminateProcess"? Функлицирует?


_1623434495__Strings.rar


Дата: Авг 31, 2004 03:41:42

Four-F
> Прикрутил. Два варианта воркэраунда.

Спасибо. ЗдОрово.

> А что там, кстати, с "protection against TerminateProcess"? Функлицирует?

Что-то я не понял вопрос %)


Дата: Авг 31, 2004 16:15:09

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


Дата: Авг 31, 2004 16:56:31

Four-F
Ага, теперь понял.
Нет, с дескриптором что-то дело не пошло, или я намудрил или PETools умеет хорошо процессы убивать ;-)
Я сделал, но методом хука на OpenProcess ;-)


Дата: Авг 31, 2004 17:31:40

Four-F
Хотя, я иногда сам жалею, что его сотворил ;)
А я ничуть не жалею, что ты его сотворил ;), за что тебе отдельное СПАСИБО!


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.116