Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > nthide.dll


Автор: spamici 17.11.2009, 18:28
Всем привет!

Наткнулся на Ваш форум при поиске "как спрятать программу в WinXP" и нашёл это:
http://forum.vingrad.ru/faq/topic-157696.html

Но вопросик: как быть? При компиляции выдает две ошибки на линии 91 - Incompatible types Char and PChar
Помогите пожалуйста чайнику! Спасибо!

Автор: ~FoX~ 17.11.2009, 20:17
spamici, ошибка в 91 строке...
Код покажи, а то все экстросенсы нынче в отпуске....

Автор: Keeper89 17.11.2009, 21:09
И зачем
Цитата(spamici @  17.11.2009,  19:28 Найти цитируемый пост)
чайнику

понадобилось скрывать процесс? smile

~FoX~, +1

Автор: spamici 18.11.2009, 03:17
Так я взял код отсюда: http://forum.vingrad.ru/faq/topic-157696.html .. ВЕСЬ

Код

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; 


Взял код и попытался скомпилировать nthide.dll
На вот этой линии:
Код

    if (lstrcmpiA(pszModName, pszCallerModName) = 0) then break;

Выплевывает 2 ошибки о несовместимости Char и PChar...

Добавлено @ 03:24
Цитата(Keeper89 @ 17.11.2009,  21:09)
И зачем
Цитата(spamici @  17.11.2009,  19:28 Найти цитируемый пост)
чайнику

понадобилось скрывать процесс? smile

~FoX~, +1

Ну... юзаю чит программку в одной сетевой игрушке )) Хочу спрятать чит прогу, мало ли ))))))))
Да и вообще! Учиться не вредно!

Автор: Keeper89 18.11.2009, 12:49
spamici, версия Delphi?

Автор: spamici 18.11.2009, 20:02
2009 =)

Автор: former 18.11.2009, 23:14
Цитата(Keeper89 @  17.11.2009,  21:09 Найти цитируемый пост)
И зачем
Цитата(spamici @  17.11.2009,  19:28) чайнику
понадобилось скрывать процесс? smile


Keeper89, а ты на ник посмотри. Троян пишет, как пить дать. smile  smile 

Автор: spamici 19.11.2009, 02:31
Цитата(former @ 18.11.2009,  23:14)
Цитата(Keeper89 @  17.11.2009,  21:09 Найти цитируемый пост)
И зачем
Цитата(spamici @  17.11.2009,  19:28) чайнику
понадобилось скрывать процесс? smile


Keeper89, а ты на ник посмотри. Троян пишет, как пить дать. smile  smile:

нет! а ник, это потому что не зная куда попадаю, не ставлю свой часто используемый ник, ни мыло ))))))
и уж если я тут не могу разобраться, то до троянов мне далеко!

Автор: kami 19.11.2009, 02:35
Цитата(former @  18.11.2009,  23:14 Найти цитируемый пост)
Троян пишет, как пить дать.

Да и пусть.
От ProcessExplorer таким образом не скрыться. А если еще подключить ProcessHunter, то и другими тоже smile


Цитата(spamici @  18.11.2009,  20:02 Найти цитируемый пост)
2009 =)

В этом модуле заменить везде PChar на PAnsiChar. Может помочь (сильно в код не вникал). Хотя, если там используются функции, имеющие 2 варианта (как, например, lstrcmpi (Unicode и Ansi) ) то это не поможет, а только навредит коду. Единственный выход - внимательно смотреть и править всё либо на юникод либо а ansi.

Автор: ~FoX~ 19.11.2009, 07:43
Xnj вы человека путаете?  smile 
spamici, 
Код

if (lstrcmpiA (PAnsiChar(pszModName), PAnsiChar(pszCallerModName)) = 0)

И там еще косячек есть
Код

 mov Result, eax
end; //<-----точку с запятой надо поставить
procedure InterceptFunctions;


И все у тебя скампилица...тока вот спрятася у меня не получилось..

Автор: kami 19.11.2009, 08:45
Цитата(~FoX~ @  19.11.2009,  07:43 Найти цитируемый пост)
Xnj вы человека путаете?  

Почему путаете?
Цитата(~FoX~ @  19.11.2009,  07:43 Найти цитируемый пост)
if (lstrcmpiA (PAnsiChar(pszModName), PAnsiChar(pszCallerModName)) = 0)

не проще (и правильнее, все-таки в D2009 PChar=PWideChar) сделать
Код

if (lstrcmpiW(pszModName, pszCallerModName) = 0) then

Цитата(~FoX~ @  19.11.2009,  07:43 Найти цитируемый пост)
И все у тебя скампилица..

Скомпилироваться-то скомпилируется, а вот работать правильно - хз...

Автор: ~FoX~ 19.11.2009, 12:15
Цитата(kami @  19.11.2009,  09:45 Найти цитируемый пост)
не проще (и правильнее, все-таки в D2009 PChar=PWideChar) сделать

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

Автор: spamici 19.11.2009, 19:50
Снова привет!
Спасибо - всё скомпилилось и с примером Fox-а и kami да только вот теперь
Код

function HideProcess(pid: DWORD; HideOnlyFromTaskManager: BOOL): BOOL; stdcall; external 'nthide.dll';

procedure TForm1.Button1Click(Sender: TObject);
begin
  HideProcess(GetCurrentProcessId, true);
end;

нифига не прячет (( вижу в TaskManager-е свою Project1.exe... получается не работает этот метод? А где тот который работает? ))

Автор: kami 19.11.2009, 22:30
Цитата(spamici @  19.11.2009,  19:50 Найти цитируемый пост)
получается не работает этот метод?

работает. Но не скрывает от ProcessExplorer и ProcessHunter (у последнего полтора десятка вариантов получения списка процессов, учитывать каждый из них - убиться можно). Когда заморачивался на скрытие, пользовался (возможно, даже именно этим, правда из другого источника) кодом. Компилировалось на D7 и проверялось на WinXP и Win2000. В Vista и Win7 возможно работать не будет.
P.S. Когда понял, что скрываться бесполезно и даже вредно, забросил эту библиотеку куда подальше smile.

Автор: spamici 20.11.2009, 02:35
Цитата(kami @ 19.11.2009,  22:30)
Цитата(spamici @  19.11.2009,  19:50 Найти цитируемый пост)
получается не работает этот метод?

работает. Но не скрывает от ProcessExplorer и ProcessHunter (у последнего полтора десятка вариантов получения списка процессов, учитывать каждый из них - убиться можно). Когда заморачивался на скрытие, пользовался (возможно, даже именно этим, правда из другого источника) кодом. Компилировалось на D7 и проверялось на WinXP и Win2000. В Vista и Win7 возможно работать не будет.
P.S. Когда понял, что скрываться бесполезно и даже вредно, забросил эту библиотеку куда подальше smile.

Так я в WinXP Pro SP3 и у меня он нигде не прячется. При ctrl+alt+del всё равно видно.

Автор: Уттара 23.11.2009, 00:06
nthide.dll отлично прячет процессы, даже касперский не нашел в DLL ничего подозрительного smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)