TS Dialoge wegpatchen?

05/27/2012 01:54 MaxMilimeter#1
Hi,
da ich für meine kleine Idee oft durch einen TS muss, würde mich mal interessieren ob es möglich ist die Dialoge wegzupatchen. Die Bestätigung derer ist leider ziemlich nervig beim TS Wiederholen.

Hat wer vielleicht ein paar Tipps wie ich das mithilfe eines Debuggers weggepatcht bekomme?

MfG,
Max
05/27/2012 02:17 TheCherry#2
ist soweit ich weiß mit scripts verbunden, musst also a) die dialoge raus patchen und b) die scripts weiter schicken, so wie ich mich erinnere schickt er nämlich immer beim bestätigen nen packet ab. die dialoge kannst du über find string denke ich finden in olydbg
05/27/2012 02:28 MaxMilimeter#3
Hi,
das habe ich versucht, finde aber nicht die Strings aus den Dialogen.
Zudem müssen die Dialoge nicht bestätigt werden, man kann trotzdem einfach weiterlaufen.
Das heißt ich müsste die ganz einfach nur weg noppen.

MfG,
Max
05/27/2012 02:49 TheCherry#4
ich weiß aber noch das, wenn man sie weg macht im packetlogger etwas abgeschickt wird. wenn du sie so nicht findest, suche sie im speicher und mach n "what acces to this adress" drauf
05/27/2012 08:15 Trollface-#5
Quote:
Originally Posted by MaxMilimeter View Post
Hi,
da ich für meine kleine Idee oft durch einen TS muss, würde mich mal interessieren ob es möglich ist die Dialoge wegzupatchen. Die Bestätigung derer ist leider ziemlich nervig beim TS Wiederholen.

Hat wer vielleicht ein paar Tipps wie ich das mithilfe eines Debuggers weggepatcht bekomme?

MfG,
Max
Beim Dialog bestätigen wird nen "n_run 5 ..." Packet gesendet,
diesen String findest du nicht unter den Referenced Text Strings d.h. dir bleiben folgende Methoden offen. (sind ebend ausm Kopf)

-Nach Teilstring vom Dialog mithilfe von CE suchen und darauf HW Breakpoint
-Breakpoint auf Send das n_run 5 Packet auslösen und dann backtracen
- 0 Scannen , wenn Dialog auftaucht 1 Scannen falls es die Adresse gibt wovon ich ausgehe stellste diese einfach auf 0 und das Dialog müsste nichtmehr auftauchen oder du machst nen HW Breakpoint drauf und verfolgst das wieder zurück

Regards
05/27/2012 11:00 Δbraxas#6
Wenn man Esc drückt gehen die Dialoge bis auf den letzen weg (glaube ich).
Vielleicht kann man mal loggen, was dabei passiert :/
05/27/2012 15:08 DieCFFiesela123Fus#7
kauf dir für 10 euro den nosbuddy von elektro :D Hab ich auch
musst garnichts machen bei dem ts
05/27/2012 16:09 Elektrochemie#8
Klar findest du die Dialoge nicht per String Search.
Per String Search suchst du nur die Strings die fest in der exe sind, die dialoge sind in den translationfiles der nos dateien. Deshalb kannst du die Methode vergessen :D

Einzige Möglichkeit ist, die Funktion von dem Packet anzuschauen die du empfängst bevor der Dialog aufpoppt.
Und in der Funktion dann nach der Dialog Funktion zu suchen und die zu patchen.
05/27/2012 18:08 MaxMilimeter#9
Quote:
Originally Posted by Elektrochemie View Post
Einzige Möglichkeit ist, die Funktion von dem Packet anzuschauen die du empfängst bevor der Dialog aufpoppt.
Und in der Funktion dann nach der Dialog Funktion zu suchen und die zu patchen.
Habe ich mir schon auch schon gedacht, habe eine Stelle bei der ich die Recv Pakete weiterverfolgen kann. Habe das auch probiert mit dem Paket, dass die Dialoge auslöst. In der Theorie scheint das logisch und einfach, beim Versuch kommt man dann durch eine Reihe von Funktionen, wie soll ich da herausfinden, welche den Dialog auslöst, wenn Nostale durch Olly eingefroren ist? Auch wenn ich steppe, erkenne ich ja nicht, wo genau der Dialog erstellt wird. Höchstens mit Breakpoints, was sehr umständlich ist.
Zudem komme ich dann per "stepping" über f8 an eine Stelle an der ich nicht mehr weitersteppen kann, ich kann dann nur die Ausführung der Applikation fortführen und lande wieder am Anfang.

Ich werd mal schauen, was sich bei den Methoden von Trollface- realisieren lässt und melde mich dann nochmal.

Danke erstmal soweit...
05/27/2012 18:14 Elektrochemie#10
Geht schon, musst halt den Unterschied zwischen Step Over und Step In wissen. :P
06/04/2012 11:49 Atzenkeeper#11
Ich weiß es zwar grade nicht Auswendig aber ich denke es gab eine eigene Recv Funtkion dafür aber wenn du das Simpel Patchst könntest du Probleme haben weil du auch andere Dialoge Wegpatchen könntest.

Würde es eher so Umpatchen dassu die Dialoge via ESC direkt schließen kannst.
Aber da ist mir Grade was eingefallen. Während die Dialoge offen sind läuft die TS Zeit nicht weiter. Das könnte man vll für sich nutzen. Also vortäuschen das ein Dialog offen wäre aber selber einfach weiterlaufen. Heißt natürlich auch soviel wie das die TS Zeit CS beeinflussbar ist. Weiß aber ned ob das heute auchnoch so ist.
06/04/2012 15:18 MaxMilimeter#12
Habe das ausprobiert und das Problem ist, dass beim Schließen des Dialoges ein Paket gesendet wird. Ohne dieses Paket läuft nichts, alle Wege sind versperrt, es sind keine Mobs da, nix. Denn erst wenn man die Dialoge bestätigt, spawnen die Mobs.

Mit CE kann man durchaus die Dialoge wegpatchen, allerdings bleibt dann das Problem mit dem "abschluss Paket der Dialoge". Dafür müsste man wohl die Send Function hooken und per Hotkey dann das Paket senden.
06/05/2012 00:36 Atzenkeeper#13
Das mit dem Hotkey wäre nicht das Problem aber ist da auch wirklich nur ein Send und Ein Recv Packet ??
06/06/2012 15:29 MaxMilimeter#14
Bei Send ist es nur eins soweit ich weiß, Recv keine Ahnung.