Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.03.11;
Скачать: CL | DM;

Вниз

Отловить момент запуска   Найти похожие ветки 

 
paul_shmakov ©   (2002-01-12 00:15) [8]

отвечу вместо Ketmar"а :)
функция WriteInt3 записывает по указанному адресу инстукцию int 3 (занимает 1 байт со значением $CC) и возвращает старое значение. int 3 - это команда, генерирующая прерывание с номером 3, которое предназначено для вызова отладчика. именно так и устанавливаются breakpoint-ы в отлаживаемых программах. обнаружив 3-е прерывание система генерирует прерывание EXCEPTION_BREAKPOINT, которое и перехватывает отладчик. при обработке этого события отладчик должен восстановить исходный байт, чтобы позволить программе выполняться дальше.
ну а текст функции может быть примерно таким:

function WriteInt3(hProcess: THandle; const Address: Pointer): Byte;
var
dwDummy: DWord;
Int3: Byte;
begin
ReadProcessMemory(hProcess, Address, @Result, SizeOf(Byte), dwDummy);
Int3 := $CC;
VirtualProtectEx(hProcess, Address, SizeOf(Int3), PAGE_EXECUTE_READWRITE, dwDummy);
WriteProcessMemory(hProcess, Address, @Int3, SizeOf(Int3), dwDummy);
end;



Страницы: 1 вся ветка

Текущий архив: 2002.03.11;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.014 c
7-32598
Ant_bofh
2001-12-04 15:35
2002.03.11
Help !! У меня большой трабл !


4-32603
Burmistroff
2002-01-10 23:54
2002.03.11
Список thread ов в WinNT


1-32500
Sasha9
2002-02-23 19:47
2002.03.11
Как сделать чтобы приложение не закрылось и при этом не зависло, когда в win98 меняешь пользователя(log off)


3-32406
ivans
2002-02-11 16:26
2002.03.11
Подгрузка картинок в DBGrid на лету по имени файла


7-32581
Denst
2001-11-28 21:20
2002.03.11
Как запретить удаление и изменение конкретного файла?