C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  Update World C++: Сборник GPL QT исходников
  Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Дебетовая карта Home Credit [CPS] RU

 Как скрыть программу от Ctrl-Alt-Del? / EXE / Приложение

Как скрыть программу от Ctrl-Alt-Del? alexsoft.ru

Иногда бывает необходимо создать программу-невидимку, чтобы ее не видел ни пользователь ни Windows (это может быть как зловредный вирус так и полезный сервис). Ниже приведен код, который необходимо поместить в вашу программу:


#include 
#include 

 BOOL (WINAPI *RegisterServiceProcess)(DWORD dwProcessId,DWORD dwType);

 int main(){

  HINSTANCE hKernel;
  int i=1;
  //Пытаемся получить идентификатор загруженной библиотеки
  hKernel=LoadLibrary("KERNEL32.DLL");

  if(hKernel){
   //Идентификатор загруженной библиотеки был успешно получен
   cout<<"Success load library kernel32.dll"<< endl;
   RegisterServiceProcess=(int(__stdcall*)(DWORD,DWORD))

   GetProcAddress(hKernel,"RegisterServiceProcess");
   if(RegisterServiceProcess){
    //Указатель на функцию RegisterServiceProcess был
    //успешно получен.
    cout<<"Success to have address of the specified exported dynamic-link library (DLL) function"<< endl;

    if(RegisterServiceProcess(GetCurrentProcessId(),i))
     cout<<"Success registers the process as a service process"<< endl;
     //Процесс был успешно зарегестрирован как сервис
   }else{
    //Указатель на функцию RegisterServiceProcess не был успешно получен.
    cout<<"Failed to have address of the specified exported dynamic-link library (DLL) function"<< endl;
    cin>>i;
    return 0;
   }
   }else{
    //Идентификатор загруженной библиотеки не был получен
    cout<<"Failed load library kernel32.dll"<< endl;
    cin>>i;
    return 0;
   }
  cout<<"Registers the process as a service process:1"<< endl;
  cout<<"Unregisters the process as a service process:0"<< endl;
  cin>>i;
  if (RegisterServiceProcess(GetCurrentProcessId(),i)){
   cout<<"Success"<< endl;
  }else{
   cout<<"Failed"<< endl;
  }
  cin>>i;
  return 0;
 }

Не забудьте удалить все cout<< ! Они нужны лишь на этапе прогона программы для наглядности.

Для компиляции использовался C++Builder 5 и MSVC5, проект типа Console Application, чтобы в процессе сборки не было недоразумений проверьте на вкладке Link поле Object libraries/modules, оно должно быть пустым.




Дебетовая карта Home Credit [CPS] RU