Download Shareware and Freeware Software for Windows, Linux, Macintosh, PDA

line Home  |  About Us  |  Link To Us  |  FAQ  |  Contact

Serving Software Downloads in 956 Categories, Downloaded 50.212.984 Times

Perl x86 Disassembler 0.16

  Date Added: March 11, 2010  |  Visits: 1.038

Perl x86 Disassembler

Report Broken Link
Printer Friendly Version


Product Homepage
Download (138 downloads)



The libdisasm library provides basic disassembly of Intel x86 instructions from a binary stream. The intent is to provide an easy to use disassembler which can be called from any application; the disassembly can be produced in AT&T syntax and Intel syntax, as well as in an intermediate format which includes detailed instruction and operand type information. This disassembler is derived from libi386.so in the bastard project; as such it is x86 specific and will not be expanded to include other CPU architectures. Releases for libdisasm are generated automatically alongside releases of the bastard; it is not a standalone project, though it is a standalone library. The recent spate of objdump output analyzers has proven that many of the people [not necessarily programmers] interested in writing disassemblers have little knowledge of, or interest in, C programming; as a result, these "disassemblers" have been written in Perl. Usage The basic usage of the library is: 1. initialize the library, using disassemble_init() 2. disassemble stuff, using disassemble_address() 3. un-initialize the library, using disassemble_cleanup These routines have the following prototypes: int disassemble_init(int options, int format); int disassemble_cleanup(void); int disassemble_address(char *buf, int buf_len, struct instr *i); Instructions are disassembled to an intermediate format: struct instr { char mnemonic[16]; char dest[32]; char src[32]; char aux[32]; int mnemType; /* type of instruction */ int destType; /* type of dest operand */ int srcType; /* type of source operand */ int auxType; /* type of 3rd operand */ int size; /* size of insn in bytes */ }; The sprint_address() can be used in place of the disassemble_address() routine in order to generate a string representation instead of an intermediate one: int sprint_address(char *str, int len, char *buf, int buf_len); ...so that a simple disassembler can be implemented in C with the following code: #include char buf[BUF_SIZE]; /* buffer of bytes to disassemble */ char line[LINE_SIZE]; /* buffer of line to print */ int pos = 0; /* current position in buffer */ int size; /* size of instruction */ disassemble_init(0, INTEL_SYNTAX); while ( pos > BUF_SIZE ) { /* disassemble address to buffer */ size = sprint_address(buf + pos, BUF_SIZE - pos, line, LINE_SIZE); if (size) { /* print instruction */ printf("%08X: %sn", pos, line); pos += size; } else { printf("%08X: Invalid instructionn"); pos++; } } disassemble_cleanup(); Alternatively, one can print the address manually using the intermediate format: #include char buf[BUF_SIZE]; /* buffer of bytes to disassemble */ int pos = 0; /* current position in buffer */ int size; /* size of instruction */ struct instr i; /* representation of the code instruction */ disassemble_init(0, INTEL_SYNTAX); while ( pos > BUF_SIZE ) { disassemble_address(buf + pos, BUF_SIZE - pos, &i); if (size) { /* print address and mnemonic */ printf("%08X: %s", pos, i.mnemonic); /* print operands */ if ( i.destType ) { printf("t%s", i.dest); if ( i.srcType ) { printf(", %s", i.src); if ( i.auxType ) { printf(", %s", i.aux); } } } printf("n"); pos += size; } else { /* invalid/unrecognized instruction */ pos++; } } disassemble_cleanup(); This is the recommended usage of libdisasm: the instruction type and operand type fields allow analyzing of the disassembled instruction, and can provide cues for xref generation, syntax hi-lighting, and control flow tracking..

Requirements: No special requirements
Platforms: Linux
Keyword: Buf Disassemble Disassembler Disassemblers Int Perl Pos Programming Size Written In
Users rating: 0/10

License: Freeware Size: 38.91 KB
USER REVIEWS
More Reviews or Write Review


