Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1156254291
ArtemESC
2006-08-22 17:44
2006.09.17
Сколько на дискете дорожек, и сколько в дорожках секторов?


2-1156754056
XTD
2006-08-28 12:34
2006.09.17
Почему в процедуре FormCreate; не работает Form1.Visible:=False;?


3-1152312861
S@shka
2006-07-08 02:54
2006.09.17
Можно ли оценить размер БД


6-1146013749
tigra
2006-04-26 05:09
2006.09.17
TIdAttachment


3-1149777720
Василий
2006-06-08 18:42
2006.09.17
Формирование расп. занят. в ВУЗе, способом эксп-та из БД в Excel





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский