Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

x86_init(3) [debian man page]

x86_init(3)							     libdisasm							       x86_init(3)

NAME
x86_init, x86_cleanup - initialize and cleanup libdisasm SYNOPSIS
#include <libdis.h> typedef void (*DISASM_REPORTER)( enum x86_report_codes code, void * data, void * arg ); int x86_init( enum x86_options options, DISASM_REPORTER reporter, void * arg); int x86_cleanup(void); DESCRIPTION
enum x86_options { opt_none= 0, opt_ignore_nulls=1, /* ignore sequences of > 4 NULL bytes */ opt_16_bit=2, /* 16-bit/DOS disassembly */ opt_unknown }; enum x86_report_codes { report_disasm_bounds, report_insn_bounds, report_invalid_insn, report_unknown }; EXAMPLES
The following provides a skeleton for initializing and terminating libdisasm: void reporter( enum x86_report_codes code, void *data, void *arg ) { char * str = NULL; FILE *stream = (FILE *) arg; if (! stream ) stream = stderr; /* here would could examine the error and do something useful; * instead we just print that an error occurred */ switch ( code ) { case report_disasm_bounds: str = "Attempt to disassemble RVA " "beyond end of buffer"; break; case report_insn_bounds: str = "Instruction at RVA extends " "beyond buffer"; break; case report_invalid_insn: str = "Invalid opcode at RVA"; break; case report_unknown: str = "Unknown Error"; break; } fprintf(stream, "ERROR '%s:' %p0, str, data); } int main( int argc, char **argv ) { x86_init(opt_none, reporter, stderr); /* disassembler code goes here */ x86_cleanup(); } SEE ALSO
libdisasm(7), x86_disasm(3), x86_format_insn(3), x86dis(1) mammon_ 0.21 x86_init(3)

Check Out this Related Man Page

X86DIS(1)							     libdisasm								 X86DIS(1)

NAME
x86dis - disassemble a bytestream of Intel x86 instructions SYNTAX
x86dis [-a offset|--addr=offset] [-r offset len|--range=offset len] [-e offset|--entry=offset] [-s name|--syntax=name] [-d name|--desc=name] [-f file|--file=file] [-o file|--out=file] [-l file|--log=file] [-p num|--pagesize=num] [-h|-?|--help] [-v|--version] DESCRIPTION
A command-line interface to the libdisasm disassembler library. OPTIONS
At least one option from the list -a, -e, -r must be given. -f, --file=file Read input bytes from file instead of stdin -o, --out=file Write output to file instead of stdout -l, --log=file Log errors to file instead of stderr -p, --pagesize=num Set page size for buffering STDIN to num (default 512K) -s, --syntax=name Set output syntax to name, where name is one of intel (Intel syntax), att (AT&T syntax), raw (libdisasm syntax) -d, --desc=name Print a description of syntax name -a, --addr=offset Disassemble single instruction at offset -e, --entry=offset Disassemble forward from offset -r, --range=offset len Disassemble len bytes starting at offset All offset and len parameters are expected to follow the conventions used in strtoul(3), where hexadecimal numbers have the prefix 0x, octal numbers have the prefix 0, and decimal numbers have no prefix. A value of 0 for len indicates that that range extends to the end of the file. EXAMPLES
cat `which ls` | x86dis -s intel -e 0x00 -r 0x00 -1 -a 0xEEEE x86dis -e 0 -s intel < bootsect.img x86dis -d -s raw -f a.out -e `readelf -h a.out | grep Entry | awk '{ printf( "0x%%x", strtonum($4) - 0x8048000 ) }` echo '55 89 e5 83 EC 08' | perl -ane 'foreach(@F){print pack("C",hex);}'| x86dis -e 0 -s att NOTES
x86dis performs no file format parsing, nor any verification that its input is in fact executable binary code. All offsets are assumed to be from the start of the file, with no load addresses applied. The intent is to provide a bytestream disassembler rather than an object file disassembler. Descriptions of the various output formats can be obtained using the -d option. AUTHORS
mammon_ <mammon_@users.sourceforge.net> SEE ALSO
bastard(1), libdisasm(7), x86_disasm(3), x86_format_insn(3), x86_init(3) mammon_ 0.21 X86DIS(1)
Man Page