#include <sys/ptrace.h>
#include <signal.h>
#include <stdio.h>
#include <sys/wait.h>

// Neutrinka

int main ( int args, char *argv[] )
{
    void *addr;
    int pid, i, znak, j;

    if( args < 2 )
    {
	printf("usage: %s pid ilosc_bajtow", argv[0] );
	exit(0);
    }
    
    printf("Podaj ilosc Bajtow: ");
    scanf("%d", &j);
    
    pid = atoi( argv[1] );
    (void *)addr = 0xbfffffff;
    
    i = 0;

	do
	{
	    ptrace(PTRACE_ATTACH, pid, 0, 0);
	    znak = ptrace(PTRACE_PEEKTEXT, pid, addr-i, 1);
	    ptrace(PTRACE_DETACH, pid, 0, 0);
	    if( i%128 == 0 ) printf("\n[%X]: ", addr-i);
	    printf("%c", znak);
	    i++;
	}
	while( i < j );

    return 0;    
}
