Gesucht: Disassembly

xGhost

OpenBSD Freack
Moins

Kennt jemand einen guten Disassembly unter FreeBSD?
In den Ports habe ich keinen gefunden.

Es gibt libdisasm von Bastard. Ich habe die Anlteitung
gelesen. Damit könnte man sich einen eigenen Disasm schreiben.

Ich werde mal versuchen, den IDA per wine zum laufen zu bringen.

Benutzt jemand von euch einen disasm unter fbsd?

greets
 
Also was das Thema angeht bin ich kein Fachmann. Aber ich weiss, dass es einen dissasambler von IDA auch fuer Linux gibt. Und als ich mich mal ein _bisschen_ damit beschaeftigt habe, hat mir gdb und objdump gereicht
ndisasm gibts wohl noch. hab ich aber nie ausprobiert
 
Rein aus Interesse: Könntest Du das mal erklären?

sicher.

Hier ein Beispiel Code (das dieser kein Sinn macht, weiss ich auch, zeigt aber das Problem recht gut. Der GCC macht bestimmt auch keinen solchen code!):
Code:
section .text
global _start
_start:
  xor    eax, eax
  jmp    _ende
  db     "String 2", 0h

_ende:
  mov   eax, 1
  push  0
  int     80h


Aber mit dem Objdump oder sonstigen linearen Disasm (ich nenne diese Linear, gibt vielleicht auch bessere Bezeichnungen) gibt es diesen Code:
Code:
08048080 <.text>:
 8048080:	31 c0                	xor    %eax,%eax
 8048082:	e9 09 00 00 00       	jmp    0x8048090
 8048087:	53                   	        push   %ebx
 8048088:	74 72                	je     0x80480fc
 804808a:	69 6e 67 20 32 00 b8 	imul   $0xb8003220,0x67(%esi),%ebp
 8048091:	01 00                	add    %eax,(%eax)
 8048093:	00 00                	add    %al,(%eax)
 8048095:	68 00 00 00 00       	push   $0x0
 804809a:	cd 80                	int    $0x80

Warum?

Das ist ganz einfach: er macht keinen Sprung und interpretiert daher den String falsch.

Ein guter Disasm arbeitet daher nach der art wie das Programm ausgeführt wird.

Hoffe das hilft dir.
Gruss
 
Zuletzt bearbeitet:
Zurück
Oben