2016-04-28 13 views
-3

Frage am Ende des Codes.Batch Script Keylogger

Mein Code:

@echo off 
color 0a 
title Keylogger 
goto start 

:start 
cls 
choice /c qwertyuiopasdfghjklzxcvbnm1234567890 >nul 
if %errorlevel% == 1 goto q 
if %errorlevel% == 2 goto w 
if %errorlevel% == 3 goto e 
if %errorlevel% == 4 goto r 
if %errorlevel% == 5 goto t 
if %errorlevel% == 6 goto y 
if %errorlevel% == 7 goto u 
if %errorlevel% == 9 goto i 
if %errorlevel% == 10 goto o 
if %errorlevel% == 11 goto p 
if %errorlevel% == 12 goto a 
if %errorlevel% == 13 goto s 
if %errorlevel% == 14 goto d 
if %errorlevel% == 15 goto f 
if %errorlevel% == 16 goto g 
if %errorlevel% == 17 goto h 
if %errorlevel% == 18 goto j 
if %errorlevel% == 19 goto k 
if %errorlevel% == 20 goto l 
if %errorlevel% == 21 goto z 
if %errorlevel% == 22 goto x 
if %errorlevel% == 23 goto c 
if %errorlevel% == 24 goto v 
if %errorlevel% == 25 goto b 
if %errorlevel% == 26 goto n 
if %errorlevel% == 27 goto m 
if %errorlevel% == 28 goto 1 
if %errorlevel% == 29 goto 2 
if %errorlevel% == 30 goto 3 
if %errorlevel% == 31 goto 4 
if %errorlevel% == 32 goto 5 
if %errorlevel% == 33 goto 6 
if %errorlevel% == 34 goto 7 
if %errorlevel% == 35 goto 8 
if %errorlevel% == 36 goto 9 
if %errorlevel% == 37 goto 0 

:q 
cls 
echo q >> %USERPROFILE%\desktop\test.txt 
goto start 

:w 
cls 
echo w >> %USERPROFILE%\desktop\test.txt 
goto start 

:e 
cls 
echo e >> %USERPROFILE%\desktop\test.txt 
goto start 

:r 
cls 
echo r >> %USERPROFILE%\desktop\test.txt 
goto start 

:t 
cls 
echo t >> %USERPROFILE%\desktop\test.txt 
goto start 

:y 
cls 
echo y >> %USERPROFILE%\desktop\test.txt 
goto start 

:u 
cls 
echo u >> %USERPROFILE%\desktop\test.txt 
goto start 

:i 
cls 
echo i >> %USERPROFILE%\desktop\test.txt 
goto start 

:o 
cls 
echo o >> %USERPROFILE%\desktop\test.txt 
goto start 

:p 
cls 
echo p >> %USERPROFILE%\desktop\test.txt 
goto start 

:a 
cls 
echo a >> %USERPROFILE%\desktop\test.txt 
goto start 

:s 
cls 
echo s >> %USERPROFILE%\desktop\test.txt 
goto start 

:d 
cls 
echo d >> %USERPROFILE%\desktop\test.txt 
goto start 

:f 
cls 
echo f >> %USERPROFILE%\desktop\test.txt 
goto start 

:g 
cls 
echo g >> %USERPROFILE%\desktop\test.txt 
goto start 

:h 
cls 
echo h >> %USERPROFILE%\desktop\test.txt 
goto start 

:j 
cls 
echo j >> %USERPROFILE%\desktop\test.txt 
goto start 

:k 
cls 
echo k >> %USERPROFILE%\desktop\test.txt 
goto start 

:l 
cls 
echo l >> %USERPROFILE%\desktop\test.txt 
goto start 

:z 
cls 
echo z >> %USERPROFILE%\desktop\test.txt 
goto start 

:x 
cls 
echo x >> %USERPROFILE%\desktop\test.txt 
goto start 

:c 
cls 
echo c >> %USERPROFILE%\desktop\test.txt 
goto start 

:v 
cls 
echo v >> %USERPROFILE%\desktop\test.txt 
goto start 

:b 
cls 
echo b >> %USERPROFILE%\desktop\test.txt 
goto start 

:n 
cls 
echo n >> %USERPROFILE%\desktop\test.txt 
goto start 

:m 
cls 
echo m >> %USERPROFILE%\desktop\test.txt 
goto start 

:1 
cls 
echo 1 >> %USERPROFILE%\desktop\test.txt 
goto start 

:2 
cls 
echo 2 >> %USERPROFILE%\desktop\test.txt 
goto start 

:3 
cls 
echo 3 >> %USERPROFILE%\desktop\test.txt 
goto start 

:4 
cls 
echo 4 >> %USERPROFILE%\desktop\test.txt 
goto start 

:5 
cls 
echo 5 >> %USERPROFILE%\desktop\test.txt 
goto start 

:6 
cls 
echo 6 >> %USERPROFILE%\desktop\test.txt 
goto start 

:7 
cls 
echo 7 >> %USERPROFILE%\desktop\test.txt 
goto start 

:8 
cls 
echo 8 >> %USERPROFILE%\desktop\test.txt 
goto start 

:9 
cls 
echo 9 >> %USERPROFILE%\desktop\test.txt 
goto start 

:0 
cls 
echo 0 >> %USERPROFILE%\desktop\test.txt 
goto start 

Ich denke, meine Frage ist, was ist falsch? Es zeigt einige Buchstaben an, die in der test.bat als unterschiedliche Zeichen eingegeben wurden, auch wenn der Code richtig erscheint. Was mache ich falsch?

+2

Es ist unklar, was Sie fragen. Was erwartest du von ihm und was macht es eigentlich? –

Antwort

2

Nun, wenn Sie mich fragen "was ist falsch mit diesem Code", ist meine Antwort: es ist ein klassisches Beispiel für die Gründe, warum Leute, die Batch-Dateien nicht genug wissen, dass Batch-Datei-Programmierung rudimentär ist und grob, und das Batch ist nicht wirklich eine "Programmiersprache".

Es ist möglich, die exakt gleiche Methode in irgendeiner "realen Programmiersprache" (wie C#, Java, Phyton, usw.) zu verwenden. Aus Gründen, die ich nicht ergründen kann, sind die geposteten Beispiele dieses Typs viel zahlreicher als eine Batch-Datei, die jede andere Sprache hat.

Dies ist die Art, wie ich die gleiche Aufgabe tun würde:

@echo off 
setlocal EnableDelayedExpansion 

color 0a 
title Keylogger 

set "chars= qwertyuiopasdfghjklzxcvbnm1234567890" 

:start 
cls 
choice /c %chars% >nul 
>> %USERPROFILE%\desktop\test.txt echo !chars:~%errorlevel%,1! 
goto start 

Other than that, ich verstehe nicht, was Sie fordern wirklich ...

1

Sie haben eine Off-by- Ein Fehler in Ihrem Code.

In Ihrem if prüft, haben Sie keine Bedingung für wenn %errorlevel% gleich 8 ist, und so wird jede Taste nach u in der Auswahlliste durch die falsche if Anweisung überprüft. Ich sollte 8, O sollte 9 usw. sein. Sie sollten nur 36 Schecks haben.

1

Überprüfen Sie auf der Linie 15, Sie haben etwas verpasst. : D

if %errorlevel% == 8 goto ?

Verwandte Themen