|
You last visited: Today at 08:06
Advertisement
[Hack-Competition] Make a Hack for my Program
Discussion on [Hack-Competition] Make a Hack for my Program within the General Coding forum part of the Coders Den category.
03/01/2011, 16:33
|
#61
|
elite*gold: 405
Join Date: Dec 2007
Posts: 6,615
Received Thanks: 6,358
|
Quote:
Originally Posted by Kaktusfresser
Da dein Programm laut Changelog früher bei einem Wert unter 1 abgeschmiert ist, wäre es nur logisch, wenn eine Multiplikation/Division in der Rechnung zum Verstecken stattfindet.
|
Gut kombiniert
Quote:
Originally Posted by Kaktusfresser
Zu den Sicherungsvalues:
Wenn ich nur eine ändere, sagt dein Programm Hack detected und verschwindet im RAM-Nirvana. Besonders nervig dabei: alle Adressen futsch 
|
Okay das läuft so, wie ich das will
Jedoch:
Quote:
Originally Posted by Kaktusfresser
Wenn ich beide so ändere, dass die Abstände stimmen (100 und 16384), dann läuft das Programm weiter. Der angezeigte Wert bleibt trotzdem gleich. Increasen/Decreasen ändert weiterhin nur um 1...
|
An dieser Stelle sollte es eigentlich AUCH "Hack detected" sagen.. oO
Quote:
Originally Posted by Kaktusfresser
Außerdem hab ich so das Gefühl, dass iwas mit der angezeigten Value=2 speziell ist, weil dann eine Sicherungsvalue auf 1337 steht -> Easteregg?Tipp? xD
|
Random shit
Krass was in dem Programm so alles drin ist was nicht beabsichtigt war
|
|
|
03/01/2011, 16:43
|
#62
|
elite*gold: 0
Join Date: May 2010
Posts: 19
Received Thanks: 3
|
Hmmmm....
Ich kann das mit den 2 values ändern->kein hack detected nicht mehr reproduzieren... Wahrscheinlich hab ich irgendwas geNOPed und vergessen...sry^^
Edit: kann mich wahrscheinlich leider erst am Wochenende wieder ausführlich mit dem Programm beschäftigen, die Analyse muss also bis dann warten.
|
|
|
03/01/2011, 17:02
|
#63
|
elite*gold: 405
Join Date: Dec 2007
Posts: 6,615
Received Thanks: 6,358
|
Quote:
Originally Posted by Kaktusfresser
Hmmmm....
Ich kann das mit den 2 values ändern->kein hack detected nicht mehr reproduzieren... Wahrscheinlich hab ich irgendwas geNOPed und vergessen...sry^^
Edit: kann mich wahrscheinlich leider erst am Wochenende wieder ausführlich mit dem Programm beschäftigen, die Analyse muss also bis dann warten.
|
Ja das mag sein..
Klausurphase?
|
|
|
03/01/2011, 19:19
|
#64
|
elite*gold: 0
Join Date: May 2010
Posts: 19
Received Thanks: 3
|
Quote:
Originally Posted by Mi4uric3
Klausurphase?
|
Jop >.<
Übrigens: nen Scrambler zu nutzen find ich gaaanz pöse von dir! xD
Und aus der Timersache kommst du nimmer raus:
Da ich ein wenig C# kann, versuch ich mich mal bei Gelegenheit da ranzusetzen...
|
|
|
03/01/2011, 19:40
|
#65
|
elite*gold: 0
Join Date: Nov 2009
Posts: 1,258
Received Thanks: 396
|
Jetzt haste aber die Buttonnamen und kannste sie nehmen denke mal das die verschlüsselung immer gleich ist und nicht zur laufzeit sich ändert, werd mich nachher nochmal dransetzen und schauen.
|
|
|
03/01/2011, 20:39
|
#66
|
elite*gold: 0
Join Date: May 2010
Posts: 19
Received Thanks: 3
|
Also wenn du die Codeverschlüsselung meinst, ich glaub das ist nur Zufallsdreck ums unlesbar zu machen...
Mein Decompiler failt bei der meiner Meinung nach wichtigsten Prozedur! -.-
Allerdings: Ich denke, die Value liegt verschlüsselt im Speicher...aber viel Spaß beim knacken bei ner Rijndael-Verschlüsselung >.<
Habe aber noch nen Hinweis auf Key und IV gefunden, aber das geht wirklich über mein Wissen hinaus:
Das darf jetzt irgendeiner mit Ahnung vom Stack, Pointern und dem Speicher generell lösen^^
|
|
|
03/01/2011, 22:12
|
#67
|
elite*gold: 9
Join Date: Dec 2009
Posts: 1,071
Received Thanks: 819
|
Eig müsste Hashen doch ziemlich sicher sein oder? Wäre sowas hier angreifbar?
PHP Code:
#include <Crypt.au3>
$GUI=GUICreate("test", 200, 150, -1, -1)
$label=GUICtrlCreateLabel("", 80, 20, 22, 15)
$button_up=GUICtrlCreateButton("Up", 75, 80, 30, 22)
GUISetState()
$var=100
$factor=Random(10000, 99999, 1)
$hash=_Crypt_HashData($var*$factor, $CALG_MD5)
GUICtrlSetData($label, $var)
While 1
If GUIGetMsg()=$button_up Then
$var+=1
$factor=Random(100, 999, 1)
$hash=_Crypt_HashData($var*$factor, $CALG_MD5)
GUICtrlSetData($label, $var)
EndIf
If _Crypt_HashData($var*$factor, $CALG_MD5) <> $hash Then
MsgBox(0, "ERROR", "Hack detected")
Exit
EndIf
WEnd
|
|
|
03/02/2011, 20:32
|
#68
|
elite*gold: 0
Join Date: May 2010
Posts: 19
Received Thanks: 3
|
Problem:
Wenn man nen Breakpoint vor dem hashen setzt, kann man die unverschlüsselte Variable $var nach belieben ändern....
|
|
|
03/02/2011, 22:36
|
#69
|
elite*gold: 9
Join Date: Dec 2009
Posts: 1,071
Received Thanks: 819
|
Hmm. So könnte man aber mit so gut wie jedem Programm verfahren... Gegen CE, MLE, etc. hilfts aber
|
|
|
03/02/2011, 22:46
|
#70
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
nur das normale menschen immer versuchen würden jede unnötige operaton zu vermeiden, anstatt durch unnötige verschlüsselungsalgorythmen den ressourcen-aufwand exponentiell ansteigen zu lassen...
für so ein kleines crack me mag das ja zu keinerlei problemen führen, für größere programme, die werte viele hundert bis tausend male pro sekunde aktualiusieren müssen, ist eine verschlüsselung dieser werte quasi der tod jedes programms.
|
|
|
03/03/2011, 17:46
|
#71
|
elite*gold: 0
Join Date: May 2010
Posts: 19
Received Thanks: 3
|
Ich gebs endgültig auf. .NetReactor verkrüppelt den armen IL-Code zu einer kompletten Shellcode-IL Soße, da crasht jeder decompiler...und mein Hirn, wenn ich versuche den Shellcode einfach zu ignorieren... Hunderte Aufrufe von Funktionen wie RToojW9CA3mDUF7bJ6,dessen Inhalt ein einfaches return true; ist...Dann ein jump if true...Das ist unlesbar.
Per CE ist imho nix zu machen, Viel Spaß beim Rijndael Brute-Forcen! oder beim Filtern des Keys und IVs aus der IL-Soße, da hat man die Wahl...
|
|
|
03/04/2011, 11:02
|
#72
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
|
Quote:
Originally Posted by .Infinite
Ich denke irgendeinen Weg wird es immer geben, sonst würde es ja Firmen wie die Hersteller von Programmen wie Hackshield etc. garnicht mehr geben und niemand würde mehr Hacken...
Man kann einfach kein absolut sicheres Programm machen. Wobei der sicherste (aber auch aufwendigste Schutz) auch in die Richtung eines zweiten Prozesses geht, der permanent alle auf dem Rechner ausgeführten Programme und den Spielprozess überwacht. Kombiniert mit einer Art geupdateten Blacklist auf nem FTP hätte man schonmal ne ziemlich hohe Sicherheit.
Zudem sollte man sich auch mal fragen, wozu man diesen Schutz überhaupt benötigt. Auch wenn mir klar ist, dass das vom TE genannte Programm nur als Beispiel dient... Warum dieser Aufwand, um eine höchstwahrscheinlich selbst programmiertes mini-Spiel o.Ä mit einem Hackerschutz zu versehen. Wenn jemand mit CE hackt, raubt er sich damit doch selbst den Spielspaß.
Sinn machen solche Anwendungen nur bei Online-Spielen, wo man sich anderen Spielern durch Hacken ungerechte Vorteile verschaffen kann. Aber da würden dir die Tipps die du hier im Forum bekommst nicht weiterhelfen, weil sie einfach zu leicht zu durchschauen sind.
Wenn es dir hierbei nur um eine Herausforderung und Spass an der Freude geht, auch ok  Ich werde mir für den Fall nochmal was nettes überlegen.
|
Blödsinn.
1. Ein zweiter Prozess ist überhaupt nicht das sicherste
2. Programme wie HS sind sicher nicht das sicherste
3. FTP erst recht nicht, wenn dann http
Ein guter Schutz wäre es, alle wichtigen Dinge vom Server verwalten zu lassen, fertig.
Nix HS, nix blacklist.
Zu der Kritik meiner Methode von wegen decreased value:
Nö, der random wert wird ja jedes mal neu berechnet.
Zu der Idee, Zahlen in hex zu konvertieren:
Wtf, hex ist nur ne andere darstellungsform, da gibts nix zu konvertieren.
@pain:
Schonmal dran gedacht, dass sie ganzen Änderungen durch .net zustande kommen?
Meines wissens ist olly kein .net debugger und .net liegt nunmal im bytecode vor, also wie stellst du dir das vor, mit olly den code zu disassemblieren? O.o
|
|
|
03/04/2011, 15:05
|
#73
|
elite*gold: 9
Join Date: Dec 2009
Posts: 1,071
Received Thanks: 819
|
Quote:
Ein guter Schutz wäre es, alle wichtigen Dinge vom Server verwalten zu lassen, fertig.
Nix HS, nix blacklist.
|
Die Kommmunikation mit dem Server lässt sich genauso leicht abfangen und manipulieren...
Quote:
Zu der Idee, Zahlen in hex zu konvertieren:
Wtf, hex ist nur ne andere darstellungsform, da gibts nix zu konvertieren.
|
Sicher, aber die Zahlen lassen sich nicht mehr so leicht mit CE finden.
Quote:
|
Die Prozentanzeige würde man dann direkt in der Funktion berechnen, die das Label aktualisiert (sodass sie nirgendwo zwischengespeichert werden muss).
|
Aber wird die Variable nicht innerhalb der Funktion irgendwo gespeichert? Ich meine, auch wenn sie nur als Parameter übergeben wird, steht sie ja noch irgendwo im Speicher oder?
|
|
|
03/04/2011, 16:24
|
#74
|
elite*gold: 0
Join Date: May 2009
Posts: 827
Received Thanks: 471
|
Quote:
|
Die Kommmunikation mit dem Server lässt sich genauso leicht abfangen und manipulieren...
|
Wenn der Server gut programmiert ist, verarbeitet er verfälschte Datenpackete nicht und haut dich gleich mal raus.
Quote:
|
Sicher, aber die Zahlen lassen sich nicht mehr so leicht mit CE finden.
|
Absoluter Blödsinn und falsch. Eine Zahl ist immer dieselbe Zahl, egal ob du sie dir in der Basis 2,10,16,... anzeigen lässt. Das ist Schnurzpieppopegal. Wenn du nach 0x0A suchst findest du eben auch 10 oder L0L0.
|
|
|
03/04/2011, 17:15
|
#75
|
elite*gold: 9
Join Date: Dec 2009
Posts: 1,071
Received Thanks: 819
|
Quote:
|
Absoluter Blödsinn und falsch. Eine Zahl ist immer dieselbe Zahl, egal ob du sie dir in der Basis 2,10,16,... anzeigen lässt. Das ist Schnurzpieppopegal. Wenn du nach 0x0A suchst findest du eben auch 10 oder L0L0.
|
Aber wenn man den Quellcode nicht kennt, weis man nicht, wie die Zahl jetzt gespeichert ist. Und wenn in der Variable die Zahl in Hex steht und im Label in Dezimal, dann weiß der potentielle Hacker ja garnicht, wonach er suchen soll, weil er die Dezimalzahl im CE ja nicht findet.
Aber es geht ja garnicht um Hex oder nicht, sondern ums Prinzip. Also, dass man den Wert der Variable in irgendeiner anderen Form abspeichert, ob als Hex, Hash oder sonst irgendwie verschlüsselt.
|
|
|
All times are GMT +1. The time now is 08:06.
|
|