-/*
- {
- pid_t pid = (pid_t)PID_SELECTED;
- vm_map_t task;
-
- kern_return_t result;
- //int waitStatus;
-
- addressList = [[NSMutableArray alloc] init];
-
- result = task_for_pid( current_task(), pid, &task );
-
- if ( result == KERN_SUCCESS )
- NSLog( @"KERN_SUCCESS" );
- else if ( result == KERN_INVALID_ADDRESS )
- NSLog( @"KERN_INVALID_ADDRESS" );
- else if ( result == KERN_INVALID_ARGUMENT )
- NSLog( @"KERN_INVALID_ARGUMENT" );
- else if ( result == KERN_PROTECTION_FAILURE )
- NSLog( @"KERN_PROTECTION_FAILURE" );
- else if ( result == KERN_NO_SPACE )
- NSLog( @"KERN_NO_SPACE" );
-
- if ( ptrace( PT_ATTACH, pid, 0, 0 ) != -1 )
- {
- if ( waitpid( pid, &waitStatus, WUNTRACED ) == pid )
- {
- if ( WIFSTOPPED(waitStatus) )
- {
- NSLog( @"process stopped" );
- }
- else
- {
- NSLog( @"process didn't stop" );
- }
-
- {
- vm_address_t address = 0x1b000;
- vm_size_t size = 0;
- vm_region_basic_info_data_t info;
- mach_msg_type_number_t infoCnt = 8;
- mach_port_t object_name = 0;
-
- BOOL canRead, canWrite, canExecute;
-
- char unsigned *data;
- vm_size_t dataCnt;
-
- NSLog( @"pid: %i, task: %i", pid, task );
-
- result = vm_region( task, &address, &size, VM_REGION_BASIC_INFO, (vm_region_info_t)(&info), &infoCnt, &object_name );
-
- NSLog( @"info count: %i", (int)infoCnt );
-
- if ( result == KERN_SUCCESS )
- NSLog( @"KERN_SUCCESS" );
- else if ( result == KERN_INVALID_ADDRESS )
- NSLog( @"KERN_INVALID_ADDRESS" );
- else if ( result == KERN_INVALID_ARGUMENT )
- NSLog( @"KERN_INVALID_ARGUMENT" );
- else if ( result == KERN_PROTECTION_FAILURE )
- NSLog( @"KERN_PROTECTION_FAILURE" );
- else if ( result == KERN_NO_SPACE )
- NSLog( @"KERN_NO_SPACE" );
-
- NSLog( @"address: %X, size: %i", address, size );
-
- canRead = info.protection & VM_PROT_READ;
- canWrite = (info.protection & VM_PROT_WRITE) >> 1;
- canExecute = (info.protection & VM_PROT_EXECUTE) >> 2;
-
- if ( canRead )
- NSLog( @"can read" );
- if ( canWrite )
- NSLog( @"can write" );
- if ( canExecute )
- NSLog( @"can execute" );
-
- data = (char unsigned *)malloc( size );
- dataCnt = size;
-
- result = vm_read_overwrite( task, address, size, (vm_address_t)data, &dataCnt );
-
- if ( result == KERN_SUCCESS )
- NSLog( @"KERN_SUCCESS" );
- else if ( result == KERN_INVALID_ADDRESS )
- NSLog( @"KERN_INVALID_ADDRESS" );
- else if ( result == KERN_INVALID_ARGUMENT )
- NSLog( @"KERN_INVALID_ARGUMENT" );
- else if ( result == KERN_PROTECTION_FAILURE )
- NSLog( @"KERN_PROTECTION_FAILURE" );
- else if ( result == KERN_NO_SPACE )
- NSLog( @"KERN_NO_SPACE" );
-
- NSLog( @"data: %X, size: %i", (vm_address_t)data, dataCnt );
-
- free( data );
- }
- }
- else
- {
- NSLog( @"waitpid() failed" );
- }
-
- ptrace( PT_DETACH, pid, 0, 0 );
- }
- else
- {
- NSLog( @"ptrace() failed" );
- }
- }*/