| 
		
		
		
	
		
		
	
		
		
			| Полезнейшие модули для делфи!!! |  |  |  | 
| Android | Дата: Воскресенье, 05.02.2012, 10:58 | Сообщение # 1 |  |   ПостоянныйЗарегистрирован: 13.12.2011 Группа: Пользователи Сообщений: 100 Статус: Offline | Товарищи!!!! 
 Очень интересные модули для работы с процессами, памятью чужих процессов. Например, скрытие из списка процессов, разработанные ms-rem'ом.
 
 Вот только почему-то не хочет работать у меня... Все компилится, но почему-то не работает ожидаемым образом. В частности, не вижу эффекта от скрытия процесса...
 
 В модуле Ring0.pas - есть функция для скрытия процесса (HideProcess)/ Вот ее никак не получается у меня заюзать нормально... А кроме того, там еще куча полезного. Например, подгрузка длл в чужой процесс, подгрузка образа своей проги целиком в чужой процесс и т.п. ДАвайте дружно разберемся.
 
 Потестите у себя, товарищи. Помогите разобраться.
 
 з.ы. Почему-то архив с ринг0.пас переобозвался в цифры после загрузки на сайт...
 |  |  |  |  |  | 
| Волк-1024 | Дата: Воскресенье, 05.02.2012, 12:19 | Сообщение # 2 |  |   АвторитетныйЗарегистрирован: 24.07.2011 Группа: Модераторы Сообщений: 469 Статус: 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 |  |   Администратор Сообщений: 906 Статус: Offline | advapihook работает у меня (win7). А ранг 0 разбираться нужно, а там где ты их брал нет примеров? 
 Система: Windows 10 x64, Kali Linux
 Среды программирования: Delphi 7, Delphi 10.x
 
 Я не профессионал, я всего лишь любитель
 Я не вредитель, я всего лишь теоретик
 |  |  |  |  |  | 
| Android | Дата: Понедельник, 06.02.2012, 10:53 | Сообщение # 5 |  |   ПостоянныйЗарегистрирован: 13.12.2011 Группа: Пользователи Сообщений: 100 Статус: Offline | так в том и дело, что пример не отрабатывает... подвисает и все... могу их выложить если кому надо. dolphin, а какие именно функции тестил под семеркой???
 |  |  |  |  |  | 
| XSPY | Дата: Понедельник, 06.02.2012, 21:21 | Сообщение # 6 |  |   ПродвинутыйЗарегистрирован: 28.01.2010 Группа: Пользователи Сообщений: 263 Статус: 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. |  |  |  |  |  
 |