442 Commits

Author SHA1 Message Date
Christopher Cole
a7e46b1818 Read section contents using Take and read_to_end 2015-07-24 05:27:15 +00:00
Christopher Cole
4ecb07d8c9 Merge pull request #3 from DiamondLovesYou/master
Update for newer Rust.
2015-07-23 13:22:57 -07:00
Richard Diamond
29507f31fe Extra derives. 2015-07-05 14:36:45 -05:00
Richard Diamond
f5398226d7 Accept multiple arguments from rust-readelf. 2015-06-29 06:04:37 -05:00
Richard Diamond
6be78a4657 Remove an unknown feature. 2015-06-29 05:45:59 -05:00
Richard Diamond
641cd177e5 Read header data from a io stream. 2015-06-29 05:45:09 -05:00
Richard Diamond
e5e60e6199 Update for newer Rust. 2015-06-29 05:38:59 -05:00
Christopher Cole
6a7dd76bbc Fix more build breakage from io/path deprecation 2015-02-21 12:18:54 -08:00
Christopher Cole
049e584cc8 Add link to documentation in root README 2015-02-09 20:53:52 -08:00
Christopher Cole
7a664b1e8e Remove stale #![feature(collections)] attribute 2015-02-09 20:21:17 -08:00
Christopher Cole
c2dd168fe6 Add types for ELF Symbols
Symbol encapsulates both Elf32_Sym and Elf64_Sym
2015-02-09 20:20:37 -08:00
Christopher Cole
e7ea33896e Remove unnecessary allocs from utils::get_string
The previous implementation would result in many unnecessary
duplications of the entire string table section data just to parse
out single strings.
2015-02-08 18:36:38 -08:00
Christopher Cole
1869d4515a Remove the io backing struct from the File struct
This allows for the modification and writing of ELF files
in addition to simple parsing.
2015-02-08 18:27:02 -08:00
Christopher Cole
60970e0798 Pass the underlying reader to utils::read_* macros
This is in preparation to removing the reader from the File
struct. The file struct should be independent of any backing
store to allow for the creation and modification of ELF files
in addition to simple parsing.
2015-02-08 18:19:23 -08:00
Christopher Cole
42aaf50b83 std::path -> std::old_path 2015-02-05 23:49:40 -08:00
Christopher Cole
c26011bd7e Add doc comments for ELF section header 2015-02-04 21:55:48 -08:00
Christopher Cole
08f70081a2 Add doc comments for ELF program header 2015-02-04 21:33:34 -08:00
Christopher Cole
7e2325b1d5 Add doc comments for the ELF file header struct 2015-02-04 20:12:59 -08:00
Christopher Cole
6e3cd4af86 Add doc comments for ELF file header types 2015-02-04 20:02:59 -08:00
Christopher Cole
9726de2591 Bump version to 0.0.4 and add documentation link 2015-02-03 22:15:48 -08:00
Christopher Cole
adbbc42c4b Update README to include File::get_section usage 2015-02-03 21:20:53 -08:00
Christopher Cole
58e73f0969 Add File::get_section for named section lookup
This also changes File::open to read the section data into memory.
Ideally, File::open would just register Reader objects with which
clients could selectively read section contents as they see fit.
Due to the current instability of std::io (now std::old_io), I've
decided to hold off until the standard I/O API stabilizes to
implement lazy reading.
This means that opening large elf files will read the file entire
contents into memory, so beware :)
2015-02-03 21:09:50 -08:00
Christopher Cole
01ca1e7483 Bump version to 0.0.3 2015-01-31 23:08:09 -08:00
Christopher Cole
c1dc62bf4e Parse the Section Header table in File::open
This adds a shdrs vector to the File object describing the
Section Headers contained in the section header table.
2015-01-31 23:07:19 -08:00
Christopher Cole
714e7c3ef3 Add types for ELF section headers.
SectionHeader encapsulates both Elf32_Shdr and Elf64_Shdr.
2015-01-31 23:05:51 -08:00
Christopher Cole
d5ad704970 Parse the Program Header table in File::open
This adds a phdrs vector to the File object describing the
Program Headers contained in the program header table.
2015-01-30 23:03:24 -08:00
Christopher Cole
0e6d3548c9 Add types for ELF program headers.
ProgramHeader encapsulates both Elf32_Phdr and Elf64_Phdr.
2015-01-30 22:20:50 -08:00
Christopher Cole
18bdbe1329 Make FileHeader encapsulate both ELF32 and ELF64
The elf::File struct's Open function parses the entire ELF
file in one go. This means FileHeader doesn't need to remember
the various pointer/size members such as phoff, phentsize and instead
simply use them to inform parsing.
2015-01-29 21:40:10 -08:00
Christopher Cole
95ddaae4dd Add vim .swp files to .gitignore 2015-01-29 19:41:27 -08:00
Christopher Cole
6315aac000 derive(Show) -> derive(Debug) 2015-01-29 19:40:56 -08:00
Christopher Cole
be079b737b Update warning suppression attributes
allow(unstable) -> feature(foo)
2015-01-29 19:38:56 -08:00
Christopher Cole
592e165e34 Bump version to 0.0.2 2015-01-28 23:07:58 -08:00
Christopher Cole
3c95341d5c Add elf::File struct to parse an on-disk ELF file
Currently only parses ELF32 File Headers.
2015-01-28 22:55:26 -08:00
Christopher Cole
a2c1ae6179 Change types::Version to be 32-bits wide
Even though the spec only defines values of 0 or 1 for e_version,
we should still be able to represent all potential values.
2015-01-28 20:27:25 -08:00
Christopher Cole
f894a8f311 Move ELF type definitions to a types module 2015-01-27 23:50:20 -08:00
Christopher Cole
2ba9481c14 Add travis-ci build badge to README.md 2015-01-26 21:50:21 -08:00
Christopher Cole
1cd260efe3 Properly name the travis-ci config file 2015-01-26 21:21:32 -08:00
Christopher Cole
9daa1d6c68 Add travis.yml to allow CI testing via travis-ci 2015-01-26 21:19:07 -08:00
Christopher Cole
63a0440e5f Add types for rest of file header attributes
Also, standardize file header attribute typs as wrapper types rather
than enums.
2015-01-26 20:49:38 -08:00
Christopher Cole
85ddaa2127 Add type definitions for the ELF file header.
This is exploratory to see what seems to work well. For example, the e_class
and e_data members of Elf32Ehdr are currently enums, while e_version is a
wrapper type for u8.
2015-01-26 03:38:42 +00:00
Christopher Cole
64e2e1ffe8 Add initial cargo packaging 2015-01-25 07:11:08 +00:00
Christopher Cole
c8a55415df Initial commit 2015-01-24 15:33:23 -08:00