Форум: "Начинающим";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];
Внизвыполнение 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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.039 c