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

Вниз

выполнение int в Windows XP   Найти похожие ветки 

 
-=Leshiy=-   (2006-08-19 22:37) [0]

Подскажите пожалуйста как выполнить всякого рода прерывания int в выполнение int в Windows XP. Только пожалуйста поконкретней. Очень нужно, ПЛАН ГОРИТ!


 
tesseract ©   (2006-08-19 22:38) [1]

нельзя в NT использывать прерывания. HAL этого не любит.


 
Чапаев ©   (2006-08-19 22:57) [2]

> [0] -=Leshiy=-   (19.08.06 22:37)

В общих чертах -- никак. Не, ну есть хацкерские фокусы... Но ты знаешь, какие там функции у виндовых прерываний?


 
Германн ©   (2006-08-20 00:24) [3]


> -=Leshiy=-   (19.08.06 22:37)
>
> Подскажите пожалуйста как выполнить всякого рода прерывания
> int в выполнение int в Windows XP. Только пожалуйста поконкретней.
>  Очень нужно, ПЛАН ГОРИТ!

Не волнуйся ты так уж. Ну сгорел, так сгорел. Переходи к следущему плану. Только заранее, а не тогда, когда "уже горит".


 
Сергей М. ©   (2006-08-21 09:17) [4]


> Очень нужно, ПЛАН ГОРИТ!


asm
 int Номер_всякого_рода_прерывания
end

План спасен)


 
n0name   (2006-08-22 10:57) [5]


> tesseract ©   (19.08.06 22:38) [1]

Есть стандартные прерывания для WinNT int 2Eh например.
> -=Leshiy=-   (19.08.06 22:37) 

Тебе проще драйвер написать.


 
Ketmar ©   (2006-08-22 11:23) [6]

> [5] n0name   (22.08.06 10:57)
ага. очень стандартные. особенно хорошо они стандартизованы в разных SP. а уж в 2k/XP...


 
n0name   (2006-08-22 12:56) [7]

>Ketmar ©   (22.08.06 11:23) [6]
Имеется ввиду не то что есть какой-то стандарт, а то что эти прерывания являются частью ОСи.
Последнюю фразу не понял. 2Eh и доступно только в линейке NT.


 
Ketmar ©   (2006-08-22 18:28) [8]

> [7] n0name   (22.08.06 12:56)
а 2k/XP -- это уже и не "линейка NT" вовсе? тогда, пардон, что это?


 
n0name   (2006-08-22 19:01) [9]


> а 2k/XP -- это уже и не "линейка NT" вовсе? тогда, пардон,
>  что это?

Я же написал что не понял что ты имел ввиду вот этим:

> а уж в 2k/XP...

Как понял я, что различия между ними существенные, вот и написал что особого отличия в использовании этого прерывания нет.


 
Ketmar ©   (2006-08-22 19:12) [10]

> [9] n0name   (22.08.06 19:01)
угу. отличий нет. потому что такого системного сервиса в 2k/XP тоже нет. потому и отличаться ему не от чего.


 
n0name   (2006-08-22 19:27) [11]


> потому что такого системного сервиса в 2k/XP тоже нет


program Int2EhInterface;

type
DWORD = Cardinal;
PChar = Pointer;
NTSTATUS = Integer;

PDWORD = ^DWORD;

function MessageBoxA(HWND: DWORD; Msg, Capt: PChar; uType: DWORD): Integer; stdcall; external "user32.dll";

const
Msg: array [0..8] of char = "Test Msg"#0;
Capt: array [0..9] of char = "Test Capt"#0;

function DoInt2Eh(SysN: Integer): NTSTATUS; stdcall; assembler;
asm
mov eax, [ebp + 8]
lea edx, [ebp + 20]
int 2Eh
end;

function ZwTerminateProcess(hProcess: DWORD; uCode: DWORD): NTSTATUS; stdcall; assembler;
asm
push 101h
call DoInt2Eh;
end;

function ZwWriteVirtualMemory(hProcess: DWORD; BaseAddress: Pointer; Buffer: Pointer; Size: DWORD; bw: PDWORD): NTSTATUS;
stdcall; assembler;
asm
push 115h
call DoInt2Eh
end;

procedure DoMessage;
begin
MessageBoxA(0, @Msg, @Capt, 0);
end;

var
Buf: DWORD;

begin
Buf := $6C6F6F43;
DoMessage;
ZwWriteVirtualMemory(DWORD(-1), @Msg, @Buf, 4, nil);
DoMessage;
ZwTerminateProcess(DWORD(-1), 0);
end.


Тестировал в WinXP.


 
Ketmar ©   (2006-08-22 20:51) [12]

Win2K SP4. кирдык.


 
n0name   (2006-08-23 06:05) [13]

Ketmar ©   (22.08.06 20:51) [12]
Не удивительно. Тк номера функций отличаются.


 
Ketmar ©   (2006-08-23 11:00) [14]

> [13] n0name   (23.08.06 06:05)
на что я и намекал. а насчёт поддержки сервиса int 2Eh... вот лень проверять, может и погорячился, сказав, что это сразу не работает. но начиная c 2k используется не это, а SYSENTER. впрочем, что пнём о сову, что совой...


 
n0name   (2006-08-23 12:32) [15]


> на что я и намекал.

Я так и понял, и

> особого отличия в использовании этого прерывания нет.


>  но начиная c 2k используется не это, а SYSENTER

ARAIR с XP.


 
Ketmar ©   (2006-08-23 12:33) [16]

> [15] n0name   (23.08.06 12:32)
может и так. проверять лениво -- где я, а где OllyDbg. %-)


 
Чапаев ©   (2006-08-23 19:07) [17]

> [14] Ketmar ©   (23.08.06 11:00)

Afaik, в 2000 именно через INT, в ХР -- через SYSENTER.


 
Ketmar ©   (2006-08-23 19:30) [18]

> [17] Чапаев ©   (23.08.06 19:07)
может быть и так. не пойду проверять. %-) так что ладно -- сдался и согласен. %-)


 
n0name   (2006-08-23 19:38) [19]


> Чапаев ©   (23.08.06 19:07) [17]

Как я и написал в посте N15.


 
Чародей ©   (2006-08-24 19:30) [20]

SYSENTER это и есть fastcall Int 2E. см. Intel"скую документацию



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

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

Наверх




Память: 0.51 MB
Время: 0.07 c
4-1147954099
Владимир
2006-05-18 16:08
2006.09.17
Раскрытие, затем удаление архива...


1-1154095062
Still Swamp
2006-07-28 17:57
2006.09.17
Как бы запретить изменение TComboBox.Text?


10-1123487125
Roman-620
2005-08-08 11:45
2006.09.17
Stack overflow


2-1156837256
тюбик
2006-08-29 11:40
2006.09.17
вывод версий


2-1156775394
AlexanderMS
2006-08-28 18:29
2006.09.17
Флаги.