beide programme werden nicht erkannt von deinem programm nur cheatengine wird erkannt^^ ... naja mit t-search adresse finden und dann kann man ganz easy pointer finden und nen hack draus machen ^^
Na dann mach mal! Sowie ich das sehe ändern sich die Adressen iwie...
dann kann das höchstens an .NET liegen und selbst da müsste es irgendwo nen basepointer geben.
die adresse eines wertes kann sich nicht ändern, auch wenn es sich um einen pointer handelt, dann ist der eben nicht veränderbar.
irgendwo muss ja gespeichert sein, wo sich der wert befindet, also muss es irgendwo auch immer eine statische base geben.
Quote:
Ich möchte zur Sicherheit lieber nochmal fragen obs stimmt, wenn nein versuch ich nochmal ranzugehen:
Hast du den Rijndael-Algorithmus zum verschlüsseln der Value genutzt?
Wenn ja, dann kann man meiner Meinung nach nix tun, selbst wenn man die Adresse des Rijndael-verschlüsselten Strings findet. Ich hab mal gelesen, dass man bei einer Schlüssellänge von 128 bit ein paar Milliarden Jährchen zum Brute-Forcen bräuchte^^
lol wozu bitte BF? wenn die zahl verschlüsselt ist, muss der key und der iv auch irgendwo im code sein.
@Infinite:
Wie schon gesagt wurde, wie du die Zahl darstellst ist egal, im Speicher ists eh binär, von daher macht das keinen Unterschied.
Und nein, wenn du die Kommunikation zwischen Server und Client so beeinflussen kannst, dass der Server Dinge für dich tut, die eigentlich nicht möglich sein sollen, dann ist er schlecht programmiert.
Denn dann hört der Server in gewisser Maßen auf den Client und damit wäre es auch per CE möglich, denn das was gesendet wird, muss ja auch irgendwo im Speicher sein.
Sobald das ändern von Werten (ich betone das Ändern! Klar, doch mehrmaliges Senden von Packets kann man in manchen Spielen Shops usw. exploiten, aber das meine ich nicht) per CE keine sichtbare Veränderung für andere oder auf dem Server nach sich zieht, würde die gleiche Änderung per Packet genau so wenig bringen.
@TE:
wenn dich jemand auf einen fehler hinweist, solltest du das dankend annehmen und ihn nicht aus deinem thread verweisen, nur weil er einen fehler bei dir erkennt.
und disassemblieren ist nunmal nicht gleich decompilen!
beide programme werden nicht erkannt von deinem programm nur cheatengine wird erkannt^^ ... naja mit t-search adresse finden und dann kann man ganz easy pointer finden und nen hack draus machen ^^
Eigentlich ist ein Schutz gegen die beiden drin, jedoch scheint er nicht so ganz zu funktionieren..
*Update* xd
Quote:
Originally Posted by MrSm!th
Disassemblieren ist nunmal nicht gleich decompilen!
Wenn er so ein Vollprofi ist, hätte er mir den Begriff ja auch einfach sagen können.
Ich patche die "EnumChildWindows" - Funktion aus der user32.dll, die du wahrscheinlich importiert hast, um die Fenster durchzuenumerieren, um zu schauen, ob CE offen ist. Also verändere ich letztendlich den Speicher deines Programmes.
Ich patche die "EnumChildWindows" - Funktion aus der user32.dll, die du wahrscheinlich importiert hast, um die Fenster durchzuenumerieren, um zu schauen, ob CE offen ist. Also verändere ich letztendlich den Speicher deines Programmes.
*** "EnumChildWindows" wird verwendet
Okay, ich verstehe nicht ganz, was "VirtualProtect" macht, und wie du den Rückgabewert irgendwie verändern kannst, aber ich probier mich mal dranzusetzen..
Ich hole mir die Adresse der Funktion. Dann überschreibe ich das erste Byte der Funktion mit dem Opcode für den Return Befehl (=0xC2). Die nächsten zwei bytes (=Word) sind die Returnvalue und damit der Operandenteil. Die dürften beliebig wählbar sein, nur nicht 0, wenn ich jetzt nicht völlig falsch liege. Hab sie aus einem anderen Projekt einfach mal übernommen und getestet.
Ergebnis: Die EnumChildWindows - Funktion wird nach dem Call gleich wieder verlassen, ohne dass sie ausgeführt wurde. Damit failed deine Überprüfung und man kann CE wie gewohnt verwenden.
Ich hole mir die Adresse der Funktion. Dann überschreibe ich das erste Byte der Funktion mit dem Opcode für den Return Befehl (=0xC2). Die nächsten zwei bytes (=Word) sind die Returnvalue und damit der Operandenteil. Die dürften beliebig wählbar sein, nur nicht 0, wenn ich jetzt nicht völlig falsch liege. Hab sie aus einem anderen Projekt einfach mal übernommen und getestet.
Ergebnis: Die EnumChildWindows - Funktion wird nach dem Call gleich wieder verlassen, ohne dass sie ausgeführt wurde. Damit failed deine Überprüfung und man kann CE wie gewohnt verwenden.
Kool >:|
Evil ^^
Aber ist dann ja leicht zu detecten..
Wenn du mir erklären würdest, wie dein "Anti-Cheat" Zeug funktioniert, könnte ich es auch leicht "detecten"/aushebeln o,ô bzw. wenn du mir den src geben würdest... Ohne Möglichkeit zu debuggen ist das schon lustig gemeint...
Ich hole mir die Adresse der Funktion. Dann überschreibe ich das erste Byte der Funktion mit dem Opcode für den Return Befehl (=0xC2). Die nächsten zwei bytes (=Word) sind die Returnvalue und damit der Operandenteil. Die dürften beliebig wählbar sein, nur nicht 0, wenn ich jetzt nicht völlig falsch liege. Hab sie aus einem anderen Projekt einfach mal übernommen und getestet.
Ergebnis: Die EnumChildWindows - Funktion wird nach dem Call gleich wieder verlassen, ohne dass sie ausgeführt wurde. Damit failed deine Überprüfung und man kann CE wie gewohnt verwenden.
Nun, also eigentlich sind Operanden für return, wenn man sie denn angibt, nicht der Rückgabewert der Funktion, sondern die Anzahl an Bytes, um die der Stackpointer wieder zurückgeschaltet werden soll, also quasi die Freigabe von für die lokalen Variablen und Parameter alloziiertem Speicher.
Quote:
Originally Posted by Mi4uric3
Kool >:|
Evil ^^
Aber ist dann ja leicht zu detecten..
Meinst du das Verändern der Funktion damit? Ja ist es, genau so leicht ist es aber auch, andere Varianten zu wählen.
Die Aufzählung von Prozessen und/oder Fenstern ist immer eine schlechte Methode zur Detection von Hacks!
Nun, also eigentlich sind Operanden für return, wenn man sie denn angibt, nicht der Rückgabewert der Funktion, sondern die Anzahl an Bytes, um die der Stackpointer wieder zurückgeschaltet werden soll, also quasi die Freigabe von für die lokalen Variablen und Parameter alloziiertem Speicher.
Ja dann muss ich nur die ersten Bytes dieser Funktion überprüfen..
Oder einfach gucken ob immer "0" dabei rauskommt..
Quote:
Originally Posted by MrSm!th
Meinst du das Verändern der Funktion damit? Ja ist es, genau so leicht ist es aber auch, andere Varianten zu wählen.
Die Aufzählung von Prozessen und/oder Fenstern ist immer eine schlechte Methode zur Detection von Hacks!
Ich arbeite mit der GetClassName-Funktion, damit kann man Programme leicht detecten, und das ist auch recht kompliziert (glaube ich.. oO) den Klassen-Namen zu verändern..
Aber du hast recht, da es scheinbar so einfach ist, Rückgabewerte zu manipulieren (0) ist die Methode im großen und ganzen schlecht.
Ich hab nur ein paar Idee(e)n (3 e? )..
Aber dabei muss ich immer eine Prozessliste erstellen..
Wie soll ich sonst wissen, welche Prozesse laufen.. :/
Obwohl ich grad noch eine Idee bekomme, wie ich mein Programm schützen kann, ohne eine Prozessliste erstellen zu müssen..
Aber das hätte globale (PC weite) Auswirkungen.. :/
Hack or Program Hack That Works For GamezAion? 08/23/2010 - Aion Private Server - 2 Replies Hello Just Wondering is there a Hack or Program Hack thats working for GamezAion available thats free or need to be paid for? Please Give Working Ones thanks with details^^