· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Исходник хука NTQuerySystemInformation

Посл.отвђт Сообщенiе


Дата: Мар 19, 2004 20:43:22 · Поправил: mix

Я нашел исходник хука на NTQuerySystemInformation, нo к сожалению он на делфе, я смог перевести почти все
на MASM, кроме двух функций :
ReplaceIATEntryInOneMod и InterceptFunctions


Помогите пожайлуста с переводом, уж очень нужно, заранее благодарен.

Вот код хука на Делфе:






procedure ReplaceIATEntryInOneMod(pszCallerModName:Pchar;pfnCurrent:FarProc;pfn N ew:FARPROC;hmodCaller:hModule);
var ulSize:ULONG; pImportDesc:PIMAGE_IMPORT_DESCRIPTOR;pszModName:PChar;
pThunk:PDWORD; ppfn:PFARPROC;ffound:LongBool;written:DWORD;
begin
pImportDesc := ImageDirectoryEntryToData(Pointer(hmodCaller), TRUE,IMAGE_DIRECTORY_ENTRY_IMPORT, ulSize);
if pImportDesc = nil then exit;
while pImportDesc.Name<>0 do
begin
pszModName := PChar(hmodCaller + pImportDesc.Name);
if (lstrcmpiA(pszModName, pszCallerModName) = 0) then break;
Inc(pImportDesc);
end;
if (pImportDesc.Name = 0) then exit;
pThunk := PDWORD(hmodCaller + pImportDesc.FirstThunk);
while pThunk^<>0 do
begin
ppfn := PFARPROC(pThunk);
fFound := (ppfn^ = pfnCurrent);
if (fFound) then
begin
VirtualProtectEx(GetCurrentProcess,ppfn,4,PAGE_EXECUTE_READWRITE,writt en);
WriteProcessMemory(GetCurrentProcess, ppfn, @pfnNew, sizeof(pfnNew), Written);
exit;
end;
Inc(pThunk);
end;
end;









procedure InterceptFunctions;
var hSnapShot:THandle;me32:MODULEENTRY32;
begin
addr_NtQuerySystemInformation:=GetProcAddress(getModuleHandle('ntdll.d ll'),'NtQuerySystemInformation');
hSnapShot:=CreateToolHelp32SnapShot(TH32CS_SNAPMODULE,GetCurrentProces sId);
if hSnapshot=INVALID_HANDLE_VALUE then exit;
try
ZeroMemory(@me32,sizeof(MODULEENTRY32));
me32.dwSize:=sizeof(MODULEENTRY32);
Module32First(hSnapShot,me32);
repeat
ReplaceIATEntryInOneMod('ntdll.dll',addr_NtQuerySystemInformation,@MyN tQuerySystemInfo,me32.hModule);
until not Module32Next(hSnapShot,me32);
finally
CloseHandle(hSnapShot);
end;
end;


Дата: Мар 20, 2004 10:47:14

У меня есть такой же на СИ :) Не нужно?


Дата: Мар 20, 2004 21:00:08

Мне бы даже можно ДЛЛ скомпилированую, чтобы мало весила.


Дата: Мар 20, 2004 22:14:38 · Поправил: hello_world

mix
Я стелс движок недавно накодил, там есть хук NtQuerySystemInformation, который скрывает процессы с определенным ПИДом. Если надо могу намылить.
hello_world@bk.ru


Дата: Мар 21, 2004 10:50:13 · Поправил: mix

Да, если можно то скинь пожайлуста на moderx@mail.ru


Дата: Мар 24, 2004 12:12:54 · Поправил: mix

Помогите пожайлуста перевести этот кусок кода:

while pThunk^<>0 do
begin
ppfn := PFARPROC(pThunk);
fFound := (ppfn^ = pfnCurrent);
if (fFound) then
begin
VirtualProtectEx(GetCurrentProcess,ppfn,4,PAGE_EXECUTE_READWRITE,writt en);
WriteProcessMemory(GetCurrentProcess, ppfn, @pfnNew, sizeof(pfnNew), Written);
exit;
end;
Inc(pThunk);
end;

я типа перевел но чета не работает:

Loop2:
cmp DWORD ptr [pThunk],0 //while pThunk^<>0 do
je DONE
//
push pThunk
pop ppfn

// fFound=EBX
// fFound := (ppfn^ = pfnCurrent);
mov EAX,DWORD ptr [ppfn]
CMP eax,pfnCurrent
jne @FallFound
//begin
push offset written
push PAGE_EXECUTE_READWRITE
push 4
push ppfn
call GetCurrentProcess
push EAX
Call VirtualProtectEx


push offset Written
push 4
push offset pfnNew
push ppfn
call GetCurrentProcess
push EAX
call WriteProcessMemory
//WriteProcessMemory(GetCurrentProcess, ppfn, @pfnNew, sizeof(pfnNew), Written);
jmp done //exit;
//end;
@FallFound:
Inc pThunk
jmp Loop2

done: Выход из цикла


В чем ошибка подскажите пожайлуста?


Дата: Мар 24, 2004 12:41:47

mix
Разве Delphi:'Inc(pThunk)' == ASM:'Inc pThunk'?


Дата: Мар 24, 2004 13:30:13

q_q

Разве Delphi:'Inc(pThunk)' == ASM:'Inc pThunk'?

Да, верно надо было написать add pThunk,4
но к сожалению даже после этого всеравно
цикл не доходит до
VirtualProtectEx
WriteProcessMemory

Может быть у кого нибудь будет другой пример хука таблицы импорта?


Дата: Мар 24, 2004 18:51:41

Все !
Ошибка в
mov EAX,DWORD ptr [ppfn]
CMP eax,pfnCurrent

эх, жалко что никто мне так и не помог.Ассемблершики.


Дата: Апр 4, 2004 18:31:17

mixможет мне тогда скинешь свой исходник на alexCOБАКАkpteam.com


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.052