Parameter Austausch zwischen PHP und c#/c++

08/15/2011 12:24 Fiiine#1
Hallo Leute,
ich brauche Hilfe zu einer Problemstellung und dachte mir deswegen, dass ich das Problem kurz hier schildere und mir einige Tipps nehme, wie ich am besten zu einer Lösung gelange.

Die Ausgangslage ist folgende:

1. Ein Programm, das in c#/c++ geschrieben ist, ruft eine PHP Seite auf. Das Programm fängt den Inhalt dieser Seite z.B. "AAA" (was nur einige Zeichen sind) ab.

2. Versucht man hingegen diesen gleich Link manuell über einen beliebigen Browser zu öffnen, so erhält man im Gegensatz zu 1. ganz andere Zeichen z.B.
"CBC".

Auf die Gefahr hin, dass ich mich vor den hier lesenden Coder blamiere, behaupte ich, dass das Programm an den Server den eigen User Agent Namen sendet, das PHP Skript diesen User Agent Namen prüft und dann die in Punkt 1 beschrieben Zeichen erzeugt. Ist es ein "falscher" User Agent, so wird die Ausgabe wie in Punkt 2 sein.


Meine Frage lautet daher, ob es möglich ist, die Daten mittels eines Sniffers auszulesen, eine eigene PHP Seite zu erzeugen und die korrekten Zeichen erzeugen zu lassen. Dazu kommt noch, dass das Programm diese Zeichen erhalten muss.


Mein Geschwafel mag etwas kompliziert formuliert sein, doch ich wäre sehr froh, wenn mir jemand helfen könnte. Bei erfolgreicher Umsetzung meines Vorhabens spende ich all meine e*gold ODER sende einen fairen Betrag über Paypal.



Über Code Snippets, die eine mögliche Umsetzung aufzeigen, würde ich mich sehr freuen! :)


Lg,

Fiiine
08/15/2011 12:54 boxxiebabee#2
Naja, was für ein PHP Script ist es denn? Ohne zuwissen was es macht, wird es relativ schwer sein dir zu helfen.

Du kannst doch ganz einfach testen ob es nach dem User Agent überprüft.
Ruf die Seite mit gefakten User Agents über HttpRequest auf (gibt aber auch sicher Addons für Firefox) und vergleiche dann die Daten.
08/15/2011 13:08 xNopex#3
Nimm Wireshark, schau dir die Anfrage des Clients an, setz sie in deinem Programm 1:1 um und schau ob es dann funktioniert. Bzw. mit TamperData (FireFox-Addon) kannst du die Requests dann auch "live" im Browser bearbeiten, dann sparst du dir die Programmierarbeit.
08/15/2011 13:10 Zero Day Exploit#4
Mhm ich versteh dein problem nicht du hast es leider recht verwirrent geschrieben :D
Also mal ganz langsam du schreibst nen programm der soll auf einer homepage gehen z.B
meinephphp.de auf der homepage steht z.B bbb dies soll er nehmen und auf deine txtbox senden oder so.
Jedoch wenn du immer manuell halt ueber browser auf die hp gehst steht da eig. garnicht bbb sonder ghj stimmt das so?

Wenn ja solltes du bedenken das php serverside ist und deswegen ohne zugriff auf einem webserver nur die html ausgaben holen kannst :D
08/15/2011 13:44 Fiiine#5
Vielen Dank für die Tipps, die ich auch heute mittag wohl noch umsetzen werde!


Also ich beschreibe es mal anders.
Das Programm und das PHP Skript gehören dem Besitzer A und wurden auch von ihm geschrieben. B kennt daher den Source nicht. Das Programm kann man frei downloaden. Wenn das Programm gestartet wird, wird program-mintern eine URL aufgerufen (PHP-Skript) und dieses Skript sendet eine bestimmte Zeichenfolge an das Programm zurück.
-> Lizenzcheck.
Wenn man jedoch dieselbe URL mittels Chrome/Firefox etc. öffnet, dann kommt der Wert 0 zurück, was für Failure steht.

Daher scheint es mir logisch, dass dieses Programm über bestimmte Header Daten sendet, welche von PHP geprüft werden. Der Grund ist einfach: Da ja jeder Zugriff auf die URL hat, kann er die URL auch manuell aufrufen. Daher besteht der Clou darin, dass diese URL von diesem Programm geöffnet wird.


Vielleicht ist es jetzt etwas verständlicher ^^


Edit: Das Programm ist ein Trainer für ein Spiel, welches halb legal für 8 Euro im Monat "vermietet" wird.
08/15/2011 14:06 boxxiebabee#6
Quote:
Originally Posted by Fiiine View Post
Vielen Dank für die Tipps, die ich auch heute mittag wohl noch umsetzen werde!


Also ich beschreibe es mal anders.
Das Programm und das PHP Skript gehören dem Besitzer A und wurden auch von ihm geschrieben. B kennt daher den Source nicht. Das Programm kann man frei downloaden. Wenn das Programm gestartet wird, wird program-mintern eine URL aufgerufen (PHP-Skript) und dieses Skript sendet eine bestimmte Zeichenfolge an das Programm zurück.
-> Lizenzcheck.
Wenn man jedoch dieselbe URL mittels Chrome/Firefox etc. öffnet, dann kommt der Wert 0 zurück, was für Failure steht.

Daher scheint es mir logisch, dass dieses Programm über bestimmte Header Daten sendet, welche von PHP geprüft werden. Der Grund ist einfach: Da ja jeder Zugriff auf die URL hat, kann er die URL auch manuell aufrufen. Daher besteht der Clou darin, dass diese URL von diesem Programm geöffnet wird.


Vielleicht ist es jetzt etwas verständlicher ^^


Edit: Das Programm ist ein Trainer für ein Spiel, welches halb legal für 8 Euro im Monat "vermietet" wird.
Naja, ich würd einfach sagen das Programm sendet nen POST befehl an das PHP Script welches es dann auswertet.
Musst einfach mit nem Sniffer die Daten abfangen und analysieren ;)
08/15/2011 14:53 Ronox#7
Wenn der Schutz billig ist, würde ich an deiner Stelle einfach, wireshark anschmeißen, programm starten, aus den paketen die vom server kommen die page nachbauen, xampp lokal installieren, die server url in der hosts eintragen und das was an das programm gesendet wurde als billige html webseite erstmal aufrufen lassen. (Natürlich müssen dateiname und pfad lokal bei dir der selbe sein wie beim Benutzer A)