Initial empty repository
Adding android ELF library parsing script

Signed-off-by: Jeremy C. Andrus <jeremya@cs.columbia.edu>
Initial import of wrapper script and ASM

This code should generate a small wrapper library of only syscalls
in an Android ELF library. Nowhere near complete, but a good starting
point.

Signed-off-by: Jeremy C. Andrus <jeremya@cs.columbia.edu>
wrapper ARM asm fixups, wrap_lib.c fixups, script fixups

Signed-off-by: Jeremy C. Andrus <jeremya@cs.columbia.edu>
ios fixups (not complete yet)

Signed-off-by: Jeremy C. Andrus <jeremya@cs.columbia.edu>
support multiple symbols per function, better android libc support

Signed-off-by: Jeremy C. Andrus <jeremya@cs.columbia.edu>
updates to ASM output + a couple more non-wrapped libc funtions

Signed-off-by: Jeremy C. Andrus <jeremya@cs.columbia.edu>
fix Android assembly (make it ARM), fix libc init

Signed-off-by: Jeremy C. Andrus <jeremya@cs.columbia.edu>
code cleanup + syscall tree (intra-library syscall) support

Signed-off-by: Jeremy C. Andrus <jeremya@cs.columbia.edu>
Adding python code to modify ELF files in-place

Signed-off-by: Jeremy C. Andrus <jeremya@cs.columbia.edu>
Add ability to modify the DT_SONAME of an ELF

The length of the new name must be less than or equal to the length of
the original name.

Signed-off-by: Jeremy C. Andrus <jeremya@cs.columbia.edu>
large refactor of library wrapping

use new python ELF manipulation script to ease the pain of libc wrapping
(and use exported data objects from wrapped library)

Signed-off-by: Jeremy C. Andrus <jeremya@cs.columbia.edu>
implement custom dlsym using saved symbol table

also do some code cleanup

Signed-off-by: Jeremy C. Andrus <jeremya@cs.columbia.edu>
added gitignore

Signed-off-by: Jeremy C. Andrus <jeremya@cs.columbia.edu>
Add unwind data to ARM assembly, fill in backtrace implementation

Signed-off-by: Jeremy C. Andrus <jeremya@cs.columbia.edu>
better libc separation (for non-wrapped case)

When not wrapping libc, be sure to load libc.so, not the
wrapped name: _ibc_so

When _not_ wrapping libc be sure to use the standard dlsym for libc
entry points (only use the table_dlsym for the library we wrap).

Also - added memcpy to the list of libc functions to look for.

Signed-off-by: Jeremy C. Andrus <jeremya@cs.columbia.edu>
tweaks to Android install script

Signed-off-by: Jeremy C. Andrus <jeremya@cs.columbia.edu>
move state to TLS and generate nicer backtrace

Signed-off-by: Jeremy C. Andrus <jeremya@cs.columbia.edu>
prep for special handling of library callls (e.g. fork)

This is incomplete, but gives a framework for handling library calls
that need to be treated specially.

Signed-off-by: Jeremy C. Andrus <jeremya@cs.columbia.edu>
ARM wrapper assembly re-factor

refactor the ARM assembly to both fix some bugs, and increase
efficiency.

Signed-off-by: Jeremy C. Andrus <jeremya@cs.columbia.edu>