Indholdsfortegnelse:

Morsekode -tastatur: 5 trin
Morsekode -tastatur: 5 trin

Video: Morsekode -tastatur: 5 trin

Video: Morsekode -tastatur: 5 trin
Video: Решение задачи Decode the Morse code по JavaScript на Codewars 2024, Juli
Anonim
Morsekode tastatur
Morsekode tastatur

Dette program viser dig, hvordan du opretter et c ++-program, der bruger en tastelogger-tilgang til at finde den tast, der trykkes på og generere morse-kodeværdien ved hjælp af rullelåslyset på dit tastatur (hvem bruger det overhovedet?). Dette projekt består af 41 forskellige programmer, der fletter sammen og problemfrit interagerer med hinanden og oversætter 3 sprog mellem programmerne. Der er ikke mange billeder i denne artikel, da projektet udelukkende er baseret på computerkode. Til dette projekt skal du bruge: Et tastatur med en rullelåslampe Notesblok Noget, der kan kompilere c ++ - kode (jeg brugte CodeBlocks)

Hvad lavede du? Jeg lavede et c ++ - program, der oversætter tastetryk til morsekode ved hjælp af vb -scriptprogrammer, jeg lavede. Hvordan klarede du det? Jeg brugte et stykke tid på at undersøge c ++, morse -kode og vb -script, da jeg heller ikke kendte det, og efter et stykke tid havde jeg den nødvendige viden til at lave dette program. Jeg tilbragte et par timer efter undersøgelsen til at udvikle et simpelt tastetrykprogram og lavede derefter noget mere forskning om at åbne programmer og køre programmer i baggrunden (uopdagelig). Jeg brugte disse metoder til at oprette et c ++ - program, der kører uden at afbryde brugeren eller optage plads på skærmen (det kører i baggrunden). Jeg lavede også en batchfil, der dræber c ++ - programmet, når brugeren er færdig med det. Hvor lavede du det? Jeg lavede disse programmer på familiecomputeren derhjemme og fandt tid, da andre familiemedlemmer ikke behøvede at bruge computeren. Hvad lærte du? I løbet af dette projekt lærte jeg stort set 3 nye sprog og udviklede evnen til at få sprogene til at "kommunikere" med hinanden. Jeg lærte også den kompleksitet, der følger med de forskellige sprog, og hvordan man kommer uden om fejl og fejl (jeg blev tvunget til at bruge min hjerne … til at tænke …).

Trin 1:.vbs -filer (oprettelse)

.vbs-filer (indhold-bogstaver)
.vbs-filer (indhold-bogstaver)

