Age | Commit message (Collapse) | Author | |
---|---|---|---|
2015-02-24 | GPLv2 release | norly | |
2013-06-28 | Annotate doxygen-styledoxygen | norly | |
2013-06-27 | Allocate .symtab during Reladd if none presentcleanup | norly | |
2013-06-27 | Remove unneeded struct member and fix references to it | norly | |
2013-06-27 | Relax restrictions on NOBITS sections | norly | |
2013-06-27 | Lookup dynamically linked global variables. | norly | |
This works ONLY in position-dependent executables. Processing position-independent code includes generating and inserting code that finds out the current instruction address. That's beyond the scope of editing normal executables, which are usually position-dependent unless requested otherwise. | |||
2013-06-26 | Separate PLT lookup | norly | |
2013-06-24 | PHDR addition. Should make x86-64 work in many cases. | norly | |
2013-06-24 | Reorder PHDRs according to ELF spec | norly | |
2013-06-24 | PHDR: Find lowest/highest addr/offs | norly | |
2013-06-22 | PHDR: find by addr/offset | norly | |
2013-06-21 | Merge cloneScn() into reladd.c | norly | |
It's the only place where we use it, and it's case-specific | |||
2013-06-21 | LOAD PHDRs at top level, others as children. mPhdrForall(). | norly | |
The reference binaries had to be updated as PHDRs are now reordered. | |||
2013-06-20 | Add Elf/Phdr/Scn alloc/destroy | norly | |
2013-06-20 | Cleaner ElfuPhdr alloc | norly | |
2013-06-20 | Clean up code using ElfuScn | norly | |
2013-06-18 | Basic detour support | norly | |
2013-06-17 | C90 compliance, except variadic macros and TODOs | norly | |
Also removed a lot of dead code from the early days. | |||
2013-06-16 | mv main.c -> elfucli.c, make it scriptable via argssymrel | norly | |
2013-06-15 | Factor out symbol table handling | norly | |
2013-06-15 | Rename mRelocate | norly | |
2013-06-15 | Merge symbol tables. (Not fully ELF conformant) | norly | |
Also, remove that nameptr member from symbols. It just *had* to cause trouble. Symbols are simply appended to the target's symbol table, which means that LOCAL symbols are not inserted at the beginning and we are thus ignoring an ELF spec. Might change that in the future, it's good enough for now and it's sure not to break anything with the old symbols. The code currently assumes that the target *has* a symbol table. We'll have to fix that, and also remove undefined and duplicate symbols. | |||
2013-06-15 | Flatten symtab to file - gdb works, check breaks. | norly | |
2013-06-15 | Make symtab and reltab resident in ElfuScn | norly | |
2013-06-03 | Guess where unknown functions are in .rel.plt | norly | |
2013-06-03 | Basic 32-bit SYMTAB and REL (not RELA) support | norly | |
2013-06-03 | Simplify includes | norly | |
2013-05-31 | Auto-layout file after --reladd | norly | |
2013-05-31 | Pull out existing re-layouting code | norly | |
2013-05-30 | Redesign data structures, make basic reladd work.newparser | norly | |
The memory ELF model is now a tree structure: ELF +--> PHDRs +--> PHDR +--> Section | | +--> Section | | ... | | \--> Section | | | +--> PHDR +--> Section | | ... | ... | \--> Orphaned sections +--> Section ... \--> Section This effectively introduces semantics into the binary blob we are editing, and allows us to re-layout its contents much more easily while keeping as close as possible to what is assumed to be the original semantics. As a side-effect, a first meta-function had to be introduced (elfu_mScnForall) in order to traverse all leaves of the tree. Much old code has been removed given the leaner environment available now, and automated insertion of .text and .data sections from object files into executables now works. However nothing else is inserted (such as string tables or .bss) and no relocation takes place yet. | |||
2013-05-28 | Implement orphaned sections | norly | |
Orphaned sections are not (fully) included in any LOAD PHDR and can thus be moved and stripped at will without changing the memory image of the program. | |||
2013-05-28 | Add printing functions for models to ease debugging | norly | |
2013-05-27 | Find PHDR -> PHDR dependencies | norly | |
2013-05-27 | Restrict sh_link/sh_info evaluation where possible | norly | |
2013-05-27 | Abstract model more - break 'make check' | norly | |
Sections are now sorted by file offset and sh_link dependencies between them as well as PHDR-SHDR dependencies are deduced as much as possible. The downside is that while the output should still work just fine, 'make check' fails to establish binary equivalence of input and output if the section table is reordered. Thankfully, in normal GCC binaries it is already ordered so we don't have to worry about this. Unfortunately the ELF spec is very lax in this regard so we have to draw a line ourselves. | |||
2013-05-27 | Turn elfu_gPhdrContainsScn into a macro | norly | |
2013-05-27 | Turn elfu_gScnSizeFile into a macro | norly | |
2013-05-27 | Validate input at libelf level | norly | |
This way we can just assume that stuff works later on and keep the code clean and simple. It especially establishes that the file has a sane format and is thus understandable and editable. | |||
2013-05-25 | Be more verbose | norly | |
2013-05-24 | Object file injection, first part | norly | |
2013-05-24 | Move section-in-segment.c to generic/ | norly | |
2013-05-24 | Cleaner error handling with ELFU_WARN and ELFU_WARNELF | norly | |
2013-05-24 | Use explicit libelf/* path in includes | norly | |
2013-03-21 | NOBITS expansion, for .bss etc | norly | |
GNU binutils' readelf gets confused with symbol versions. More analysis needed on that. | |||
2013-03-21 | Copy section contents into newly allocated buffers | norly | |
2013-03-01 | Implement mInsertAfter, for post-.data injection | norly | |
2013-02-27 | Implement mInsertBefore, for pre-.interp injection | norly | |
2013-02-23 | Refactor mdoel-related code | norly | |
2013-02-23 | Clean up ELF-related files and functions | norly | |
2013-02-23 | Move headers for ELF-based operations together | norly | |