Среда, 28.06.2017, 11:45 Приветствую вас Гость | Группа "Гости" 


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: Anton93 
delfcode » Delphi » Процедуры и функции Delphi » Полезнейшие модули для делфи!!! (Прилепил)
Полезнейшие модули для делфи!!!
AndroidДата: Воскресенье, 05.02.2012, 10:58 | Сообщение # 1
Постоянный
Зарегистрирован: 13.12.2011
Группа: Пользователи
Сообщений: 100
Статус: Offline
Товарищи!!!!

Очень интересные модули для работы с процессами, памятью чужих процессов. Например, скрытие из списка процессов, разработанные ms-rem'ом.

Вот только почему-то не хочет работать у меня... Все компилится, но почему-то не работает ожидаемым образом. В частности, не вижу эффекта от скрытия процесса...

В модуле Ring0.pas - есть функция для скрытия процесса (HideProcess)/ Вот ее никак не получается у меня заюзать нормально... А кроме того, там еще куча полезного. Например, подгрузка длл в чужой процесс, подгрузка образа своей проги целиком в чужой процесс и т.п. ДАвайте дружно разберемся.

Потестите у себя, товарищи. Помогите разобраться.

з.ы. Почему-то архив с ринг0.пас переобозвался в цифры после загрузки на сайт...
Прикрепления: advapihook.rar(23Kb) · 8877568.rar(6Kb)
 
Волк-1024Дата: Воскресенье, 05.02.2012, 12:19 | Сообщение # 2
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 467
Статус: Offline
Может из-за того, что под Вынь 7 не актуально?

Pascal, C\C++, Assembler, Python
 
AndroidДата: Воскресенье, 05.02.2012, 12:39 | Сообщение # 3
Постоянный
Зарегистрирован: 13.12.2011
Группа: Пользователи
Сообщений: 100
Статус: Offline
я под ХР пытался.
 
dolphinДата: Понедельник, 06.02.2012, 00:22 | Сообщение # 4
Администратор
Сообщений: 902
Статус: Offline
advapihook работает у меня (win7). А ранг 0 разбираться нужно, а там где ты их брал нет примеров?

Система: Windows 10 x64, Windows XP
Среды программирования: Delphi 7, Delphi 10 Seattle

Я не профессионал, я всего лишь любитель
Я не вредитель, я всего лишь теоретик
 
AndroidДата: Понедельник, 06.02.2012, 10:53 | Сообщение # 5
Постоянный
Зарегистрирован: 13.12.2011
Группа: Пользователи
Сообщений: 100
Статус: Offline
так в том и дело, что пример не отрабатывает... подвисает и все... могу их выложить если кому надо.
dolphin, а какие именно функции тестил под семеркой???
 
XSPYДата: Понедельник, 06.02.2012, 21:21 | Сообщение # 6
Продвинутый
Зарегистрирован: 28.01.2010
Группа: Пользователи
Сообщений: 258
Статус: Offline
Про ring 0 достаточно литературы.Честно говоря,я думал что у меня в универе про это не расскажут,но когда на Операционных Системах изучали уровни,то их дофига r0,1,2,3... И что интересно,с r0 работать не сложнее,чем с r3-тут дело только в практике и хорошем справочнике(справочник нужен,чтобы не написать вечный бсод или убийцу компа).

Я не крекер,а программист!
Я не преступник-я свободный человек!
Лучше один раз накодить,чем сто раз качать билды!
 
AndroidДата: Вторник, 07.02.2012, 18:06 | Сообщение # 7
Постоянный
Зарегистрирован: 13.12.2011
Группа: Пользователи
Сообщений: 100
Статус: Offline
Товарищи, посмотрите внимательно - в модуле advapihook есть функции, подгружающие свою длл в чужой процесс. Может у кого-то есть идеи, как потом заставить выполниться определенные функции из библиотеки в контексте другого процесса??? или уж на карйняк своего (но тут вроде понятней - динамически подгрузил библиотеку и норм), но так, чтоб можно было параметры передавать как-нибудь...
 
AndroidДата: Вторник, 07.02.2012, 22:56 | Сообщение # 8
Постоянный
Зарегистрирован: 13.12.2011
Группа: Пользователи
Сообщений: 100
Статус: Offline
Товарищи, сам нашел ответ на свой вопрос, каким же образом передлавать параетры в функцию из длл

Если нужная библиотека еще не загружена, то
Доступно только для пользователей

если библиотека уже загружена, то
Доступно только для пользователей

А вот пара примеров, как это работать должно
Code

(* --------- Sample (GetSystemDirectory) --------- *)

var
     parameters: array of Pointer;
     returned: Cardinal;
     Dir: String;
begin
     SetLength(parameters, 2);
     SetLength(Dir, MAX_PATH); // Set Buffer size
     parameters[0] := Pointer(@Dir[1]); // 1st parameter, buffer for path string
     parameters[1] := Pointer(MAX_PATH); // 2nd parameter, length of buffer
     if not DynamicDllCallName(kernel32, 'GetSystemDirectoryA', true, returned, parameters) then begin
       ShowMessage('Function could not be found!');
     end else begin
       SetLength(Dir, returned); // Cut String
       ShowMessage('GetSystemDirectoryA:'#13#10'Path: ' + Dir + #13#10'Length: ' + IntToStr(returned));
     end;
end;

(* --------- Sample (TextOut) --------- *)

const
     SampleText = 'test';
var
     parameters: array of Pointer;
     returned: Cardinal;
begin
     SetLength(parameters, 5);
     parameters[0] := Pointer(Canvas.Handle); // 1st parameter, handle to the form's canvas
     parameters[1] := Pointer(10); // 2nd parameter, left margin
     parameters[2] := Pointer(30); // 3rd parameter, top margin
     parameters[3] := @SampleText[1]; // 4th parameter, pointer to the sample string
     parameters[4] := Pointer(Length(SampleText)); // 5th parameter, length of the sample string
     if not DynamicDllCallName(gdi32, 'TextOutA', true, returned, parameters) then begin
       ShowMessage('Function could not be found!');
     end else begin
       if not BOOL(returned) then begin // function's result = false
         ShowMessage('TextOut() failed!');
       end;
     end;
end;

(* --------- Sample (LockWorkStation) --------- *)

var
     parameters: array of Pointer;
     returned: Cardinal;
begin
     // We don't have parameters, so we don't touch parameters
     if not DynamicDllCallName(user32, 'LockWorkStation', true, returned, parameters) then begin
       ShowMessage('Function could not be found!');
     end else begin
       if not BOOL(returned) then begin
         ShowMessage('LockWorkStation() failed!');
       end;
     end;
end;


Давайте поразмыслим, как можно еще применять функции, описанные в модулях, прикрепленных в начале темы...

з.ы. Хотел скрыть код функций тэгом хайд - че-то он не заработал...


Сообщение отредактировал Android - Вторник, 07.02.2012, 22:58
 
AndroidДата: Вторник, 07.02.2012, 23:02 | Сообщение # 9
Постоянный
Зарегистрирован: 13.12.2011
Группа: Пользователи
Сообщений: 100
Статус: Offline
Товарищи, помогите разобраться, если я хочу получать строковый результат из функции подгруженной из длл, то как в этом случае надо интерпретировать результат , возвращаемый функцией? Тип результата: pchar.
 
delfcode » Delphi » Процедуры и функции Delphi » Полезнейшие модули для делфи!!! (Прилепил)
Страница 1 из 11
Поиск:

delfcode.ru © 2008 - 2017 Хостинг от uCoz