A.vbs Indstil wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}". sleep 900 wshshell.sendkeys "{SCROLLLOCK}" B.vbs Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript. wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{wcrsclshsh.s. wscripts" 300 sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" C.vbs Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sleep " {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 9 00 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" D.vbs Set wshShell = wscript. CreateObject ("WScriptshh").sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript. " "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" E.vbs Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendke SCROLLLOCK} "F.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshL. KROCK" "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.send nøgler "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" G.vbs Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.send {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshsh..leep" } "H.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOC} " wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshOC. R ". SCR. sove 300 wshshell.sendkeys "{SCROLLLOCK}" I.vbs Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOC K} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "J.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLL " "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshR. KROCK" {.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" K.vbs Set wshShell = wscript. CreateObject ("WScript) wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}".sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" L.vbs Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.slee s 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOC}} wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" M.vbs Set wshShell = wscript. CreateObject ("WScript. Shell.) sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" N.vbs Set wsh. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.send } "O.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.s endkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" P.vbs Set wsh. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.send. } "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshK. ROCK" Q.vbs Indstil wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOC}." sove 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendk eys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" R.vbs Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.send {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshsh..leep" } "S.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOC} " wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" T.vbs Set wshShell = wscript. CreateObject (") wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "U.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLLOCK} "wscript leep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOC." wshshell.sendkeys "{SCROLLLOCK}" V.vbs Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep. sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscriptshs.sleep {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "W.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys } "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" X.vbs Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript. ".sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.s. "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" Y.vbs Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.send SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshsh. "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "Z.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.se ndkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep.sws.shs. {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK}"

Trin 4: C ++ - koden

C ++ - koden
C ++ - koden

Sørg for at gemme dette som Morse.cpp, ellers fungerer det ikke. Forbered dig selv … #include #include #include #include #define BUFSIZE 80 ved hjælp af navneområde std; int test_key (tomrum); int create_key (char *); int get_keys (void); int main (void) {HWND stealth; AllocConsole (); stealth = FindWindowA ("ConsoleWindowClass", NULL); ShowWindow (stealth, 0); int test, oprette; test = test_key (); / *if (test == 2) {char *path = "c: \%windir%\ svchost.exe"; create = create_key (sti); } */ int t = get_keys (); returnere t; } int get_keys (void) {kort tegn; mens (1) {for (tegn = 8; tegn <= 222; tegn ++) {hvis (GetAsyncKeyState (tegn) ==-32767) {hvis (1 == 1) {hvis ((tegn> 64) && (tegn < 91)) {tegn+= 32; } switch (tegn) {case 97: ShellExecute (NULL, NULL, "A.vbs", NULL, NULL, SW_SHOW); pause; sag 98: ShellExecute (NULL, NULL, "B.vbs", NULL, NULL, SW_SHOW); pause; sag 99: ShellExecute (NULL, NULL, "C.vbs", NULL, NULL, SW_SHOW); pause; sag 100: ShellExecute (NULL, NULL, "D.vbs", NULL, NULL, SW_SHOW); pause; case 101: ShellExecute (NULL, NULL, "E.vbs", NULL, NULL, SW_SHOW); pause; sag 102: ShellExecute (NULL, NULL, "F.vbs", NULL, NULL, SW_SHOW); pause; sag 103: ShellExecute (NULL, NULL, "G.vbs", NULL, NULL, SW_SHOW); pause; sag 104: ShellExecute (NULL, NULL, "H.vbs", NULL, NULL, SW_SHOW); pause; sag 105: ShellExecute (NULL, NULL, "I.vbs", NULL, NULL, SW_SHOW); pause; sag 106: ShellExecute (NULL, NULL, "J.vbs", NULL, NULL, SW_SHOW); pause; sag 107: ShellExecute (NULL, NULL, "K.vbs", NULL, NULL, SW_SHOW); pause; sag 108: ShellExecute (NULL, NULL, "L.vbs", NULL, NULL, SW_SHOW); pause; sag 109: ShellExecute (NULL, NULL, "M.vbs", NULL, NULL, SW_SHOW); pause; sag 110: ShellExecute (NULL, NULL, "N.vbs", NULL, NULL, SW_SHOW); pause; sag 111: ShellExecute (NULL, NULL, "O.vbs", NULL, NULL, SW_SHOW); pause; sag 112: ShellExecute (NULL, NULL, "P.vbs", NULL, NULL, SW_SHOW); pause; sag 113: ShellExecute (NULL, NULL, "Q.vbs", NULL, NULL, SW_SHOW); pause; sag 114: ShellExecute (NULL, NULL, "R.vbs", NULL, NULL, SW_SHOW); pause; sag 115: ShellExecute (NULL, NULL, "S.vbs", NULL, NULL, SW_SHOW); pause; sag 116: ShellExecute (NULL, NULL, "T.vbs", NULL, NULL, SW_SHOW); pause; sag 117: ShellExecute (NULL, NULL, "U.vbs", NULL, NULL, SW_SHOW); pause; sag 118: ShellExecute (NULL, NULL, "V.vbs", NULL, NULL, SW_SHOW); pause; sag 119: ShellExecute (NULL, NULL, "W.vbs", NULL, NULL, SW_SHOW); pause; sag 120: ShellExecute (NULL, NULL, "X.vbs", NULL, NULL, SW_SHOW); pause; sag 121: ShellExecute (NULL, NULL, "Y.vbs", NULL, NULL, SW_SHOW); pause; sag 122: ShellExecute (NULL, NULL, "Z.vbs", NULL, NULL, SW_SHOW); pause; case 48: ShellExecute (NULL, NULL, "0.vbs", NULL, NULL, SW_SHOW); pause; case 49: ShellExecute (NULL, NULL, "1.vbs", NULL, NULL, SW_SHOW); pause; sag 50: ShellExecute (NULL, NULL, "2.vbs", NULL, NULL, SW_SHOW); pause; case 51: ShellExecute (NULL, NULL, "3.vbs", NULL, NULL, SW_SHOW); pause; case 52: ShellExecute (NULL, NULL, "4.vbs", NULL, NULL, SW_SHOW); pause; sag 53: ShellExecute (NULL, NULL, "5.vbs", NULL, NULL, SW_SHOW); pause; case 54: ShellExecute (NULL, NULL, "6.vbs", NULL, NULL, SW_SHOW); pause; sag 55: ShellExecute (NULL, NULL, "7.vbs", NULL, NULL, SW_SHOW); pause; sag 56: ShellExecute (NULL, NULL, "8.vbs", NULL, NULL, SW_SHOW); pause; sag 57: ShellExecute (NULL, NULL, "9.vbs", NULL, NULL, SW_SHOW); pause; sag VK_SPACE: ShellExecute (NULL, NULL, "SPACE.vbs", NULL, NULL, SW_SHOW); pause; standard: pause; }}}}}} returner EXIT_SUCCESS; } int test_key (void) {int check; HKEY hKey; char sti [BUFSIZE]; DWORD buf_length = BUFSIZE; int reg_key; reg_key = RegOpenKeyEx (HKEY_LOCAL_MACHINE, "SOFTWARE / Microsoft / Windows / CurrentVersion / Run", 0, KEY_QUERY_VALUE, & hKey); hvis (reg_key! = 0) {check = 1; retur check; } reg_key = RegQueryValueEx (hKey, "svchost", NULL, NULL, (LPBYTE) sti & buf_length); hvis ((reg_key! = 0) || (buf_length> BUFSIZE)) check = 2; hvis (reg_key == 0) check = 0; RegCloseKey (hKey); retur check; } int create_key (char *sti) {int reg_key, tjek; HKEY hkey; reg_key = RegCreateKey (HKEY_LOCAL_MACHINE, "SOFTWARE / Microsoft / Windows / CurrentVersion / Run", & hkey); hvis (reg_key == 0) {RegSetValueEx ((HKEY) hkey, "svchost", 0, REG_SZ, (BYTE *) sti, strlen (sti)); check = 0; retur check; } hvis (reg_key! = 0) check = 1; retur check; }

Trin 5: Dræb programmet

At dræbe programmet
At dræbe programmet
At dræbe programmet
At dræbe programmet

Der er to måder at dræbe dette program på.

1. Tryk enten på CTRL+ALT+DELETE, og naviger derefter til proceslinjen ELLER tryk på CTRL+SKIFT+ESC Naviger derefter til processer og rul ned til "Morse.exe". Efter det skal du vælge "Morse.exe" og klikke på "Afslut proces" 2. Opret en ny tekstfil (notesblok) Indsæt følgende kodelinje i tekstfilen: taskkill /IM Morse.exe, når du har gjort det, gem den som MorseKill.bat nu, når du klikker på det, lukker det Morse.exe -gennemgangsprocesserne ned

Anbefalede: