Menu

Tree [29d741] master /
 History

HTTPS access


File Date Author Commit
 doc 2015-09-13 James Oakley James Oakley [02ce03] Updated manpage for setcap instructions
 misc 2013-08-31 James Oakley James Oakley [12f5a2] update for compatibility with newer autoconf ve...
 real_tests unknown
 src 2018-01-27 James Oakley James Oakley [29d741] Fix typo
 tests unknown
 .dir-locals.el unknown
 .eproject unknown
 .gitignore 2015-12-06 James Oakley James Oakley [bbfb3e] updated gitignore
 AUTHORS 2017-12-17 James Oakley James Oakley [0b10d4] Remove my Dartmouth email, it is no longer valid
 COPYING unknown
 ChangeLog unknown
 INSTALL unknown
 LICENSE unknown
 Makefile.am unknown
 Makefile.in 2015-04-07 James Oakley James Oakley [9fe21c] update Makefile.in files from a fresh run of au...
 README 2018-01-27 James Oakley James Oakley [3cc3e3] Minor updates to README
 aclocal.m4 2015-04-07 James Oakley James Oakley [1da8e4] keep aclocal.m4 in source control so people wit...
 apache_test.sh unknown
 compile 2015-04-07 James Oakley James Oakley [9fe21c] update Makefile.in files from a fresh run of au...
 config.guess unknown
 config.h.in unknown
 config.sub unknown
 configure unknown
 configure.ac 2014-11-17 James Oakley James Oakley [5b38da] Do not use -Werror and re-run automake. Add _DE...
 depcomp 2015-04-07 James Oakley James Oakley [9fe21c] update Makefile.in files from a fresh run of au...
 install-sh 2015-04-07 James Oakley James Oakley [9fe21c] update Makefile.in files from a fresh run of au...
 missing unknown
 notes unknown
 patch_unit_tests 2015-12-06 James Oakley James Oakley [228144] added warning about cap_sys_ptrace
 run_dwarf_tests.sh unknown
 run_tests.py unknown
 setcap_katana.sh 2015-12-06 James Oakley James Oakley [d639a8] moved setcap_katana
 tar-excludes unknown
 test-driver 2015-04-07 James Oakley James Oakley [9fe21c] update Makefile.in files from a fresh run of au...
 validator.py 2015-12-06 James Oakley James Oakley [0aa7b1] addressed issues if breakpoint is needed in the...

Read Me

This is a preliminary version of Katana, a toolchain-oriented
hotpatching system for userland (in contrast to kernel-patching
systems such as KSplice) and a (somewhat) general-purpose ELF and
DWARF manipulation tool. More complete documentation will reside in
./doc, although such is currently in a very early state


DEPENDENCIES
libelf
  widely available with a couple different implementations. I
  recommend the one from Red Hat at
  https://fedorahosted.org/elfutils/. The FSF version
  (http://directory.fsf.org/project/libelf/) which is the default
  available to gentoo users, does not seem to be fully compatible.
libdwarf
  you can get the latest version of libdwarf from
  http://reality.sgiweb.org/davea/dwarf.html. 
libunwind
  http://www.nongnu.org/libunwind/
libreadline
  http://www.gnu.org/software/readline/
bison
  http://www.gnu.org/software/bison/
flex
  http://flex.sourceforge.net/

BUILDING
./configure
make

Note that flex and bison (as well as gcc, of course) are required to
build Katana.

make
./install libdwarf.so DEST

TESTING
To make sure katana works:
make check

USAGE
  Katana presently has two main functions
  HOTPATCHING
    To generate a patch file, run
    katana -g [-o OUT_FULE] OLD_OBJECT_TREE NEW_OBJECT_TREE EXEC
    (EXEC is the name of the executable file whose process will be patched)

    To patch a process run
    katana -p PATCH_FILE PID

  ELF/DWARF Manipulation
    See the shell commands at http://katana.nongnu.org/doc/katana.html#sec-2.1        
    Further documentation has not yet been written. Email
    electron100@gmail.com if you are interested in seeing this expanded