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