Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #96, ДЕКАБРЬ 2006 г.

Новогоднее западло

BUG(O)R

Хакер, номер #096, стр. 096-088-5


asm

popad

end;

TMessageBoxA(hWnd, pChar(NewTextA), lpCaption, uType);

end;

Как видишь, в коде выделяется новый буфер и передается вместо старого оригинальной функции. Функция перехвата MessageBoxW будет выглядеть иначе в силу того, что работа с UNICODE-строками происходит по-другому.

Вторая (и последняя) функция перехвата

function NMessageBoxW (hWnd: HWND; lpText, lpCaption: PWideChar; uType: UINT): Integer; stdcall;

begin

asm

pushad

end;

NewTextW := GetMemory((lstrlenw(UnicodeText) + lstrlenw(lpText)) * SizeOf(WideChar) + 20);

lstrcpyW(NewTextW, UnicodeText);

lstrcatW(NewTextW, #10#13#10#13);

lstrcatW(NewTextW, lpText);

lstrcatW(NewTextW, #10#13#10#13);

lstrcatW(NewTextW, UnicodeText);

asm

popad

end;

TMessageBoxW(hWnd, NewTextW, lpCaption, uType);

FreeMemory(NewTextW);

end;

Обрати внимание, что память, которую мы выделили под новый буфер, после использования необходимо освободить. Этим занимается функция FreeMemory. В противном случае произойдет утечка памяти, которая приведет к нехорошим последствиям. Формирование буфера с новым текстом тоже идет по-другому - с использованием специальных функций для UNICODE. В остальном все идентично случаю с MessageBoxA.

И это все?!

Нет, это не все :). На этом движение нашей заподлянской мысли не останавливается. Чтобы быть полностью удовлетворенным, предлагаю тебе в качестве домашнего задания написать программу-замену всех процессов оригинальными именами (snow.exe, santaclaus.exe), интерактивный заменитель печатаемых букв или генератор неприличных обоев на рабочем столе :). Мыслей много, однако рамки статьи не позволяют подробно описать все приколы, родившиеся в моей шальной голове :). Поэтому передаю компилятор в твои жилистые руки. Дерзай, товарищ. И конечно, счастливого Нового года!

Трагическая замена

Примерно 10 лет назад, когда компьютеры были еще в диковинку, произошла одна замечательная история. Девушка устраивалась на работу в хорошую фирму и в качестве первого задания должна была написать какой-то научный доклад. Дома у нее своего компьютера не было, поэтому она работала за компом своего брата. А неудачник-братишка поймал вирус, который в популярном тогда редакторе Lexicon заменял абсолютно все знаки препинания нецензурными выражениями. Причем делал он это при отправке документа на печать. Бедная девушка, естественно, ничего не заметила и сдала работу своему начальнику. Был большой скандал, но потом девицу все-таки реабилитировали и взяли на работу.

К чему я все это? Не повторяй таких злых приколов с твоими товарищами. Это может плохо кончиться. А если и решил постебаться над другом, то обязательно сообщи ему об этом в кратчайшие сроки, пожалей бедолагу :).

DANGER

Используй мои наработки лишь в благих целях, иначе можешь загреметь по статье 273 УК РФ. Ни автор, ни редакция за последствия таких «приколов» ответственности не несут.

DVD

Все исходники и бинарники моих «веселых» программ ты можешь найти на нашем диске.

Назад на стр. 096-088-4  Содержание