• XSS.stack #1 – первый литературный журнал от юзеров форума

Не получается захучить API :(

Challanger

floppy-диск
Пользователь
Регистрация
07.06.2013
Сообщения
3
Реакции
0
Вопрос к кодерам Delphi. пытаюсь захучить API MoveFileExW для запрета удаления файла. Написал DLL:

Код:
library my_dll;

 uses
 windows, dialogs, SysUtils;

type

OC=packed record
frst:dword;
sec:word;
end;

fj= packed record
pusho:byte;
pushar:pointer;
reto:byte;
end;


var
jmpmw,jmpma:fj;
ocmw,ocma:oc;
mwadr,maadr:pointer;





var TrueMoveFileEx: function(lpExistingFileName, lpNewFileName: PWideChar; dwFlags: DWORD): BOOL; stdcall;


function NewMoveFileExW(lpExistingFileName, lpNewFileName: PWideChar; dwFlags: DWORD): BOOL; stdcall;
var
filez :string;
begin
filez := lpExistingFileName;
if pos('log.txt',filez)<>0 then lpExistingFileName:='';
result:= TrueMoveFileEx(lpExistingFileName, lpNewFileName, dwFlags);
end;



procedure SetHook;
var
 hwnd: dword;
 Byte: dword;
 mwadr: Pointer;
begin
hwnd := GetModuleHandle('kernel32.dll');
mwadr  := GetProcAddress(hwnd, 'MoveFileExW');
ReadProcessMemory(INVALID_HANDLE_VALUE, mwadr, @ocmw, SizeOf(OC), Byte);
jmpmw.pusho  := $68;
jmpmw.PushAr := @NewMoveFileExW;
jmpmw.RetO   := $C3;
WriteProcessMemory(INVALID_HANDLE_VALUE, mwadr, @jmpmw, SizeOf(fj), Byte);
end;

begin
SetHook;
end.

И инжектю эту dll-ку в explorer.exe - результата никакого. С инжектом всё в порядке, проверено на 100%. Пробовал хучить другие апи типа DeleteFile и инжектить в своё приложение которое как раз и использует DeleteFile но всё так же :(
 
Apocalypse почему в ntdll нужно хучить? И если не сложно предоставьте пример как использовать VirtualProtect в моём случае, т.к ещё довольно слабо разбираюсь во всём этом. (гугл читал, просьба не посылать туда)
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Challanger
Видать потому, что ntdll это самый низкий уровень (в ринг3), и вызовы апи сводятся к этой длл.

Через VirtualProtect надо установить атрибут PAGE_READWRITE , так как страницы в области памяти, которую вы меняете, могут быть недоступны для записи.

Почитайте статьи мс-рем, там как раз на этом паскале все сорцы и объяснения.
 
Очень кривой и страшный код. Нигде не устанавливается значение переменной TrueMoveFileEx, хотя именно она используется для вызова оригинальной функции.
И как уже написали выше:
>> Почитайте статьи мс-рем, там как раз на этом паскале все сорцы и объяснения.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх