ich bin seid heute an dem Thema OllyDbg dran.
Mein Ziel ist es einen Bot für das Spiel Nostale zu schreiben, dieser soll jedoch durch dll inject oder ähnliches call Funktionen des Spieles ansprechen.
Bisher habe ich es geschafft gewisse Fixe werte zu ändern um so z.B. Punkte die ich von einem Minispiel bekomme hoch zu setzen.
Um mich nun an den oben beschrieben Bot zu machen, wollte ich als erstes den Call raus finden der das Target wechselt (ist ein klick spiel, also so wie in WoW).
Nun habe ich in Cheat Engine erst einmal die Adressen gesucht die sich ändern sobald ich das Target denn wechsel und somit auch über "Find out what writes to this adress" die richtige Assembler stelle heraus gefunden.
Nun noch der richtige Breakpoint in OllyDbg und tada ich kann beim wechseln des Targets einen anderes vorschreiben (ich wähle im Spiel Target 1, nach break und 1 step, wechsle ich in CE die ID, Target 2 ist gewählt)
Doch wie kann ich nun herausfinden welcher Call notwendig ist um von Außen das Target zu wechseln?
Kann ich Calls in OllyDbg selbst herbei führen (zur laufzeit)?
Ich bin echt noch neu in dieser Abteilung und mir raucht der Kopf nach 5 Stunden rumprobieren Habe besonders nie was mit Assembler gemacht.
Ich hoffe ihr könnt mir was weiterhelfen. Tut's und Anregungen was ich als nächstes erst mal üben sollte, wäre nett.
ollydbg selbst kann soweit ich weiss nichts callen, dazu wäre der ida debugger besser geeignet
gibts denn noch ne andere Möglichkeit? Oder muss ich dann DLL inject machen?
Würde halt gerne einfach mal ein Paar calls ausprobieren, um auch die richtige zu finden.
IDA ist ein statischer Disassembler, wie kommst du auf die Idee?
Natürlich geht das mit Olly, mit Codecaves.
Aber ich verstehe nicht ganz das Problem. Du hast doch mit nem Breakpoint die Adresse gefunden, wo das Target gewechselt wird. Schau doch einfach auf den Stack und gehe in der Hierarchie zurück, bis du zu einer Funktion kommst, die du selbst (zb. aus einer Dll) angenehm aufrufen kannst.
IDA ist ein statischer Disassembler, wie kommst du auf die Idee?
Natürlich geht das mit Olly, mit Codecaves.
Aber ich verstehe nicht ganz das Problem. Du hast doch mit nem Breakpoint die Adresse gefunden, wo das Target gewechselt wird. Schau doch einfach auf den Stack und gehe in der Hierarchie zurück, bis du zu einer Funktion kommst, die du selbst (zb. aus einer Dll) angenehm aufrufen kannst.
Wie gehe ich in der Hierachie zurück ohne mir ein Bein auszubrechen, weiß noch nicht ganz wie das geht.
Eine "Funktion" ist doch ein Call auf eine Prozedur oder? Wie kann ich diese denn genau "aufrufen"?
Ich habe mir halt gedacht das ich die Call Prozeduren einfach mal aus dem Olly aufrufe, um zu sehen ob der Call den ich mir raus suche, auch der richtige ist.
Kannst du das mal mit dem Codecaves etwas genauer erklären?
IDA ist ein statischer Disassembler, wie kommst du auf die Idee?
Natürlich geht das mit Olly, mit Codecaves.
Aber ich verstehe nicht ganz das Problem. Du hast doch mit nem Breakpoint die Adresse gefunden, wo das Target gewechselt wird. Schau doch einfach auf den Stack und gehe in der Hierarchie zurück, bis du zu einer Funktion kommst, die du selbst (zb. aus einer Dll) angenehm aufrufen kannst.
ida hat einen integrierten debugger (soweit ich weiss), damit kann man z.b. das EIP register auf eine beliebige adresse setzen
Quote:
Originally Posted by TheCherry
Wie gehe ich in der Hierachie zurück ohne mir ein Bein auszubrechen, weiß noch nicht ganz wie das geht.
Eine "Funktion" ist doch ein Call auf eine Prozedur oder? Wie kann ich diese denn genau "aufrufen"?
Ich habe mir halt gedacht das ich die Call Prozeduren einfach mal aus dem Olly aufrufe, um zu sehen ob der Call den ich mir raus suche, auch der richtige ist.
Kannst du das mal mit dem Codecaves etwas genauer erklären?
bei jedem function call werden nicht nur parameter auf den stack gepusht, der prozessor legt noch einen wert auf den stack, an den bei der nächsten ret instruction gesprungen wird. funktioniert wie jmp [esp]! in olly wird das auf dem stack rot markiert (return from xxxx)
Ok habs geschafft gestern Nacht, nachdem ich erfolgreich (nach ca. 3 stunden) endlich eine DLL mit asm code injected habe. Mensch hatte ich Kopfschmerzen danach
+ Die Funktion wird elendig versagen, weil eventuelle Parameter fehlen und die Calling Convention Probleme machen könnte = win, oh ja
die eventuellen würden auch bei nem call fehlen wie hier:
Code:
call 0x13371337
man kann natürlich die parameter auch mit auf den stack pushen und auch wieder runter hauen :|
dann wäre das kein problem, aber das ist hier ja wohl nicht das thema
Zu einem Funktionsaufruf gehört aber nunmal auch das Pushen von Parametern und darum ging es ja hier und nicht um das simple Ausführen einer Call Instruktion.
Aber richtig, das schweift nun langsam ab.
Hilfe^^ bin einsteiger ^^ 02/02/2012 - C/C++ - 8 Replies Hi, ich hab da n problem^^
ich hab jetzt angefangen mit c++ zu lernen, und jetzt hab ich ne frage.
ich will mein c++ programm so haben, das es nicht in console geöffnet wird, sonder den prozess, den ich grad offen hab (z.B. editor etc)
Also wenn ich auf mein Programm klicke, das sich dann der editor öffnet und mein cout da geschrieben wird...
danke im voraus!
Einsteiger hilfe.. 12/31/2011 - Metin2 Private Server - 0 Replies Hey Leute, ich hatte vor cirka einem halben Jahr einen Hamachi P-Server, der Relativ gut ankam. Für Hamachi-Verhältnisse hab ich sogar viel Geld eingenommen, und genau das Geld möchte ich jetzt in einen Root investieren.
Leider habe ich kaum Ahnung von Rootserver. Was ist da beim Programmieren eigentlich der unterschied? Speichert man die Mysql Datenbank usw direkt auf den Root Server? Was sollte man noch alles beachten?
Danke im voraus.
Einsteiger Hilfe 10/27/2011 - Dekaron - 5 Replies ICh habe mal ne frage ob mir einer helfen kann. Ich bin jetzt level 24 aber viel über das game weis ich nicht und ich kann keine skills benutzen obwohl ich die gekauft habe und die richtigen waffen habe.
Ich habe mal ein irgendiwe benutz aber keinplan wie.
ha be alles probiert auf moster dann per zahlen 1-9
auch mit maus.
geht nicht :(
vllt kann einer mir helfen un das inagme so mal alles zeigen
wär nett
vielen dank im vorraus
[C#] Einsteiger Hilfe! 06/22/2011 - .NET Languages - 9 Replies Hallo , mein momentaner quellcode sieht aus wie folgt:
sing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
Einsteiger Hilfe 12/20/2009 - Diablo 2 - 4 Replies Hi!
Nach 6 Jähriger D2 Pause bin ich nun zurück gekehrt und wollte mir nen Maphack und nen Pickit downloaden! SOweit so gut, hab mich etwas im forum hie rumgeschaut und einiges gefunden!
Trotzdem habe ich schwierigkeiten etwas geeignetes zu finden und ich weis z.B auch nciht ob ich noch irgend welche zusatzprogramme dazu brauche, um diese zum laufen zu bekommen! D2 Loader oder etwas ähnliches!
Eine kurz gehaltene Einleitung wie ich einen ganz simplen Mh und pickit zum laufen bekomme...