root/tags/ptrace-0.3.2/README

Revision 1, 2.8 kB (checked in by haypo, 5 months ago)

Import tags and trunk from Fusil svn

  • Property svn:eol-style set to native
Line 
1 ptrace is a Python binding of ptrace library.
2
3 The binding works on:
4
5  * Linux version 2.6.20 on i386, x86_64, PPC (may works on Linux 2.4.x and 2.6.x)
6  * Linux version 2.4 on PPC
7  * FreeBSD version 7.0RC1 on i386 (may works on FreeBSD 5.x/6.x)
8  * OpenBSD version 4.2 on i386
9
10 Features:
11
12  * High level Python object API : !PtraceDebugger and !PtraceProcess
13  * Able to control multiple processes: catch fork events on Linux
14  * Read/write bytes to arbitrary address: take care of memory alignment and split bytes to cpu word
15  * Execution step by step using ptrace_singlestep() or hardware interruption 3
16  * Can use distorm (http://www.ragestorm.net/distorm/) disassembler
17  * Dump registers, memory mappings, stack, etc.
18  * Syscall tracer and parser (strace command)
19
20 Website: http://fusil.hachoir.org/trac/wiki/Ptrace
21
22
23 Installation
24 ============
25
26 Read INSTALL documentation file.
27
28
29 Changelog
30 =========
31
32 Version 0.3.2 (2008-07-25)
33 --------------------------
34
35  * Rewrite ip_int2str() using inet_ntoa() to avoid IPy dependency
36  * Add kill() and unlink() syscall prototypes
37  * Fix sign conversion error in ptrace() to fix error detection
38  * Catch OSError in ptrace.disasm (unable to find libdistorm64.so)
39  * PtraceDebugger.addProcess(): detach the process on exception
40  * Breakpoint: don't store bytes if the process is not running anymore
41  * writeError() now re-raise KeyboardInterrupt
42  * PtraceProcess: don't detach or terminate process if it is was running
43  * PtraceProcess: never send SIGTRAP signal to a process!
44
45 Version 0.3.1 (2008-07-08)
46 --------------------------
47
48 Minor update:
49
50  * ptrace.ctypes_errno: use ctypes_support.get_errno() when it's available
51  * Create RUNNING_PYPY constant is ptrace.os_tools
52  * Remove ptrace dependency from ptrace.pydistorm to be able to use
53    it outside ptrace
54
55 Version 0.3 (2008-03-26)
56 ------------------------
57
58  * Support OpenBSD i386
59  * Use ptrace_io() on FreeBSD for faster readBytes()/writeBytes() methods
60  * Use ptrace_peekuser() to read registers on OS without ptrace_getregs()
61    (eg. Linux 2.4 on PPC)
62  * Breakpoint works on PPC CPU (use TRAP instruction)
63  * Delete process and raise ProcessExit on abnormal process death
64    (eg. detected by waitpid(pid))
65  * Write new Python binding to distorm64 library
66  * gdb.py: create "backtrace" command
67  * gdb.py: support operators in expressions (eg. $eip+4)
68
69
70 Version 0.2 (2008-02-14)
71 ------------------------
72
73  * Able to trace multiple processes
74  * Many new gdb.py commands: hexdump, signal, print, etc.
75  * Support i386 (Linux, FreeBSD), x86_64 (Linux) and PPC (Linux)
76  * Guess reason why a signal is sent: invalid memory read, stack
77    overflow, division by zero, etc.
78  * Create simple C program to test strace.py and gdb.py
79  * Move files to three main modules: ptrace.binding, ptrace.syscall
80    and ptrace.debugger
81
82 Version 0.1 (2008-02-08)
83 ------------------------
84
85  * First public release
86
Note: See TracBrowser for help on using the browser.