da sich hier im KalOnline-Forum einige "bekannte" Gesichter befinden, habe ich mal eine Frage, die mich seit (ehrlich) Wochen nervt: Wie zür Hölle kann ich mit diversen Debuggern (z.B. IDE, Ollydbg) Funktionen "zurückverfolgen"?
Ich arbeite gerade an einem MMORPG und versuche die Verschlüsselungs-Routine der Send-Funktion (WS2_32) zu finden. Jedoch habe ich bisher nichts brauchbares gefunden.
Genau das frag ich mich auch.
Also um in Kal jetzt bestimmte Funktionen "zurückverfolgen" zu können, musste denk ich mal ollydbg an kal "ranhängen". Und das geht nur wenn das HS bypassed ist.
Ich hab mich mal gefragt wie die Funktion aus dem kalhackit ging (STRG+Left)....5andr0 hat mir dann gesagt, das ich kal reversen muss und die funktion suchen wo clicks in coordinaten umgewandelt werden und da ein hook reinhaun.
Also wer das erklären kann....ich schließ mich Hijax frage an ^^
Die retn-adresse wird auf den Stack gelegt. Machst nen breakpoint auf deine Funktion, wenn der getriggered wird schaust auf das Stack Window von ollydbg und siehst halt "RETN TO engine.00412345 FROM engine.00419876" o.ä.
die Antworten sind mir schon bekannt. Ich rede außerdem nicht von KalOnline.
Dann hatte ich das "Tracing" schon von vornerein "drauf". Leider frage ich mich, weshalb ich nicht zum gewünschten Ergebnis komme. :/ Ich finde einfach nicht den Call, bei dem das Packet verschlüsselt wird. Setzte ich einen BP auf das zweite "Return", dann lande ich bei einer Prozedur, die ständig aufgerufen wird. Ebenso habe ich mit "Con. BPs" gearbeitet - Fehlversuch.
Na gut - Vielleicht liegt's daran, dass's soweit unmöglich ist. Denn das Spiel existiert schon 'ne lange Zeit - nicht einer hat's bisher geschafft, die Packet-Routine zu knacken.
Die retn-adresse wird auf den Stack gelegt. Machst nen breakpoint auf deine Funktion, wenn der getriggered wird schaust auf das Stack Window von ollydbg und siehst halt "RETN TO engine.00412345 FROM engine.00419876" o.ä.
kannst auch wenn du Runtime debuggst einfach auf NUM PAD MINUS drücken. Befolgt einfach das was shadowz geschrieben hat ;]
@edit,
du redest ja von nem anderem Spiel oder? Finde erstmal die Send die das Spiel z.B. für Chat oder Laufen nutzt und guck im Stack wo das packet her kommt. Dort wirst du auch die Verschlüssungs funktion finden oder eine SendBeforeCrypt funktion.
kannst auch wenn du Runtime debuggst einfach auf NUM PAD MINUS drücken. Befolgt einfach das was shadowz geschrieben hat ;]
@edit,
du redest ja von nem anderem Spiel oder? Finde erstmal die Send die das Spiel z.B. für Chat oder Laufen nutzt und guck im Stack wo das packet her kommt. Dort wirst du auch die Verschlüssungs funktion finden oder eine SendBeforeCrypt funktion.
Alles schon getan, syntex. So 'n Kacknap bin ich nicht.
Natürlich habe ich ebenso die "-"-Taste genutzt. Ich habe auch, wie du geschrieben hast, zurückverfolgt, wo das Packet herkommt. Problematik ist, dass ich's nicht "handeln" kann. Der Call wird STÄNDIG aufgerufen. Stell's dir so vor:
while (true) {
if(ExisitiertPacket() == true) {
...
}
}
Und diesen Call mit 'nem Con.-BP zu überprüfen geht ebenso wenig. Sagen wir mal so: Ich hätte es gefunden, würde diese Schleife nicht existieren.
Alles schon getan, syntex. So 'n Kacknap bin ich nicht.
Natürlich habe ich ebenso die "-"-Taste genutzt. Ich habe auch, wie du geschrieben hast, zurückverfolgt, wo das Packet herkommt. Problematik ist, dass ich's nicht "handeln" kann. Der Call wird STÄNDIG aufgerufen. Stell's dir so vor:
while (true) {
if(ExisitiertPacket() == true) {
...
}
}
Und diesen Call mit 'nem Con.-BP zu überprüfen geht ebenso wenig. Sagen wir mal so: Ich hätte es gefunden, würde diese Schleife nicht existieren.
syntex? Andere Kontaktmöglichkeit?
Liebe Grüße,
hijax.
Nie gesagt das du ein kacknap bist ^^ bist einer der wenigen die es geschaft haben aufzusteigen und den rest hintersich zulassen , egal wieviel flame... dir gehts genauso am ***** vorbei wie mir :O
Leider frage ich mich, weshalb ich nicht zum gewünschten Ergebnis komme. :/ Ich finde einfach nicht den Call, bei dem das Packet verschlüsselt wird. Setzte ich einen BP auf das zweite "Return", dann lande ich bei einer Prozedur, die ständig aufgerufen wird. Ebenso habe ich mit "Con. BPs" gearbeitet - Fehlversuch.
Na weil das Packet nicht verschachtelt von der Verschlüsselungsfunktion aufgerufen wird. Schau halt bei allen Funktionen auf dem Stacktrace drumrum was sie machen, guck was überhaupt geschieht und setz eventuell einen Memory Breakpoint um rauszufinden wo der Buffer beschrieben bzw. geändert wird.
ich hab' mindestens 22 Returns zurückverfolgt... angeschaut... studiert, würde man meinen... Keine dieser Returns führt zu einem Ergebnis. Und weiter nach dem richtigen Aufruf zu suchen, wäre reine Zeitverschwendung. Es war einfach nur ein Versuch, etwas zu schaffen, was bisher keiner geschafft hat. ;D
[HELP]Power TRACE all Eudemons 12/10/2009 - EO PServer Hosting - 0 Replies Good afternoon to all friends. I know I sent put All Eudemons To be born with the skill Trace. I've used the Query all already see with thunder and Windbeans. But I could not put it all Veen TRACE. If anyone has information of how to do this you can post here please.
NOTE: I tried to put that trace> 1033120 Trace to work but some do not take eudemons Type DODO, ADAM, BloodPhanton Etc. ..:(
Super Kiss.:cool:
Auto Trace 01/19/2009 - Silkroad Online - 1 Replies Anyone heard of a Trace tool that would reselect a player when it comes in range........eg. from potting up.
How to Trace Port 06/12/2008 - RF Online - 10 Replies Any idea how to trace Port on RF.exe Launcher? Thanks