2008-08-08 Cyrille Bagard * configure.ac: Add src/format/dwarf/Makefile to the list of files to create. * src/binary.c: Update the way data is loaded. * src/format/dbg_format.c: * src/format/dbg_format.h: * src/format/dbg_format-int.h: New entries: define a generic interface for debug formats. * src/format/dwarf/abbrev.c: * src/format/dwarf/abbrev.h: * src/format/dwarf/d_dwarf.c: * src/format/dwarf/d_dwarf.h: * src/format/dwarf/dwarf-int.h: * src/format/dwarf/Makefile.am: New entries: prepare to handle the DWARF debug format. * src/format/elf/e_elf.c: * src/format/elf/e_elf.h: * src/format/elf/elf-int.h: New entries: better handle the ELF format. * src/format/elf/format_elf.c: * src/format/elf/format_elf.h: Deleted entries: renamed to e_elf.[ch]. * src/format/elf/Makefile.am: Add e_elf.[ch], elf-int.h and section.[ch] to libformatelf_a_SOURCES. Remove format_elf.[ch]. * src/format/elf/section.c: * src/format/elf/section.h: New entries: read sections in an ELF file. * src/format/exe_format.c: * src/format/exe_format.h: * src/format/exe_format-int.h: New entries: define a generic interface for executable formats. * src/format/Makefile.am: Add dwarf to SUBDIRS and exe_format.[ch], exe_format-int.h, dbg_format.[ch], dbg_format-int.h to libformat_a_SOURCES. * src/Makefile.am: Add format/libformat.a and format/dwarf/libformatdwarf.a to openida_LDADD. 2008-08-05 Cyrille Bagard * src/gtksnippet.c: * src/gtksnippet.h: Define a margin for setting breakpoints. 2008-08-03 Cyrille Bagard * src/arch/x86/instruction.h: Remove all the identifiers for the prefix '0x66'. * src/arch/x86/Makefile.am: Add op_(adc|add|and|or|sbb|sub|xor).c to libarchx86_a_SOURCES. * src/arch/x86/op_adc.c: * src/arch/x86/op_add.c: * src/arch/x86/op_and.c: New entries: support more opcodes. * src/arch/x86/opcodes.h: Register the new opcodes. * src/arch/x86/operand.c: * src/arch/x86/operand.h: Read registers from the ModR/M encoding. * src/arch/x86/op_mov.c: Support the 'mov' opcode from a register to another one. * src/arch/x86/op_or.c: * src/arch/x86/op_sbb.c: * src/arch/x86/op_sub.c: * src/arch/x86/op_xor.c: New entries: support more opcodes. * src/arch/x86/processor.c: Handle opcode extension. Improve the way that instructions with prefix are handled, and thus decrease the amount of lines of code. 2008-08-01 Cyrille Bagard * src/arch/x86/instruction.h: Register the new opcodes. * src/arch/x86/Makefile.am: Add op_(leave|ret).c to libarchx86_a_SOURCES. * src/arch/x86/opcodes.h: Register the new opcodes. * src/arch/x86/op_leave.c: * src/arch/x86/op_ret.c: New entries: handle the 'leave' and 'ret' opcodes. * src/arch/x86/processor.c: Register the new opcodes. Avoid wrong warning messages. 2008-07-31 Cyrille Bagard * src/arch/operand.c: * src/arch/operand.h: Read relative immediate operands. * src/arch/operand-int.h: Typo. * src/arch/processor.c: * src/arch/processor.h: Update the code: use the virtual offset. * src/arch/processor-int.h: * src/arch/x86/instruction.h: Support new instructions: X86_OP_PUSH_IMM(32|16) and X86_OP_CALL. * src/arch/x86/Makefile.am: Add op_call.c to libarchx86_a_SOURCES. * src/arch/x86/op_call.c: New entry: Handle the virtual offset ; fix the operand-size overriding. * src/arch/x86/opcodes.h: * src/arch/x86/op_dec.c: * src/arch/x86/op_hlt.c: * src/arch/x86/op_inc.c: * src/arch/x86/op_int.c: * src/arch/x86/op_mov.c: * src/arch/x86/op_nop.c: Handle the virtual offset ; fix the operand-size overriding. * src/arch/x86/op_pop.c: * src/arch/x86/op_push.c: Handle the virtual offset ; fix the operand-size overriding. Handle immediate values. * src/arch/x86/processor.c: * src/arch/x86/processor.h: Handle the virtual offset ; fix the operand-size overriding. * src/binary.c: Provide the virtual offset when decoding. * src/format/elf/format_elf.c: * src/format/elf/format_elf.h: Provide the virtual offset when reading ELF. 2008-07-30 Cyrille Bagard * src/arch/x86/instruction.h: Register new opcodes. * src/arch/x86/Makefile.am: Add op_(dec|hlt|inc|pop|push).c to libarchx86_a_SOURCES. * src/arch/x86/opcodes.h: Register new opcodes. * src/arch/x86/op_dec.c: Register this new opcode. * src/arch/x86/operand.c: * src/arch/x86/operand.h: Fix a mistake: define a base when reading the target register. * src/arch/x86/op_hlt.c: * src/arch/x86/op_inc.c: Register these new opcodes. * src/arch/x86/op_mov.c: Update the call to x86_create_reg1632_operand(). * src/arch/x86/op_nop.c: Typo. * src/arch/x86/op_pop.c: * src/arch/x86/op_push.c: Register these new opcodes. * src/arch/x86/processor.c: Register the new opcodes and fix a bug with X86_OP_MOV_CX (s/D/C). * src/binary.c: Load the content of the file '/tmp/hello'. * src/format/elf/format_elf.c: * src/format/elf/format_elf.h: Look for the executable part of an ELF file. 2008-07-29 Cyrille Bagard * src/binary.c: Increase the length of the input code. * src/editor.c: Fix a warning about the GtkScrolledWindow. * src/gtksnippet.c: Adapt the size of the GtkSnippet widget. Define a white background. 2008-07-28 Cyrille Bagard * src/arch/operand.c: Fix a bug when reading immediate values (|| != |). * src/binary.c: Map the content of a given file into memory. 2008-07-27 Cyrille Bagard * configure.ac: Forget to commit last time. * src/arch/instruction.c: * src/arch/instruction.h: Change the data type (char -> uint8_t) and update for the new internal structure. * src/arch/instruction-int.h: Change the definition of the asm_instr structure. * src/arch/operand.c: * src/arch/operand.h: Manage in a generic way 'db' and immediate values. * src/arch/operand-int.h: Refine the operand description. * src/arch/processor.c: * src/arch/processor.h: * src/arch/processor-int.h: Change the data type (char -> uint8_t) and handle the syntax. * src/arch/x86/instruction.h: Add new opcodes and support prefixes. * src/arch/x86/Makefile.am: Add op_nop.c, op_mov.c and operand.[ch] to libarchx86_a_SOURCES. * src/arch/x86/opcodes.h: Keep the list up to date. * src/arch/x86/operand.c: * src/arch/x86/operand.h: New entries: support some x86 specific operands. * src/arch/x86/op_int.c: Change the data type (char -> uint8_t) and update for the new internal structure. * src/arch/x86/op_mov.c: * src/arch/x86/op_nop.c: New entries: Add these two new operands. * src/arch/x86/processor.c: Change the data type (char -> uint8_t) and handle the syntax. Support opcode prefixes and new opcodes. Clean the code for fetching instructions and the one for printing them. * src/binary.c: Change the data type (char -> uint8_t). * src/gtksnippet.c: Ask for a given syntax (Intel). 2008-07-27 Cyrille Bagard * configure.ac: Remove AC_PROG_RANLIB in favor of AC_PROG_LIBTOOL. Add AM_PROG_CC_C_O and schedule the creation of the new Makefiles. * src/arch/instruction.c: * src/arch/instruction.h: * src/arch/instruction-int.h: * src/arch/Makefile.am: * src/arch/operand.c: * src/arch/operand.h: * src/arch/operand-int.h: * src/arch/processor.c: * src/arch/processor.h: * src/arch/processor-int.h: * src/arch/x86/instruction.h: * src/arch/x86/Makefile.am: * src/arch/x86/opcodes.h: * src/arch/x86/op_int.c: * src/arch/x86/processor.c: * src/arch/x86/processor.h: New entries: parse x86 binary data and display the result. * src/binary.c: * src/binary.h: New entries: load a basic ASM content. * src/editor.c: Set some fixed fonts and use the new code snippet. Update the GPL header (Firebox Tools -> OpenIDA, version 2 -> version 3). * src/format/elf/format_elf.c: * src/format/elf/format_elf.h: * src/format/elf/Makefile.am: * src/format/Makefile.am: New entries: empty files. * src/gtksnippet.c: * src/gtksnippet.h: New entries: from an example from GTK.org, display assembly content. * src/Makefile.am: Add binary.[ch] and gtksnippet.[cg] files to openida_SOURCES and internal libraries to openida_LDADD. 2008-07-23 Cyrille Bagard * AUTHORS: * ChangeLog: * configure.ac: * Makefile.am: * NEWS: * po/Makevars: * po/POTFILES.in: * README: * src/editor.c: * src/Makefile.am: Initial commit. State of the program submitted to Gna!.