Programmzugriff // Programmübergreifendes Delphiprogramm

Bonjour. ^^

Ich hab mal wieder eine Frage.
Wie bewerkstelle ich es mit Delphi, das ich dem Rechner klar mache,
das ein Benutzer einen Befehl bestätigt hat.
Also z.B.:
Wenn der Benutzer auf einen Knopf drückt soll z.B. der "DIR"-
Befehl gesendet werden und das Ergebniss wieder abgefangen werden.
(und in einer Liste dargestellt werden.)

Des weiteren hat ein Kumpel mir so eine Art "Crackme" geschrieben
(eigentlich ist es ein "Key-Gen-Me" (?)), Leider hab ich keinen
Ansatz um ein "KeyGen" zu schreiben.
den einzigen ausweg den ich sehe ist irgendwie alle möglichen
Buchstabenkombinationen durchlaufen zu lassen. Da tut sich nun das
nächste Problem auf:
Wie sage ich dem Rechner das es z.B. mit "aaa" in das Feld schreiben
und dann bestätigen soll.
(Ich hoffe das eckt nichts mit den Board-Regeln an. (Ich habe wirklich keine negativen Absichten dabei.)
Denn ich möchte auch nicht unbedingt in diesem "Geistigen Nichtschwimmerpool"
landen, denn ich hab überall geschaut wo ich konnte. (Ja, auch Google))

Abermals Danke im Vorraus.
 
Also, ich weiß nicht, wie das in Delphi geht (hab außer dessen Oberfläche noch nichts gesehen, bevorzuge eher C++), aber ich kann dir ja mal die Grundlagen erklären.

Als erstes müssen wir den HWND des Key-Gen-Me (also des anderen Programmes kriegen). Dies würde in C++ so gehen. Man nehme die PID (ProcessID) und vergleiche sie mit allen Oberflächen, die man auf dem Desktop hat.
Danach hat man das HWND un dman kann ab jetzt
Code:
::PostMessage(HWND hWnd, int Msg, LPARAM lParam, WPARAM wParam)
oder
Code:
::SendMessage(HWND hWnd, int Msg, LPARAM lParam, WPARAM wParam)
benutzen. Um z.B.: dann das HWND des Edit-Boxes (sie ist eigentlich auch eine "Oberfläche"), kann man das mit dem Befehl
Code:
GetDlgItem(...)
bekommen. Vorausgesetzt, dass du den Namen des Edit-Boxes weißt ;). Ab jetzt kann man eigentlich alles an den Edit-Box/Windows-Desktop schicken.

Also, so würde ich es in C++ machen, doch wie schon oben erwäht, weiß ich nicht, wie Delphi funktioniert (und ich zweifle arg daran, dass man das mit diesem bewerkstelligen könnte, mMn).
MfG
Mobius
 
@Mobius: Die Win32API steht einem in Delphi genauso zur Verfügung wie in anderen Sprachen - deine Erklärung dürfte deshalb auch dort funktionieren =)

@HexADecimal: Du kannst es natürlich mit durchprobieren versuchen - aber wenn der Macher des CrackMEs ein bisschen Verstand hatte dann dürftest du auf diesem Wege nicht weit kommen. CrackMEs werden normalerweise dadurch gelöst, dass man die exe durch einen Disassembler jagt und dann den verwendeten Algorithmus / konstanten Wert dort raussucht. Natürlich braucht man dafür recht gute Assembler-Kenntnisse... ;)
 
Salut,
Das war mir schon klar mit dem Dissambler, ich hab auch ein bisschen drin
rumgepfuscht aber so einfach war das KeyGenMe nicht, das meine Kenntnisse dafür
ausreichen. Trotzdem danke.Mit dem Verstand ist das so eine Sache ...^^
Eine etwas genauere Ausführung wäre sehr hilfreich. (Via Mail?)


Also:
Ich bekomm es gebacken, dass ich die Fehlermeldung, bzw. Erfolgsmeldung finde.
Den jmp kann ich auch noch zurückverfolgen, aber wie bekomm ich dann die Formel
die den Code generiert? Ich hab da kein Hilfreiches Tutorial gefunden. Kennt da jemand eins?
Eine etwas genauere Ausführung wäre sehr hilfreich. (Via Mail?)
(Auch das andere Problem wäre genauer erläutert noch hilfreicher.)


Au revoir,
HexADecimal
 
Zurück
Oben