Programm analysieren / debuggen

Hallo in die Runde,

ich habe hier ein „Problem“: Ich möchte heraus finden, was ein Programm genau mit einer Datei macht. Das Programm liest die Datei beim Start und berechnet daraus zwei Daten für die Gültigkeit der angezeigten Daten (Gültig ab … und bis …). Die Datei selber enthält aber nur kryptische Zeichen. Ich habe versuchsweise an verschiedenen Stellen einzelne Bytes geändert und damit erreicht, dass sich die berechneten Daten geändert haben. Das war bis jetzt aber eher ein Zufallstreffer, ich kann die Daten nicht gezielt ändern.

Es ist eine Art Kryptoanalyse oder Debugging des Programms. Die verwendete Datei habe ich mit dem Prozessmonitor heraus gefunden, aber der sagt mir nur, dass die entsprechnede Datei gesucht und gelesen wird.

Gibt es irgendwas, mit dem ich „zusehen“ kann, was das Programm mit den gelesenen Daten macht ?

Danke im Voraus für alle, die darüber nachdenken.

lojope

Hi,

wenn Du das Programm debuggen willst, dann brauchst Du einen Debugger.
Wenn es ein Windows Programm ist, dann kannst Du zum Beispiel das Microsoft Visual Studio nehmen und Dich damit an den Prozess anklemmen.

Damit kannst Du ohne den Sourcecode zu haben allerdings nur den Assembler code verfolgen. Mit entsprechenden Kenntnissen ist das aber schon ausreichend.

Gruss,
Herb

Hallo

Gibt es irgendwas, mit dem ich „zusehen“ kann, was das
Programm mit den gelesenen Daten macht ?

Um Herbs Antwort zu konkretisieren:
http://www.hex-rays.com/idapro/

Grüße

CMБ

Hallo!
Nach Deiner Beschreibung hört es sich fast so an, als möchtest Du ein Programm disassemblieren, um Verschlüsselungen zu knacken, die der Hersteller absichtlich hinterlegt hat, um bspw. die Laufzeit einer Demoversion o.ä. zu überwachen.
Generell bewegst Du Dich auf recht dünnem Eis, wenn Du so etwas versuchst:
http://bundesrecht.juris.de/urhg/__69e.html

Gruß,
Martin

Hallo,

im Prinzip hört es sich so an. Aber es ist nicht ganz so einfach (interessant zu den rechtlichen Aspekten ist auch der Artikel in Wikipedia zu Disassembler).

Womit ich arbeite sind Programme, die auch einen Datenbestand mitbringen. Was die nun machen, ist regelmäßig den Datenbestand zu aktualisieren und gleichzeitig eine Gültigkeit fest zu legen. Nun kann es sein, dass in neueren Versionen Informationen, die für mich interessant sind, gelöscht werden (ersatzlos), ich aber wegen der Gültigkeitsprüfung nicht einfach (die Betonung liegt auf „einfach“) auf ältere Informationen zugreifen kann.

Das Programm habe ich erworben und mag nicht akzeptieren, dass es mich im Informationszugriff (genau dafür habe ich bezahlt) beschränkt.

Zweites und viel wichtigeres Problem ist, dass die Programmoberflächen teilweise so unhandlich und lahm sind, dass ich lieber direkt auf anderem Weg auf die Informationen zugreifen möchte. Außerdem kann ich sie dann besser in Übersichten einbinden.

Drittens kann ich ja auch versuchen einen Mechanismus zu analysieren, ohne die dabei gewonnenen Erkenntnisse auf dieses Programm anzuwenden. Es gibt auch einen „sportlichen“ Aspekt. Andere Leute machen Sudoku…

Sicherlich ist das eine Grauzone und ich behalte den rechtlichen Aspekt im Auge. Aber die Zulässigkleit diverser Teile von Lizenzbestimmungen ist auch schon oft von Gerichten aufgehoben worden.

Gruß, lo