Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 1 марта!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Программисты долго мучаются с кодом прогаммы, изучают С++, WinAPI функции, MSDN. Потом пишут банальную систему защиты или навешивают банальный протектор, а крэкеры и реверсеры справляются с такой защитой за 5 минут. В итоге, продажи программы почти нулевые. Чтобы такого не допустить, тут самому надо немного поднабрать опыта отладки, реверсинга, тот же отладчик Ollydbg изучить или дизассемблер IDA Pro. Но где искать по крохам эти знания? Нет, конечно можно годами "методом тыка" разбираться, но куда быстрее видеокурс специальный посмотреть. Вот тут он есть: ссылка. Автор курса с большим опытом и объясняет понятно, я из этого курса много узнал про то как работает компьютер, процессор, про инструменты специальные и как с ними работать. Мои коллеги программисты на работе ничего такого и не знают, теперь я им нос утру.

Как сделать, чтобы мою прогу нельзя было бы убить?

Я не пробовал,но imho от End Task это не спасет

From : Dmitry V. Liseev

Делать неубиваемый процесс очень просто. Перед тем, как убить винда сначала попытается завершить его по-хорошему. Тут он и должен запустить свою копию и передать ей все нужные данные перед благополучным завершением.

LRESULT WINAPI WndProc(HWND hWnd, UINT msg,
      WPARAM wParam, LPARAM lParam)
 {
   switch(msg)
   {
      //HANDLE_MSG(hWnd, WM_CREATE, WndProc_OnCreate);
      HANDLE_MSG(hWnd, WM_DESTROY, WndProc_OnDestroy);
      //HANDLE_MSG(hWnd, WM_SIZE, WndProc_OnSize);
      //HANDLE_MSG(hWnd, WM_COMMAND, WndProc_OnCommand);
      default:
         return DefWindowProc(hWnd, msg, wParam, lParam);
   }
 }
 
 void WndProc_OnDestroy(HWND hWnd)
 {
   STARTUPINFO si;
   PROCESS_INFORMATION pi;
 
   // Создадим другой процесс, а этот благополучно завершим.
   memset(&si, 0, sizeof(STARTUPINFO));
   si.cb = sizeof(STARTUPINFO);
   CreateProcess(NULL, "program.exe", NULL, NULL,
       FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi);
   CloseHandle(pi.hThread);
   CloseHandle(pi.hProcess);
   PostQuitMessage(0);
   //return FORWARD_WM_DESTROY(hWnd, DefWindowProc);
 }


<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS