Zurück   BuHa-Security Board > Sicherheit > Reverse Engineering
Registrieren Hilfe Benutzerliste Kalender Suchen Heutige Beiträge Alle Foren als gelesen markieren


Antwort
 
Themen-Optionen Ansicht
Alt 27.04.2006, 15:23   #16
nait
Moderator

 
Registriert seit: Aug 2004
Karma: 1217 nait ist eine Bereicherung fuer die Gemeinschaft.
Re: non-intrusive debugger

Es gibt ein Update. Folgendes ist neu:
  • verbesserte Anzeige der Symbole (sie werden jetzt im Code angezeigt)
  • ein Kommandozeilen-Fenster. Es kennt im Moment help, cls, show und bpx, soll aber noch ausgebaut werden
  • eine Importfunktion für IDA Map-Files
nait ist offline   Mit Zitat antworten
Alt 07.06.2006, 21:26   #17
nait
Moderator

 
Registriert seit: Aug 2004
Karma: 1217 nait ist eine Bereicherung fuer die Gemeinschaft.
Re: non-intrusive debugger

Es gibt ein Update mit folgenden Features:
  • für die Kommando-Zeile gibt es jetzt den Befehl 'mem' mit dem Speicher über einen Formatstring angezeigt werden kann (für genauere Informationen einfach 'help' eingeben)
  • mangled function names können ebenfalls in der Kommando-Zeile mit dem Befehl 'undec' in 'Klartext' umgewandelt werden
  • wenn bei einem Breakpoint angehalten wurde, muss kein Single-Step ausgeführt werden um dann fortzusetzen. Oder kurz, auf einem BP kann auch mit F9 fortgesetzt werden.
  • es gibt jetzt die Funktion 'search for intermodular calls' damit man die calls nicht mehr von Hand suchen muss ;-)
nait ist offline   Mit Zitat antworten
Alt 16.07.2006, 23:21   #18
nait
Moderator

 
Registriert seit: Aug 2004
Karma: 1217 nait ist eine Bereicherung fuer die Gemeinschaft.
Re: non-intrusive debugger

Es ist mal wieder Zeit für ein Update. Das sind die neuen Features:
  • Die Menü-Einträge ändern sich jetzt passend zum Status
  • Selection-Highlighting, ein bisschen wie bei IDA. Ein "Wort" anklicken und Blöcke in denen es vorkommt werden farbig hinterlegt.
  • Eine PlugIn-Schnittstelle (s.u.)
  • Trennung der GUI von der "Debugger-Schnittstelle", die Grundfunktionalität liegt jetzt in einer DLL

Und passend zu der neuen PlugIn-Schnittstelle gibt es auch ein PlugIn von Zaesar. Ein Heap Viewer der die Blocklists anzeigen kann.
@Zaesar:
Magst du das genauer beschreiben? ;-)
nait ist offline   Mit Zitat antworten
Alt 21.07.2006, 23:07   #19
finix
Trial Member

 
Registriert seit: May 2005
Karma: 10 finix
Re: non-intrusive debugger

Hi nait,

geiles Teil, ABER: ich brauch unbedingt ne Funktion um "all referened Text-Strings" zu suchen!

Straubi
finix ist offline   Mit Zitat antworten
Alt 26.07.2006, 14:48   #20
nait
Moderator

 
Registriert seit: Aug 2004
Karma: 1217 nait ist eine Bereicherung fuer die Gemeinschaft.
Re: non-intrusive debugger

Done.

Viel Spass damit. ;-)
nait ist offline   Mit Zitat antworten
Alt 05.08.2006, 17:29   #21
Zaesar
Registered User

 
Registriert seit: Oct 2000
Karma: 307 Zaesar ist eine Bereicherung fuer die Gemeinschaft.
Re: non-intrusive debugger

Zitat:
Zitat von nait
Und passend zu der neuen PlugIn-Schnittstelle gibt es auch ein PlugIn von Zaesar. Ein Heap Viewer der die Blocklists anzeigen kann.
@Zaesar:
Magst du das genauer beschreiben? ;-)
Sorry dass das so lange gedauert hat.

Zweck des Plugins ist es, den Zustand der internen Strukturen und Listen eines Heaps anzuzeigen.
Im Treeview auf der linken Seite sind die Adressen der Heaps aufgelistet (ein Prozess hat unter Windows fast immer mehrere Heaps). Als Unterpunkte gibts es die Listen der freien Blöcke und die Lookaside-Listen, jeweils nach der Größe der Blöcke geordnet. Wenn man eine der Listen auswählt, werden die Blöcke in der ListBox in der Mitte angezeigt.
Bei der Darstellung hab ich mich nahe an die Struktur der Blockheader gehalten; z.B. zeigt das Plugin die Größe des Blocks so an, wie sie im Header drin steht: in der Anzahlt der 8-Byte Schritte. Die tatsächliche Größe des Blocks in Bytes ist also ssize*8 bzw. psize*8.
Ein neues Feature ist, dass das PlugIn die Blöcke vor und nach einem bestimmten Block anzeigen kann. Dazu gibt man die Adresse eines Blockheaders (*nicht* die Adresse der Daten im Block, wie sie von malloc() zurückgegeben wird. Der Header beginnt 8 Bytes vorher, also bei (malloc(x)-8)) in das Feld "Neighborhood watch" ein und lässt sich mit "Show Neighborhood" die 'Nachbarschaft' des Blocks anzeigen.

