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

ВИДЕОКУРС ВЗЛОМ
выпущен 2 июня!


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

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



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

Как перехватить закрытие Win32 Console



#include <windows.h>
#include <stdio.h>
#include <conio.h>

HANDLE g_hEvent = 0;

BOOL WINAPI HandlerRoutine(
DWORD dwCtrlType // control signal type
)
{
if (!g_hEvent)
return FALSE;

switch (dwCtrlType)
{
case CTRL_C_EVENT:
printf ("Ctrl+C pressed");
SetEvent (g_hEvent);
break;
case CTRL_BREAK_EVENT:
printf ("Ctrl+Break pressed");
SetEvent (g_hEvent);
break;
case CTRL_CLOSE_EVENT:
printf ("Close pressed");
SetEvent (g_hEvent);
break;
case CTRL_LOGOFF_EVENT:
printf ("User logoff");
SetEvent (g_hEvent);
break;
case CTRL_SHUTDOWN_EVENT:
printf ("System shutdown");
SetEvent (g_hEvent);
break;
}

return TRUE; // as we handle the event
}

int main(int argc, char* argv[])
{
g_hEvent = CreateEvent (NULL, FALSE, FALSE, NULL);
SetConsoleCtrlHandler (HandlerRoutine, TRUE);

if (g_hEvent)
{
printf ("Waiting for the window to close...\n");
WaitForSingleObject (g_hEvent, INFINITE);
CloseHandle (g_hEvent);
}
else
printf ("Error creating event\n");

printf ("\nPress any key to exit!");
getch ();

SetConsoleCtrlHandler (HandlerRoutine, FALSE);
return 0;
}



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

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




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



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


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