![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
выполнение int в Windows XP [D7, WinXP]
-=Leshiy=- © (2006-08-19 22:37:00)Подскажите пожалуйста как выполнить всякого рода прерывания int в выполнение int в Windows XP. Только пожалуйста поконкретней. Очень нужно, ПЛАН ГОРИТ!
Чародей (2006-08-24 19:30:00) [1]SYSENTER это и есть fastcall Int 2E. см. Intel'скую документацию
n0name (2006-08-23 19:38:00) [2]
> Чапаев © (23.08.06 19:07) [17]
Как я и написал в посте N15.
Ketmar (2006-08-23 19:30:00) [3]> [17] Чапаев © (23.08.06 19:07)
может быть и так. не пойду проверять. %-) так что ладно -- сдался и согласен. %-)
Чапаев (2006-08-23 19:07:00) [4]> [14] Ketmar © (23.08.06 11:00)
Afaik, в 2000 именно через INT, в ХР -- через SYSENTER.
Ketmar (2006-08-23 12:33:00) [5]> [15] n0name (23.08.06 12:32)
может и так. проверять лениво -- где я, а где OllyDbg. %-)
n0name (2006-08-23 12:32:00) [6]
> на что я и намекал.
Я так и понял, и
> особого отличия в использовании этого прерывания нет.
> но начиная c 2k используется не это, а SYSENTER
ARAIR с XP.
Ketmar (2006-08-23 11:00:00) [7]> [13] n0name (23.08.06 06:05)
на что я и намекал. а насчёт поддержки сервиса int 2Eh... вот лень проверять, может и погорячился, сказав, что это сразу не работает. но начиная c 2k используется не это, а SYSENTER. впрочем, что пнём о сову, что совой...
n0name (2006-08-23 06:05:00) [8]Ketmar © (22.08.06 20:51) [12]
Не удивительно. Тк номера функций отличаются.
Ketmar (2006-08-22 20:51:00) [9]Win2K SP4. кирдык.
n0name (2006-08-22 19:27:00) [10]
> потому что такого системного сервиса в 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 19:12:00) [11]> [9] n0name (22.08.06 19:01)
угу. отличий нет. потому что такого системного сервиса в 2k/XP тоже нет. потому и отличаться ему не от чего.
n0name (2006-08-22 19:01:00) [12]
> а 2k/XP -- это уже и не "линейка NT" вовсе? тогда, пардон,
> что это?
Я же написал что не понял что ты имел ввиду вот этим:
> а уж в 2k/XP...
Как понял я, что различия между ними существенные, вот и написал что особого отличия в использовании этого прерывания нет.
Ketmar (2006-08-22 18:28:00) [13]> [7] n0name (22.08.06 12:56)
а 2k/XP -- это уже и не "линейка NT" вовсе? тогда, пардон, что это?
n0name (2006-08-22 12:56:00) [14]>Ketmar © (22.08.06 11:23) [6]
Имеется ввиду не то что есть какой-то стандарт, а то что эти прерывания являются частью ОСи.
Последнюю фразу не понял. 2Eh и доступно только в линейке NT.
Ketmar (2006-08-22 11:23:00) [15]> [5] n0name (22.08.06 10:57)
ага. очень стандартные. особенно хорошо они стандартизованы в разных SP. а уж в 2k/XP...
n0name (2006-08-22 10:57:00) [16]
> tesseract © (19.08.06 22:38) [1]
Есть стандартные прерывания для WinNT int 2Eh например.
> -=Leshiy=- (19.08.06 22:37)
Тебе проще драйвер написать.
Сергей М. (2006-08-21 09:17:00) [17]
> Очень нужно, ПЛАН ГОРИТ!
asm
int Номер_всякого_рода_прерывания
end
План спасен)
Германн (2006-08-20 00:24:00) [18]
> -=Leshiy=- (19.08.06 22:37)
>
> Подскажите пожалуйста как выполнить всякого рода прерывания
> int в выполнение int в Windows XP. Только пожалуйста поконкретней.
> Очень нужно, ПЛАН ГОРИТ!
Не волнуйся ты так уж. Ну сгорел, так сгорел. Переходи к следущему плану. Только заранее, а не тогда, когда "уже горит".
Чапаев (2006-08-19 22:57:00) [19]> [0] -=Leshiy=- (19.08.06 22:37)
В общих чертах -- никак. Не, ну есть хацкерские фокусы... Но ты знаешь, какие там функции у виндовых прерываний?
tesseract (2006-08-19 22:38:00) [20]нельзя в NT использывать прерывания. HAL этого не любит.