Bekannte Bugs:
  • Das Plugin benutzt die ToolHelp-API, um an eine Liste der Heaps in einem Prozess zu kommen. Die ToolHelp-Funktionen machen aber Probleme, wenn einer der Heaps beschädigt ist. Als Workaround dient die Checkbox "Stop adding new Heaps". Wenn diese gesetzt ist, werden nur noch die Daten der bereits bekannten Heaps aktualisiert, aber keine neuen Heaps mehr hinzugefügt.
  • Weil ich keine vollständige Dokumentation der Lookaside Lists gefunden habe, musste ich an einigen Stellen raten. Listen mit einem oder mehr Elementen werden zwar richtig dargestellt; aber eigentlich leere Listen scheinen manchmal offensichtlich sinnlose Daten zu enthalten.
Angehängte Dateien
Dateityp: zip heaplist.zip (47,0 KB, 2x aufgerufen)
__________________
"Die Terroristen haben versucht, unsere Gesellschaft zu erschüttern. Die Innenminister haben es geschafft." (Andreas Pfitzmann)
Zaesar ist offline   Mit Zitat antworten
Alt 21.10.2006, 15:41   #22
nait
Moderator

 
Registriert seit: Aug 2004
Karma: 1217 nait ist eine Bereicherung fuer die Gemeinschaft.
Re: non-intrusive debugger

Nach einem viertel Jahr gibt es endlich wieder ein Update.
Es gab folgende Änderungen:
  • Die Anzeige des EIP sollte jetzt zuverlässig sein, vorher wurde ja nicht immer der Code angezeigt an dem der Haltepunkt war
  • Eine kleine Verbesserung im Auflösen von Symbolen

Und als neues Feature habe ich einen Analyser eingebaut. Zur Zeit macht er eine Zerlegung des Codes in Basic Blocks ausgehend vom Entrypoint. Dabei folgt er allen Sprüngen und Aufrufen innerhalb des Moduls, die er auflösen kann und "markiert" diese Befehle auf dem Weg als Code. Der Rest wird erstmal als Junk eingestuft.

Erstmal ist es etwas rudimentär aber ich verspreche mir wesentlich bessere Analyse-Möglichkeiten davon. Der nächste Schritt wird dann noch die Berücksichtung der referenzierten Daten und eine erweiterte analyse (z.B. Exports, TLS-Callbacks und bestimmte Heuristiken als Quellen für Block-Einsprünge).

Und wie immer, wenn ihr konstruktive Kritik und/oder Fragen habt, immer her damit.

Schönes Wochenende.
nait ist offline   Mit Zitat antworten
Alt 09.04.2008, 22:23   #23
nait
Moderator

 
Registriert seit: Aug 2004
Karma: 1217 nait ist eine Bereicherung fuer die Gemeinschaft.
Re: non-intrusive debugger

Es gibt ein Update für obsidian. Die neuen Features sind:
  • Beim Singlestep über call aus denen nicht/spät zurückgekehrt wird (z.B. bei DialogBoxParam) verhielt sich obsidian als wäre er abgestürzt (tatsächlich wartet er auf das return und läuft dann auch wie gewohnt weiter). Das ist mit Hilfe eines asynchronen Verarbeiten der Nachrichten behoben worden.
  • Es gibt jetzt endlich ein einfaches Stack-View. Der oberste Stack-Eintrag, die abgelegeten Basepointer und return-Adressen werden gehighlighted.
  • Mit einem Doppelklick auf einen Stack-Eintrag springt man an die Adresse im Code. Damit ein versehentlicher Doppelklick euch nicht ins Nirvana schickt, könnt ihr mit Escape wieder zurück zur vorherigen Adresse springen. (Das verhalten ist das gleiche wie beim folgen von Sprüngen oder Calls mit der Return-Taste)
  • Der Analysers ist durch eine andere Suchreihenfolge etwas schneller geworden.
nait ist offline   Mit Zitat antworten
Alt 07.08.2008, 23:53   #24
nait
Moderator

 
Registriert seit: Aug 2004
Karma: 1217 nait ist eine Bereicherung fuer die Gemeinschaft.
Re: non-intrusive debugger

Ich habe ein kleines Update online gestellt:
  • Es gibt jetzt die "Attach to process" Funktionalität, so dass man sich auch an laufende Prozesse hängen kann.
  • Ein paar kleine Bugs entfernt
  • Ein wenig den Code aufgeräumt und ein potenzielles Memoryleak behoben
nait ist offline   Mit Zitat antworten
Alt 16.01.2010, 17:17   #25
nait
Moderator

 
Registriert seit: Aug 2004
Karma: 1217 nait ist eine Bereicherung fuer die Gemeinschaft.
Re: non-intrusive debugger

Es gibt ein minimales Update und eine Sicherheitswarnung für obsidian.

Das Update ist die Möglichkeit dem Target beim Starten jetzt auch Parameter zu übergeben.

Die Sicherheitswarnung bezieht sich darauf, dass es dem Target möglich ist einen Breakpoint zu manipulieren und auf diesem Weg wieder unkontrolliert laufen kann. Genaueres findet ihr hier:
http://deneke.biz/obsidian
nait ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge anzufügen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Debugger] Neuer Debugger ?! :) cyrus-tc Reverse Engineering 1 24.06.2007 01:54
Debugger für x64?? chromos Reverse Engineering 1 26.04.2006 19:33
debugger für winXP MAXXE Systemnahe Programmierung 9 18.10.2003 19:20
Debugger Einzelschrittmodus Compuholic UNIX/Linux 2 15.07.2003 08:38
debugger detection umgehen / unter w2k kein debugger möglich? emu Reverse Engineering 4 25.04.2002 11:52


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:07 Uhr.


[BuHa Edition]

Partnerboard:
mcseboard.de