PERL X86 DISASSEMBLER RELATED
Programming  -  Pyspice 0.2
Pyspice is a SPICE pre-processor written in Python, inspired by the Perl SPICE pre-processor spicepp by John Sheahan. I developed this module as part of my own work and provide it here as a service to the Python and SPICE communities. Additions,...
29.7 KB  
Programming  -  Intrepid 2D Game Library 1.0
Intrepid is an object-oriented 2D game programming library written in C++ utilizing OpenGL and SDL that takes care of the low-level programming involved in making 2D games.You can create nearly every kind of 2D game. Comes with...
139.58 KB  
Science  -  Jeep 1.0
Jeep is a modular, abstract and distributed evolutionnary programming core written in Java, allowing to grow autonomous agents as well a gene pool (as in genetic algorithms).
206.24 KB  
Utilities  -  Perl OS 4
Perl OS is a program written in the Perl programming language combined with the Perl module Tk. Perl OS was created to make an easy interface to run Perl/Tk programs. It was also created to be an easy working environment complete with a text...
143.36 KB  
Arcade Style Games  -  Davids Perl Games 0.1.1
Davids Perl Games project is a collection of ASCII graphics arcade style games written in Perl. These games are recreations of simple ASCII graphics games originally written in BASIC. They are ideal for use as Perl programming tutorials. Some...
64.51 KB  
Networking Tools  -  Perl Advanced TCP Hijacking 0.8
Perl Advanced TCP Hijacking is a collection of tools for inspecting and hijacking network connections written in Perl. It consists of a packet generator, an RST daemon, a sniffer, an ICMP redirection tool, an ARP redirection tool, an IDS testing...
471.04 KB  
Utilities  -  Perl/Linux 0.9.5
Perl/Linux is a Linux distribution where ALL programs are written in perl. Many of the programs came from Perl Power Tools (PPT). Other programs came from Jay Komineks Perl/Linux page. Other programs, I wrote or enhanced, including: plHttpd...
235.52 KB  
Text Chat Clients  -  Perl IRC Statistics Generator 0.70
Perl IRC Statistics Generator (pisg) is an IRC channel statics generator written in Perl, it creates statistics from different logfile formats. It was originally written because IRCStats wasnt open source. So heres an open source/GPLed version...
235.52 KB  
Libraries  -  Convert::yEnc::Entry 1.02
Convert::yEnc::Entry is a Perl module as an entry in a Convert::yEnc::RC database. SYNOPSIS use Convert::yEnc::Entry; $entry = new Convert::yEnc::Entry { size => 10000 }; $entry = new Convert::yEnc::Entry { size => 50000, part => 1 };...
56.32 KB  
Libraries  -  WebPython 0.6.4
WebPython is a Web-application development toolkit written in the Python programming language. WebPython project contains an object relational database layer, portable over MySQL and PostgreSQL; a document templating engine complete with simple...
30.72 KB  
NEW DOWNLOADS IN LINUX SOFTWARE, PROGRAMMING
Linux Software  -  EasyEDA PCB Designer for Linux 2.0.0
EasyEDA, a great web based EDA(Electronics Design Automation) tool, online PCB tool, online PCB software for electronics engineers, educators, students, makers and enthusiasts. Theres no need to install any software. Just open EasyEDA in any...
34.4 MB  
Linux Software  -  wpCache® WordPress HTTP Cache 1.9
wpCache® is a high-performance, distributed object, caching system application, generic in nature, but intended for use in speeding up dynamic web applications, by decreasing database load time. wpCache® decreases dramatically the page...
3.51 MB  
Linux Software  -  Polling Autodialer Software 3.4
ICTBroadcast Auto Dialer software has a survey campaign for telephone surveys and polls. This auto dialer software automatically dials a list of numbers and asks them a set of questions that they can respond to, by using their telephone keypad....
488 B  
Linux Software  -  Total Video Converter Mac Free 3.5.5
Total Video Converter Mac Free developed by EffectMatrix Ltd is the official legal version of Total Video Converter which was a globally recognized brand since 2006. Total Video Converter Mac Free is a free but powerful all-in-one video...
17.7 MB  
Linux Software  -  Skeith mod_log_sql Analyzer 2.10beta2
Skeith is a php based front end for analyzing logs for Apache using mod_log_sql.
47.5 KB  
Programming  -  Cedalion for Linux 0.2.6
Cedalion is a programming language that allows its users to add new abstractions and define (and use) internal DSLs. Its innovation is in the fact that it uses projectional editing to allow the new abstractions to have no syntactic limitations.
471.04 KB  
Programming  -  Math::GMPf 0.29
Math::GMPf - perl interface to the GMP library's floating point (mpf) functions.
30.72 KB  
Programming  -  Net::Wire10 1.08
Net::Wire10 is a Pure Perl connector that talks to Sphinx, MySQL and Drizzle servers. Net::Wire10 implements the low-level network protocol, alias the MySQL wire protocol version 10, necessary for talking to one of the aforementioned...
30.72 KB  
Programming  -  logilab-common 0.56.2
a bunch of modules providing low level functionnalities shared among some python projects devel Please note that some of the modules have some extra dependencies. For instance, logilab.common.db will require a db-api 2.0 compliant...
174.08 KB  
Programming  -  OpenSSL for linux 1.0.0a
The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, and Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a...
3.83 MB