Laden...

Reflection-/unsafe-/SOAP-Hacks in SpaceWarrior verhindern

Erstellt von gelöschtem Konto vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.678 Views
Hinweis von herbivore vor 13 Jahren

Abgeteilt von SpaceWarrior - Programmierungsspiel in Silverlight 4

Gelöschter Account
vor 13 Jahren
Reflection-/unsafe-/SOAP-Hacks in SpaceWarrior verhindern

Nette idee 😃

Reflection ist allerdings tatsächlich zulässig. Ich konnte bei mir einiges verändern....
Das solltest du noch irgendwie unterbinden weil man mit einigermaßen wissen und ein wenig zeit auch an die wichtigen klassen rankommt, die z.b. den score des Users innehalten und dann kann man sich schnell auf platz eins katapultieren.

edit1:
du könntest z.b. im Code vor dem compile den String "System.Reflection." durch "System.Reflektion." ersetzen. Das wäre herrlich subtil und effektiv.

edit2:
außerdem müsstest du noch das schlüsselwort "unsafe" und evtl noch delegaten verbieten, da man ansonsten nativen code noch einschleusen und ausführen kann aber das sind dann schon eher die profi-hacks.

Gelöschter Account
vor 13 Jahren

man kann assemblercode ausführen, wenn man mithilfe von bytearrays und delegaten ein paar dinge durchführt, welche dann eine Reflectionsperre umgehen können... das sind aber wirklich advanced Hacks. Ich vermute mal, das sich sowas niemand wirklich antun wird.

1.130 Beiträge seit 2007
vor 13 Jahren

@ jack: du vergisst offensichtlich, dass es sich um silverlight handelt. Man kann also grundsätzlich alles vergessen, was securitypermissions braucht, soweit ich das weiß.

Wenn ich mich irren sollte, dann sagt mir bitte bescheid und wenn ich mich tatsächlich irre, dann weiß ich in dem Fall schon, was ich als nächstes deinstalliere.

Projekte:Jade, HttpSaver
Zum Rechtschreiben gibts doch schon die Politiker. Aber die bauen auch nur mist!

Gelöschter Account
vor 13 Jahren

Ich habe es nicht vergessen. Da der Code auf dem Client läuft, ist das absolut kein Problem der Anwendung die entsprechenden Rechte einzuräumen. Des weiteren kann man die Silverlight-Binarys auch ohne weiteres herunterladen und in der off-browser-app ausführen.

Das was du meinst gilt für Silverlightapplikationen, die vom hoster versuchen den Client zu manipulieren. wenn aber der Client manipulieren will, dann ist das kaum ein Problem.

Ob in Silverlight allerdings der native weg funktioniert kann ich nicht genau sagen aber prinzipiell spricht nichts dagegen und man versucht ja nciht aus der Sandbox auszubrechen, sondern nur den inhalt der Sandbox zu verändern....

1.130 Beiträge seit 2007
vor 13 Jahren

Ob in Silverlight allerdings der native weg funktioniert kann ich nicht genau sagen aber prinzipiell spricht nichts dagegen und man versucht ja nciht aus der Sandbox auszubrechen, sondern nur den inhalt der Sandbox zu verändern....

dein weg mit den native delegaten ist ganz klar ein ausbruch aus der sandbox
und ich werde gleich mal versuchen, ob ich den inhalt eines datetime mittels reflektion manipulieren kann. (das zählt jawohl noch nicht als hacken, oder?)

Resultat: es geht nicht! Alles was permissions braucht geht nicht. Hier eine Liste von sachen, die nicht gehen (in der silverlight-version):
-private methoden aufrufen geht nicht
-private variablen manipulieren geht nicht
-> man kann keine delegaten manipulieren
->und somit keinen assemblercode ausführen
-unsafe verwenden geht nicht

Projekte:Jade, HttpSaver
Zum Rechtschreiben gibts doch schon die Politiker. Aber die bauen auch nur mist!

1.130 Beiträge seit 2007
vor 13 Jahren

Des weiteren kann man die Silverlight-Binarys auch ohne weiteres herunterladen und in der off-browser-app ausführen.

das machen eh nur freaks und die kennen wohl die gefahren^^

oops: zwei beiträge hintereinander is ned so gut (shit happenz)

Projekte:Jade, HttpSaver
Zum Rechtschreiben gibts doch schon die Politiker. Aber die bauen auch nur mist!

Gelöschter Account
vor 13 Jahren

Habe gerade festgestellt, das man gar nicht soweit gehen muss. Es reicht, wenn man einen entsprechenden SOAP Request gegen den Webservice für die Datenbank schickt, da die Verbindung weder verschlüsselt, noch gesichert ist.

1.130 Beiträge seit 2007
vor 13 Jahren

jup, das ist aber ein Fehler im system, der sich nur schwer lösen lässt. die einzige möglichkeiot wäre, alles auf dem server zu berechnen, was allerdings auch nicht wirklich gut ist, oder das programm zu verschlüsseln und obfuskieren

Projekte:Jade, HttpSaver
Zum Rechtschreiben gibts doch schon die Politiker. Aber die bauen auch nur mist!

C
10 Beiträge seit 2010
vor 13 Jahren

Zum Verbindung mit WebServices, ich wollte einen SSL Certificate installieren, aber ich habe keinen freie (und ohne zeitliche Beschränkungen) gefunden. Deshalb mit jedem Aufruf schicke ich einfach entweder ein Geheim-Key der im Client und Server festcodiert ist, oder Password des Users. Beide doch verschlüsselt.
Natürlich könnte man die Xap-Datai decompilieren und der Schlüssel finden. Bitte aber nicht vergessen, dass das Projekt einfach im Freizeit und zum Spaß entstanden ist, und muss nicht extrem sicher sein.