Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
NDISASM(1)		  The Netwide Assembler Project 	      NDISASM(1)

NAME
     ndisasm - the Netwide Disassembler, an 80x86 binary file disassembler

SYNOPSIS
     ndisasm [ -o origin ] [ -s sync-point [...]] [ -a | -i ] [ -b bits ] [ -u ]
     [ -e hdrlen ] [ -p vendor ] [ -k offset,length [...]] infile

DESCRIPTION
     The  ndisasm command generates a disassembly listing of the binary file in-
     file and directs it to stdout.

OPTIONS
     -h
	 Causes ndisasm to exit immediately, after giving a summary of its invo-
	 cation options.

     -r|-v
	 Causes ndisasm to exit immediately, after displaying its  version  num-
	 ber.

     -o origin
	 Specifies  the  notional  load address for the file. This option causes
	 ndisasm to get the addresses it lists down the left  hand  margin,  and
	 the target addresses of PC-relative jumps and calls, right.

     -s sync-point
	 Manually  specifies  a  synchronisation address, such that ndisasm will
	 not output any machine instruction  which  encompasses  bytes	on  both
	 sides	of  the  address. Hence the instruction which starts at that ad-
	 dress will be correctly disassembled.

     -e hdrlen
	 Specifies a number of bytes to discard from the beginning of  the  file
	 before  starting  disassembly. This does not count towards the calcula-
	 tion of the disassembly offset: the first disassembled instruction will
	 be shown starting at the given load address.

     -k offset,length
	 Specifies that length bytes, starting from disassembly  offset  offset,
	 should be skipped over without generating any output. The skipped bytes
	 still count towards the calculation of the disassembly offset.

     -a|-i
	 Enables automatic (or intelligent) sync mode, in which ndisasm will at-
	 tempt	to  guess where synchronisation should be performed, by means of
	 examining the target addresses of the relative jumps and calls it  dis-
	 assembles.

     -b bits
	 Specifies 16-, 32- or 64-bit mode. The default is 16-bit mode.

     -u
	 Specifies 32-bit mode, more compactly than using `-b 32'.

     -p vendor
	 Prefers  instructions as defined by vendor in case of a conflict. Known
	 vendor names include intel, amd, cyrix, and idt. The default is intel.

RESTRICTIONS
     ndisasm only disassembles binary files: it  has  no  understanding  of  the
     header  information  present  in object or executable files. If you want to
     disassemble an object file, you should probably be using objdump(1).

     Auto-sync mode won't necessarily cure all your synchronisation problems:  a
     sync  marker can only be placed automatically if a jump or call instruction
     is found to refer to it before ndisasm actually disassembles that	part  of
     the  code.  Also,	if  spurious  jumps  or  calls result from disassembling
     non-machine-code data, sync markers may get placed in strange places.  Feel
     free to turn auto-sync off and go back to doing it manually if necessary.

SEE ALSO
     objdump(1)

NASM				   04/17/2024			      NDISASM(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ndisasm&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help