| Hacks & Crackmes Tests, Fragen oder Hilfestellungen. Crackmes und Hackits werden hier diskutiert. |
Diskussion: OllyDB Funktionen Debuggen Fragen im Forum Hacks & Crackmes, in der Kategorie Software Home; Hi, ich habe zwei Frage.... 1. Wie findet man Funktionen am schnellsten bzw. wie ist die vorgehensweise... 2. Gibt es ...
![]() |
| | #1 (permalink) |
| Registriert seit: 04.09.08 ![]() Likes: 0 | Hi, ich habe zwei Frage.... 1. Wie findet man Funktionen am schnellsten bzw. wie ist die vorgehensweise... 2. Gibt es eine funktion in OllyDB welche die zuletzt gecallte funktionsadresse anzeigt? Ich denke das wars ersteinmal...schoneinmal vielen Dank :) |
| | |
| | #2 (permalink) | ||
| Member of Honour ![]() Registriert seit: 02.04.05 ![]() ![]() ![]() Likes: 64 | Zitat:
Was für Funktionen? Allgemein alle existierenden Funktionen? Wenn du eine bestimmte Funktion meinst, gibt es immer auch nur eine bestimmte Vorgehensweise zum auffinden. Zitat:
2. Thread auswählen 3. Stack nach letzter Rücksprungadressen absuchen Allerdings wirst du etwas enttäuscht sein. Deswegen muss man im Stack schon mal etwas "tiefer" graben um an die interessanten Funktionen im Main-Image zu kommen, die du sicherlich finden wolltest. | ||
| | |
| HaBOT | |
| |
| | #3 (permalink) |
| Themenstarter Registriert seit: 04.09.08 ![]() Likes: 0 | Ich meine eine bestimmte funktion... es geht um ein Spiel... wenn ich das game pausiere, kann ich ja kein knopf im Spiel drücken, sodass er zu dieser Funktion springt... PS: Wie mache ich das genau? @3. Stack nach letzter Rücksprungadressen absuchen |
| | |
| | #4 (permalink) | ||
| Member of Honour ![]() Registriert seit: 02.04.05 ![]() ![]() ![]() Likes: 64 | Zitat:
![]() Du musst dich also herantasten, Merkmale und Werte finden, die diese Funktionen benutzen könnte. Beschreib mal die Funktion. Was ändert sich objektiv nach dem ausführen deiner Aktion? Ändert sich ein sichtbarer Wert? Wird ein String irgendwo angezeigt? Eine Position eines Spielers? Wird eine Grafik geladen? Ein Objekt? Ein Sound abgespielt? Du brauchst Anhaltspunkte um die gewünschte Funktion zu finden. Zitat:
Also unterhalb des Stack-Pointers siehst du die letze genestete Aufrufkette seit der main(). In deinem Fall nicht besonders interessant, da möglicherweise in der Zeitspanne vom auslösen der Aktion im Spiel bis zum pausieren viel zu viel Zeit vergeht, sodass man den interessanten Aufruf nicht mehr sieht. | ||
| | |
| | #5 (permalink) |
| Themenstarter Registriert seit: 04.09.08 ![]() Likes: 0 | Es ändert sich die Position des spielers, sound werden sowieso massig abgespielt... und effekte tauschen auf.... habe schon versucht nach den werten zu beguggen, aber kann es auch sein, das die funktion so nicht aufrufbar ist? EDIT: Wenn du magst kannst mir auch gern via ICQ ode rso helfen, dann kann ich das problem evtl. schneller lösen?!^^... |
| | |
| | #6 (permalink) |
| Registriert seit: 28.05.08 ![]() Likes: 0 | Hallo valvepro, Beim Aufruf einer Funktion oder Prozedur wird immer in der Funktion der Basepointer in den Stack gepusht und in den Basepointer den Wert es Stackpointers verschoben. Am Ende der Funktion wird der Basepointer gepopt und mit RETN die jeweiligen Elemente aus dem Stack entfernt. Das hat den Vorteil, dass man in der Funtkion als auch nach und vor der Funktion soviel in den Stack pushen als auch popen kann. Das kann man schon anhand der calling convention sehen. Beim RETN wird auch die Adresse angezeigt wohin wieder Zurückgesprungen wird(Rücksprungadresse/EIP-Register...). Das Resultat befindet sich meist im EAX-Register bzw. auch in den Unter-Registern. Du kannst auch genau so mit STRG + G zu der z.B. MessageBoxA-Funktion springen und dort einen Breakpoint setzen und am Ende bzw. RETN sehen wohin gesprungen wird. Das ist wohl die einfachste Möglichkeit. Alle Funktionen, die das Programm verwendet kann man in der IAT sehen. Dazu einfach im OllyDbg Search for -> All intermodular call wählen um sich alle Funktionen anzuzeigen. Oder man kann sich auch die API-Funktion anzeigen lassen: Search for -> Name(label) in in currentmodule. Wenn die Anwendung in Delphi programmiert worden ist, kann man einfach mit DeDe sich enie Liste exportieren und diese im OllyDbg importieren, so dass man an der Seite(wo die VA's sind) alle Funktionen übersichtlich ansehen kann. the_uxreal |
| | |
| | #7 (permalink) | |
| Themenstarter Registriert seit: 04.09.08 ![]() Likes: 0 | Zitat:
Vielen Dank schoneinmal... | |
| | |
| | #8 (permalink) |
| Member of Honour ![]() Registriert seit: 02.04.05 ![]() ![]() ![]() Likes: 64 | Ich würde dir empfehlen IDA zu benutzen. IDA versucht mithilfe einer statischen Analyse des Codes alle Funktionen herauszufinden und aufzulisten. Das werden aber ganz schön viele sein bei einem Spiel. Die alle durchzugucken wird kaum möglich sein. Wie ich sagte: Merkmale finden. Wenn sich also die Position des Spielers verändert bei dieser Aktion, werden da Geräusche abgespielt? Geräusche, die sonst NICHT abgespielt werden? Jedenfalls könntest du die Soundausgabe dieses Geräuschs (WinAPI) dann möglicherweise auf die Funtion, die die Aktion bearbeitet, zurückverfolgen. (Nützlich sind da die IDA Call-Graph Funktionen) |
| | |
| | #9 (permalink) |
| Registriert seit: 28.05.08 ![]() Likes: 0 | Hallo valvepro, wenn es sich um ein Spiel handelt, kann einfach z.B. den Wert der Munition im Arbeitsspeicher finden, was man mit z.B. TSearch machen kann. Im OllyDbg kann man anschließend einen Breakpoint auf Hardwarezugriffe setzen, so dass man der Funktion "näher" kommt. Wie aber +++ATH0 schon sagte, ist es am besten nach Anhaltspunkten zu suchen. IDA ist meiner Meinung nach her nicht nötig. Mit dem OllyDbg kommt man auch so ganz gut aus. the_uxreal |
| | |
![]() |
| | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Programmabsturz debuggen? | metax. | Linux/UNIX | 2 | 16.07.08 20:31 |
| C++ Debuggen | Dawen | Code Kitchen | 10 | 14.01.08 00:47 |
| Altes Dosprogramm debuggen. | Clickme | Hacks & Crackmes | 3 | 08.04.07 18:01 |
| Mechwarrior3 schmiert ab -> debuggen? | noobhacker | Games | 6 | 31.07.06 14:24 |
| GDB - Assemblercode debuggen [gelöst] | v01d | Linux/UNIX | 0 | 21.07.06 09:01 |