support for displaying & filtering packed files

support for displaying & filtering  encrypted files
support for enumerating dylibs in 32bit processes
UI improvements (main text in cells is single, albeit attributed string)
This commit is contained in:
Patrick Wardle
2016-02-21 19:36:37 -10:00
parent ca1579d883
commit f8cd92239d
21 changed files with 527 additions and 353 deletions
+3 -1
View File
@@ -18,7 +18,9 @@
//TODO: filter out dup'd networks (airportd 0:0..) -not sure want to do this
//TODO: autolayout vertically
//TODO: show 'from where' via quarantine attrz
//TODO: show 'from where' via quarantine attrz or database!! (simon email)
//TODO: detect as procs die via GCD (simon blog post)
@implementation AppDelegate
+3 -2
View File
@@ -57,6 +57,9 @@
//path to LSOF
#define LSOF @"/usr/sbin/lsof"
//path to vmmap32
#define VMMAP_32 @"/usr/bin/vmmap32"
//path to vmmap
#define VMMAP @"/usr/bin/vmmap"
@@ -131,8 +134,6 @@
//id (tag) for path
#define TABLE_ROW_PATH_LABEL 101
//id (tag) for plist
#define TABLE_ROW_PID_LABEL 102
//id (tag) for 'virus total' button
#define TABLE_ROW_VT_BUTTON 103
+8
View File
@@ -35,6 +35,14 @@
// ->determine if binary is flagged by VT
-(BOOL)isFlagged:(Binary*)item;
//keyword filter '#encrypted'
// ->determine if binary is encrypted
-(BOOL)isEncrypted:(Binary*)item;
//keyword filter '#packed'
// ->determine if binary is packed
-(BOOL)isPacked:(Binary*)item;
//filter tasks
-(void)filterTasks:(NSString*)filterText items:(NSMutableDictionary*)items results:(NSMutableArray*)results;
+60 -1
View File
@@ -13,7 +13,7 @@
#import "Connection.h"
//binary filter keywords
NSString * const BINARY_KEYWORDS[] = {@"#apple", @"#nonapple", @"#signed", @"#unsigned", @"#flagged"};
NSString * const BINARY_KEYWORDS[] = {@"#apple", @"#nonapple", @"#signed", @"#unsigned", @"#flagged", @"#encrypted", @"#packed"};
@implementation Filter
@@ -384,6 +384,29 @@ NSString * const BINARY_KEYWORDS[] = {@"#apple", @"#nonapple", @"#signed", @"#un
goto bail;
}
//handle '#encrypted'
else if( (YES == [keyword isEqualToString:@"#encrypted"]) &&
(YES == [self isEncrypted:binary]) )
{
//happy
fulfills = YES;
//bail
goto bail;
}
//handle '#packed'
else if( (YES == [keyword isEqualToString:@"#packed"]) &&
(YES == [self isPacked:binary]) )
{
//happy
fulfills = YES;
//bail
goto bail;
}
//bail
bail:
@@ -463,4 +486,40 @@ bail:
}
//keyword filter '#encrypted'
// ->determine if binary is encrypted
-(BOOL)isEncrypted:(Binary *)item
{
//make sure item was parsed
if(nil == item.parser)
{
//parse
[item parse];
//save encrypted flag
item.isEncrypted = [item.parser.binaryInfo[KEY_IS_ENCRYPTED] boolValue];
}
//set flag
return item.isEncrypted;
}
//keyword filter '#packed'
// ->determine if binary is packed
-(BOOL)isPacked:(Binary *)item
{
//make sure item was parsed
if(nil == item.parser)
{
//parse
[item parse];
//save packed flag
item.isPacked = [item.parser.binaryInfo[KEY_IS_PACKED] boolValue];
}
//set flag
return item.isPacked;
}
@end
+4
View File
@@ -25,6 +25,7 @@ NSTableCellView* createFlaggedItemView(NSTableView* tableView, id owner, id item
//create & customize global dylib/file view
NSTableCellView* createLoadedItemView(NSTableView* tableView, id owner, id item);
//create & customize task view
NSTableCellView* createTaskView(NSTableView* tableView, id owner, id item);
@@ -40,6 +41,9 @@ NSTableCellView* createNetworkView(NSTableView* tableView, id owner, Connection*
//add a tracking area to a view within the item view
void addTrackingArea(NSTableCellView* itemView, NSUInteger subviewTag, id owner);
//build item + 'loaded in' string for dylibs, files, etc in search window
NSAttributedString* initLoadedInString(id item);
//set code signing image
// ->either signed, unsigned, or unknown
NSImage* getCodeSigningIcon(Binary* binary);
+220 -127
View File
@@ -153,58 +153,6 @@ NSTableCellView* createLoadedItemView(NSTableView* tableView, id owner, id item)
//item cell
NSTableCellView* loadedItemCell = nil;
//matching or host tasks
NSMutableArray* tasks = nil;
//pid or 'loaded in' string
NSMutableString* loadedIn = nil;
//task's name frame
CGRect nameFrame = {0};
//get host tasks
// ->works with dylibs or files
tasks = [((AppDelegate*)[[NSApplication sharedApplication] delegate]).taskEnumerator loadedIn:item];
//add dylib indicator
//-> '(dylib, loaded in: ... '
if(YES == [item isKindOfClass:[Binary class]])
{
//init
loadedIn = [NSMutableString stringWithFormat:@"(dylib, loaded in:"];
}
//add file indicator
//-> '(file, loaded in: ... '
else if(YES == [item isKindOfClass:[File class]])
{
//init
loadedIn = [NSMutableString stringWithFormat:@"(file, loaded in:"];
}
//add connection indicator
//-> '(connection, in: ... '
else if(YES == [item isKindOfClass:[Connection class]])
{
//init
loadedIn = [NSMutableString stringWithFormat:@"(connection, in:"];
}
//add all tasks
for(Task* task in tasks)
{
//append name
[loadedIn appendFormat:@" %@,", task.binary.name];
}
//remove last ','
if(YES == [loadedIn hasSuffix:@","])
{
//remove
[loadedIn deleteCharactersInRange:NSMakeRange([loadedIn length]-1, 1)];
}
//terminate list/output
[loadedIn appendString:@")"];
//dylibs
// ->create cell
if(YES == [item isKindOfClass:[Binary class]])
@@ -268,39 +216,9 @@ NSTableCellView* createLoadedItemView(NSTableView* tableView, id owner, id item)
//default
// ->(re)set main textfield's color to black
loadedItemCell.textField.textColor = [NSColor blackColor];
//dylibs/files
// ->main text is name
if( (YES == [item isKindOfClass:[Binary class]]) ||
(YES == [item isKindOfClass:[File class]]) )
{
//set name
[loadedItemCell.textField setStringValue:[item name]];
}
//connections
// ->main text is endpoints string
else
{
//set endpoints string
[loadedItemCell.textField setStringValue:[item endpoints]];
}
//get name frame
nameFrame = loadedItemCell.textField.frame;
//adjust width to fit text
nameFrame.size.width = [loadedItemCell.textField.stringValue sizeWithAttributes: @{NSFontAttributeName: loadedItemCell.textField.font}].width + 5;
//disable autolayout for name
loadedItemCell.textField.translatesAutoresizingMaskIntoConstraints = YES;
//update name frame
// ->should now be exact size of text
loadedItemCell.textField.frame = nameFrame;
//set host task(s) string
// ->immediately follows name
[((NSTextField*)[loadedItemCell viewWithTag:TABLE_ROW_PID_LABEL]) setStringValue:loadedIn];
//set main text
loadedItemCell.textField.attributedStringValue = initLoadedInString(item);
//dylibs/files
// ->subtext is path
@@ -346,18 +264,226 @@ bail:
return loadedItemCell;
}
//build binary string for main window
// ->format: binary name (pid: <xxx> [encrypted|packed])
NSAttributedString* initBinaryString(id item, BOOL isSearchWindow)
{
//string for pid
NSMutableAttributedString* taskString = nil;
//string attributes
NSDictionary* attributes = nil;
//binary
Binary* binary = nil;
//init task string
taskString = [[NSMutableAttributedString alloc] initWithString:@""];
//grab binary from task
if(YES == [item isKindOfClass:[Task class]])
{
//grab
binary = ((Task*)item).binary;
}
//dylib
// ->just assign
else
{
//assign
binary = (Binary*)item;
}
//add name
[taskString appendAttributedString:[[NSMutableAttributedString alloc] initWithString:binary.name]];
//init color for pid
// ->light gray
attributes = [NSDictionary dictionaryWithObject:[NSColor lightGrayColor] forKey:NSForegroundColorAttributeName];
//search window
// ->only for tasks, since dylibs in search window are handled elsewhere ('loaded in')
if( (YES == isSearchWindow) &&
(YES == [item isKindOfClass:[Task class]]) )
{
//add pid
[taskString appendAttributedString:[[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@" (task: %@", ((Task*)item).pid] attributes:attributes]];
}
//normal window
// ->add encrypted/packed info...
else
{
//task
// ->add task's pid
if(YES == [item isKindOfClass:[Task class]])
{
//add pid
[taskString appendAttributedString:[[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@" (pid: %@", ((Task*)item).pid] attributes:attributes]];
}
//added encrypted or packed
if( (YES == binary.isEncrypted) ||
(YES == binary.isPacked) )
{
//init color for comma, etc
// ->light gray
attributes = [NSDictionary dictionaryWithObject:[NSColor lightGrayColor] forKey:NSForegroundColorAttributeName];
//tasks
//add comma string
if(YES == [item isKindOfClass:[Task class]])
{
//close
[taskString appendAttributedString:[[NSMutableAttributedString alloc] initWithString:@", " attributes:attributes]];
}
//dylibs
// ->open parents
else
{
//open
[taskString appendAttributedString:[[NSMutableAttributedString alloc] initWithString:@" (" attributes:attributes]];
}
//init color
// ->red
attributes = [NSDictionary dictionaryWithObject:[NSColor redColor] forKey:NSForegroundColorAttributeName];
//add 'encrypted'
if(YES == binary.isEncrypted)
{
//add
[taskString appendAttributedString:[[NSAttributedString alloc] initWithString:@"encrypted" attributes:attributes]];
}
//add 'packed'
// ->can't be both...and encryption takes precedence
else
{
//add
[taskString appendAttributedString:[[NSAttributedString alloc] initWithString:@"packed" attributes:attributes]];
}
//dylib, need to close string here
// ->normally it doesn't have anything after...
if(YES != [item isKindOfClass:[Task class]])
{
//init color for closing
attributes = [NSDictionary dictionaryWithObject:[NSColor lightGrayColor] forKey:NSForegroundColorAttributeName];
//close string
[taskString appendAttributedString:[[NSMutableAttributedString alloc] initWithString:@")" attributes:attributes]];
}
}//encrypted or packed
}
//task
// ->close string
if(YES == [item isKindOfClass:[Task class]])
{
//init color for closing
// ->light gray
attributes = [NSDictionary dictionaryWithObject:[NSColor lightGrayColor] forKey:NSForegroundColorAttributeName];
//close string
[taskString appendAttributedString:[[NSMutableAttributedString alloc] initWithString:@")" attributes:attributes]];
}
return taskString;
}
//build item + 'loaded in...' string for dylibs, files, etc in search window
NSAttributedString* initLoadedInString(id item)
{
//string for pid
NSMutableAttributedString* taskString = nil;
//string attributes
NSDictionary* attributes = nil;
//pid or 'loaded in' string
NSMutableString* loadedIn = nil;
//matching or host tasks
NSMutableArray* tasks = nil;
//init task string
taskString = [[NSMutableAttributedString alloc] initWithString:@""];
//get host tasks
// ->works with dylibs or files
tasks = [((AppDelegate*)[[NSApplication sharedApplication] delegate]).taskEnumerator loadedIn:item];
//dylibs/files
// ->add name
if( (YES == [item isKindOfClass:[Binary class]]) ||
(YES == [item isKindOfClass:[File class]]) )
{
//add name
[taskString appendAttributedString:[[NSMutableAttributedString alloc] initWithString:[item name]]];
}
//connections
// ->add endpoints
else
{
//set endpoints string
[taskString appendAttributedString:[[NSMutableAttributedString alloc] initWithString:[item endpoints]]];
}
//init color for 'loaded in...'
// ->light gray
attributes = [NSDictionary dictionaryWithObject:[NSColor lightGrayColor] forKey:NSForegroundColorAttributeName];
//add dylib indicator
//-> '(dylib, loaded in: ... '
if(YES == [item isKindOfClass:[Binary class]])
{
//init
loadedIn = [NSMutableString stringWithFormat:@" (dylib, loaded in:"];
}
//add file indicator
//-> '(file, loaded in: ... '
else if(YES == [item isKindOfClass:[File class]])
{
//init
loadedIn = [NSMutableString stringWithFormat:@" (file, loaded in:"];
}
//add connection indicator
//-> '(connection, in: ... '
else if(YES == [item isKindOfClass:[Connection class]])
{
//init
loadedIn = [NSMutableString stringWithFormat:@" (connection, in:"];
}
//add all tasks
for(Task* task in tasks)
{
//append name
[loadedIn appendFormat:@" %@,", task.binary.name];
}
//remove last ','
if(YES == [loadedIn hasSuffix:@","])
{
//remove
[loadedIn deleteCharactersInRange:NSMakeRange([loadedIn length]-1, 1)];
}
//terminate list/output
[loadedIn appendString:@")"];
//add 'loaded in...'
[taskString appendAttributedString:[[NSMutableAttributedString alloc] initWithString:loadedIn attributes:attributes]];
return taskString;
}
//create & customize Task view
NSTableCellView* createTaskView(NSTableView* tableView, id owner, Task* task)
{
//item cell
NSTableCellView* taskCell = nil;
//task's name frame
CGRect nameFrame = {0};
//string for pid
NSString* pidString = nil;
//sanity check
if(nil == task.binary)
{
@@ -402,40 +528,7 @@ NSTableCellView* createTaskView(NSTableView* tableView, id owner, Task* task)
taskCell.textField.textColor = [NSColor blackColor];
//set main text
// ->name
[taskCell.textField setStringValue:task.binary.name];
//get name frame
nameFrame = taskCell.textField.frame;
//adjust width to fit text
nameFrame.size.width = [taskCell.textField.stringValue sizeWithAttributes: @{NSFontAttributeName: taskCell.textField.font}].width + 5;
//disable autolayout for name
taskCell.textField.translatesAutoresizingMaskIntoConstraints = YES;
//update name frame
// ->should now be exact size of text
taskCell.textField.frame = nameFrame;
//init pid string
// ->search mode, show 'task,' to differential between files, etc
if(YES ==[owner isKindOfClass:[SearchWindowController class]])
{
//init
pidString = [NSString stringWithFormat:@"(task: %@)", task.pid];
}
//otherwise
// ->just set pid
else
{
//init
pidString = [NSString stringWithFormat:@"(%@)", task.pid];
}
//set pid
// ->immediately follows name
[((NSTextField*)[taskCell viewWithTag:TABLE_ROW_PID_LABEL]) setStringValue:pidString];
taskCell.textField.attributedStringValue = initBinaryString(task, [owner isKindOfClass:[SearchWindowController class]]);
//set path
[[taskCell viewWithTag:TABLE_ROW_SUB_TEXT_TAG] setStringValue:task.binary.path];
@@ -488,8 +581,8 @@ NSTableCellView* createDylibView(NSTableView* tableView, id owner, Binary* dylib
dylibCell.textField.textColor = [NSColor blackColor];
//set main text
// ->name
[dylibCell.textField setStringValue:dylib.name];
// ->final arg is flag indicating normal or search window
dylibCell.textField.attributedStringValue = initBinaryString(dylib, [owner isKindOfClass:[SearchWindowController class]]);
//set path
[[dylibCell viewWithTag:TABLE_ROW_SUB_TEXT_TAG] setStringValue:dylib.path];
+13 -1
View File
@@ -6,9 +6,9 @@
// Copyright (c) 2015 Objective-See. All rights reserved.
//
#import "MachO.h"
#import "ItemBase.h"
#import <Foundation/Foundation.h>
#import <CommonCrypto/CommonDigest.h>
@@ -37,6 +37,15 @@
//signing info
@property(nonatomic, retain)NSDictionary* signingInfo;
//macho parser
@property(nonatomic, retain)MachO* parser;
//encrypted flag
@property BOOL isEncrypted;
//packed flag
@property BOOL isPacked;
/* VIRUS TOTAL INFO */
//dictionary returned by VT
@@ -48,6 +57,9 @@
//init method
-(id)initWithParams:(NSDictionary*)params;
//machO parse
-(BOOL)parse;
//get task's name
// ->either from bundle or path's last component
-(NSString*)getName;
+49 -2
View File
@@ -6,7 +6,6 @@
// Copyright (c) 2015 Objective-See. All rights reserved.
//
#import "Binary.h"
#import "Consts.h"
#import "Utilities.h"
@@ -19,7 +18,10 @@
@synthesize icon;
@synthesize bundle;
@synthesize hashes;
@synthesize parser;
@synthesize vtInfo;
@synthesize isPacked;
@synthesize isEncrypted;
@synthesize signingInfo;
@synthesize isTaskBinary;
@@ -55,6 +57,52 @@ bail:
return self;
}
//machO parse
-(BOOL)parse
{
//flag
BOOL wasParsed = NO;
//sync
@synchronized(self)
{
//alloc parser
if(nil == parser)
{
//alloc macho parser iVar
parser = [[MachO alloc] init];
//parse
if(YES != [self.parser parse:self.path])
{
//unset parser
self.parser = nil;
//bail
goto bail;
}
}
//unset 'packed' flag for apple signed binaries
// ->as apple doesn't pack binaries, but packer algo has some false positives
if( (nil != [self.signingInfo objectForKey:KEY_SIGNING_IS_APPLE]) &&
(YES == [self.signingInfo[KEY_SIGNING_IS_APPLE] boolValue]) )
{
//unset
self.parser.binaryInfo[KEY_IS_PACKED] = NO;
}
}//sync
//happy
wasParsed = YES;
//bail
bail:
return wasParsed;
}
//get task's name
// ->either from bundle or path's last component
-(NSString*)getName
@@ -175,7 +223,6 @@ bail:
}
//format the signing info dictionary
-(NSString*)formatSigningInfo
{
+2 -2
View File
@@ -155,8 +155,8 @@
//2nd arg: permissions
// ->4 at front is setuid
//TODO: change b4 release
// ->make 4755 before deploy (for testing, 777 makes XCOde be able to del it during build!)
installArgs[1] = "4755";
// ->make 4755 before deploy (for testing, 777 makes Xcode be able to del it during build!)
installArgs[1] = "4777";
//3rd arg: XPC service
installArgs[2] = [xpcService UTF8String];
+13 -2
View File
@@ -6,13 +6,13 @@
// Copyright (c) 2015 Objective-See, LLC. All rights reserved.
//
#import "File.h"
#import "Task.h"
#import "Consts.h"
#import "Utilities.h"
#import "File.h"
#import "Connection.h"
#import "remoteTaskService.h"
#import "AppDelegate.h"
#import "remoteTaskService.h"
#import <mach-o/dyld_images.h>
#import <mach/mach_init.h>
@@ -434,8 +434,19 @@ bail:
for(Binary* newDylib in newDylibs)
{
//generate signing info
// ->do this before macho parsing!
[newDylib generatedSigningInfo];
//parse
if(YES == [newDylib parse])
{
//save encrypted flag
newDylib.isEncrypted = [newDylib.parser.binaryInfo[KEY_IS_ENCRYPTED] boolValue];
//save packed flag
newDylib.isPacked = [newDylib.parser.binaryInfo[KEY_IS_PACKED] boolValue];
}
//no need to reload if task is now longer current/selected
if(((AppDelegate*)[[NSApplication sharedApplication] delegate]).currentTask != self)
{
+12 -2
View File
@@ -97,7 +97,6 @@
// ->ensures existing task and their info are reused
for(NSNumber* key in newTasks.allKeys)
{
//get task
newTask = newTasks[key];
@@ -142,7 +141,7 @@
});
//now generate signing info
//now generate signing info/encryption check/packer check
// ->for (new) tasks
for(NSNumber* key in newTasks)
{
@@ -158,8 +157,19 @@
}
//generate signing info
// ->do this before macho parsing!
[newTask.binary generatedSigningInfo];
//parse
if(YES == [newTask.binary parse])
{
//save encrypted flag
newTask.binary.isEncrypted = [newTask.binary.parser.binaryInfo[KEY_IS_ENCRYPTED] boolValue];
//save packed flag
newTask.binary.isPacked = [newTask.binary.parser.binaryInfo[KEY_IS_PACKED] boolValue];
}
//reload task (row) in table
[((AppDelegate*)[[NSApplication sharedApplication] delegate]) reloadRow:newTask];
+42 -7
View File
@@ -8,8 +8,13 @@
/* Begin PBXBuildFile section */
1D21BC4F172AF43D009D1CFD /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D21BC4E172AF43D009D1CFD /* Cocoa.framework */; };
7D2A4C6C1BC789070029A284 /* Utilities.m in Sources */ = {isa = PBXBuildFile; fileRef = CDA81D4E1A95B492009790E2 /* Utilities.m */; };
7D2F567C1B81BEAB00C7D85E /* SearchWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D2F567B1B81BEAB00C7D85E /* SearchWindow.xib */; };
7D2F567F1B81BEB400C7D85E /* SearchWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D2F567E1B81BEB400C7D85E /* SearchWindowController.m */; };
7D73480F1BCB82C900CD7235 /* flaggedRed.png in Resources */ = {isa = PBXBuildFile; fileRef = 7D73480C1BCB82C900CD7235 /* flaggedRed.png */; };
7D7348101BCB82C900CD7235 /* flaggedRedBG.png in Resources */ = {isa = PBXBuildFile; fileRef = 7D73480D1BCB82C900CD7235 /* flaggedRedBG.png */; };
7D7348111BCB82C900CD7235 /* flaggedRedOver.png in Resources */ = {isa = PBXBuildFile; fileRef = 7D73480E1BCB82C900CD7235 /* flaggedRedOver.png */; };
7DA5CA0F1C7AA8CB00627DD7 /* MachO.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DA5CA0E1C7AA8CB00627DD7 /* MachO.m */; };
7DAA78091B903BF1004840B9 /* CustomTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DAA78081B903BF1004840B9 /* CustomTextField.m */; };
CD001B381AB903040089014A /* logo.png in Resources */ = {isa = PBXBuildFile; fileRef = CD001B351AB903040089014A /* logo.png */; };
CD001B391AB903040089014A /* logoApple.png in Resources */ = {isa = PBXBuildFile; fileRef = CD001B361AB903040089014A /* logoApple.png */; };
@@ -156,6 +161,11 @@
7D2F567B1B81BEAB00C7D85E /* SearchWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = SearchWindow.xib; path = UI/SearchWindow.xib; sourceTree = "<group>"; };
7D2F567D1B81BEB300C7D85E /* SearchWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SearchWindowController.h; sourceTree = "<group>"; };
7D2F567E1B81BEB400C7D85E /* SearchWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SearchWindowController.m; sourceTree = "<group>"; };
7D73480C1BCB82C900CD7235 /* flaggedRed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = flaggedRed.png; path = images/flaggedRed.png; sourceTree = SOURCE_ROOT; };
7D73480D1BCB82C900CD7235 /* flaggedRedBG.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = flaggedRedBG.png; path = images/flaggedRedBG.png; sourceTree = SOURCE_ROOT; };
7D73480E1BCB82C900CD7235 /* flaggedRedOver.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = flaggedRedOver.png; path = images/flaggedRedOver.png; sourceTree = SOURCE_ROOT; };
7DA5CA0D1C7AA8CB00627DD7 /* MachO.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MachO.h; path = ../MachO/MachOParser/MachO.h; sourceTree = "<group>"; };
7DA5CA0E1C7AA8CB00627DD7 /* MachO.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MachO.m; path = ../MachO/MachOParser/MachO.m; sourceTree = "<group>"; };
7DAA78071B903BF1004840B9 /* CustomTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomTextField.h; sourceTree = "<group>"; };
7DAA78081B903BF1004840B9 /* CustomTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomTextField.m; sourceTree = "<group>"; };
CD001B351AB903040089014A /* logo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = logo.png; path = images/logo.png; sourceTree = SOURCE_ROOT; };
@@ -331,6 +341,7 @@
1D21BC42172AF43D009D1CFD = {
isa = PBXGroup;
children = (
7DA5CA0C1C7AA8B900627DD7 /* MachO */,
7DAA78071B903BF1004840B9 /* CustomTextField.h */,
7DAA78081B903BF1004840B9 /* CustomTextField.m */,
7D2F567D1B81BEB300C7D85E /* SearchWindowController.h */,
@@ -432,9 +443,21 @@
name = "Supporting Files";
sourceTree = "<group>";
};
7DA5CA0C1C7AA8B900627DD7 /* MachO */ = {
isa = PBXGroup;
children = (
7DA5CA0D1C7AA8CB00627DD7 /* MachO.h */,
7DA5CA0E1C7AA8CB00627DD7 /* MachO.m */,
);
name = MachO;
sourceTree = "<group>";
};
CD6095501A8329FA00E091CD /* images */ = {
isa = PBXGroup;
children = (
7D73480C1BCB82C900CD7235 /* flaggedRed.png */,
7D73480D1BCB82C900CD7235 /* flaggedRedBG.png */,
7D73480E1BCB82C900CD7235 /* flaggedRedOver.png */,
CD74A06B1B7DA71200A8AAD3 /* flaggedBG.png */,
CD74A06C1B7DA71200A8AAD3 /* flaggedOver.png */,
CDFCA3551B7940970075492D /* flagged.png */,
@@ -640,7 +663,7 @@
1D21BC43172AF43D009D1CFD /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0620;
LastUpgradeCheck = 0700;
ORGANIZATIONNAME = "Lucas Derraugh";
TargetAttributes = {
1D21BC4A172AF43D009D1CFD = {
@@ -683,6 +706,7 @@
CD6AFB861B4BABB200D42C34 /* refreshIconBG.png in Resources */,
CDEE76FF1B3FD4B000763826 /* saveIconBG.png in Resources */,
CDA81D5B1A95B4B4009790E2 /* InfoPlist.strings in Resources */,
7D7348111BCB82C900CD7235 /* flaggedRedOver.png in Resources */,
CD4D53CA1B20296E00008030 /* unknown.png in Resources */,
CDEE77081B41220300763826 /* searchOver.png in Resources */,
CD74A07E1B81B5D400A8AAD3 /* FlaggedItems.xib in Resources */,
@@ -728,6 +752,7 @@
CD3F4D161AF89066002A2647 /* TreeView.xib in Resources */,
CD0219501AD34D8B005148A2 /* PrefsWindow.xib in Resources */,
CDFCA3561B7940970075492D /* flagged.png in Resources */,
7D7348101BCB82C900CD7235 /* flaggedRedBG.png in Resources */,
CDA81D6C1A95B4E9009790E2 /* showBG.png in Resources */,
CD3F4CFF1AF72BC4002A2647 /* TaskInfoWindow.xib in Resources */,
CDEE77001B3FD4B000763826 /* saveIconOver.png in Resources */,
@@ -747,6 +772,7 @@
CDA81DCA1A9960A3009790E2 /* infoBG.png in Resources */,
CDF08CD11AC4C6E8009B3423 /* settings.png in Resources */,
CDA81DD31A9970A0009790E2 /* signed.png in Resources */,
7D73480F1BCB82C900CD7235 /* flaggedRed.png in Resources */,
CDEE77071B41220300763826 /* searchBG.png in Resources */,
CDA81E661AA020FD009790E2 /* FileInfoWindow.xib in Resources */,
);
@@ -768,6 +794,7 @@
files = (
CD3F4CE81AF5CF68002A2647 /* TaskEnumerator.m in Sources */,
CD4D54221B2CE6F200008030 /* NSMutableArray+QueueAdditions.m in Sources */,
7DA5CA0F1C7AA8CB00627DD7 /* MachO.m in Sources */,
CD74A07B1B7F170B00A8AAD3 /* FlaggedItems.m in Sources */,
CDA5F6C41B16E20E003CE340 /* RequestRootWindowController.m in Sources */,
CDD2483B1AF5CC4D00232422 /* Task.m in Sources */,
@@ -808,6 +835,7 @@
files = (
CDA5F6B61B16D805003CE340 /* main.m in Sources */,
CDA5F6B41B16D805003CE340 /* remoteTaskService.m in Sources */,
7D2A4C6C1BC789070029A284 /* Utilities.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -853,7 +881,9 @@
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "Developer ID Application: Objective-See, LLC (VBG97UB4TA)";
COPY_PHASE_STRIP = NO;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
@@ -886,6 +916,7 @@
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "Developer ID Application: Objective-See, LLC (VBG97UB4TA)";
COPY_PHASE_STRIP = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
GCC_C_LANGUAGE_STANDARD = gnu99;
@@ -904,12 +935,13 @@
1D21BC69172AF43D009D1CFD /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "Developer ID Application";
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Mac Developer";
CODE_SIGN_IDENTITY = "Developer ID Application: Objective-See, LLC (VBG97UB4TA)";
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application: Objective-See, LLC (VBG97UB4TA)";
COMBINE_HIDPI_IMAGES = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "TaskExplorer-Prefix.pch";
INFOPLIST_FILE = "TaskExplorer-Info.plist";
PRODUCT_BUNDLE_IDENTIFIER = "com.objective-see.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = TaskExplorer;
PROVISIONING_PROFILE = "";
WRAPPER_EXTENSION = app;
@@ -919,12 +951,13 @@
1D21BC6A172AF43D009D1CFD /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "Developer ID Application";
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Mac Developer";
CODE_SIGN_IDENTITY = "Developer ID Application: Objective-See, LLC (VBG97UB4TA)";
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application: Objective-See, LLC (VBG97UB4TA)";
COMBINE_HIDPI_IMAGES = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "TaskExplorer-Prefix.pch";
INFOPLIST_FILE = "TaskExplorer-Info.plist";
PRODUCT_BUNDLE_IDENTIFIER = "com.objective-see.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = TaskExplorer;
PROVISIONING_PROFILE = "";
WRAPPER_EXTENSION = app;
@@ -939,7 +972,7 @@
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CODE_SIGN_IDENTITY = "Developer ID Application";
CODE_SIGN_IDENTITY = "Developer ID Application: Objective-See, LLC (VBG97UB4TA)";
COMBINE_HIDPI_IMAGES = YES;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
@@ -955,6 +988,7 @@
INFOPLIST_FILE = remoteTaskService/Info.plist;
MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = YES;
PRODUCT_BUNDLE_IDENTIFIER = "com.objective-see.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
};
@@ -968,7 +1002,7 @@
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CODE_SIGN_IDENTITY = "Developer ID Application";
CODE_SIGN_IDENTITY = "Developer ID Application: Objective-See, LLC (VBG97UB4TA)";
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = NO;
ENABLE_NS_ASSERTIONS = NO;
@@ -981,6 +1015,7 @@
INFOPLIST_FILE = remoteTaskService/Info.plist;
MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = NO;
PRODUCT_BUNDLE_IDENTIFIER = "com.objective-see.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
};
@@ -3,22 +3,6 @@
type = "1"
version = "2.0">
<Breakpoints>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "ItemView.m"
timestampString = "462956417.143953"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "292"
endingLineNumber = "292"
landmarkName = "createLoadedItemView()"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
@@ -35,22 +19,6 @@
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "SearchWindowController.m"
timestampString = "462871859.211461"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "192"
endingLineNumber = "192"
landmarkName = "-waitTillPau"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
@@ -58,31 +26,15 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "VirusTotal.m"
timestampString = "462084588.682321"
timestampString = "466326232.812128"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "385"
endingLineNumber = "385"
startingLineNumber = "238"
endingLineNumber = "238"
landmarkName = "-getInfoForItem:scanID:"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "AppDelegate.m"
timestampString = "462958083.434603"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "1545"
endingLineNumber = "1545"
landmarkName = "-selectBottomPaneContent:"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
@@ -90,47 +42,15 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Task.m"
timestampString = "462090370.850888"
timestampString = "466317911.852232"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "400"
endingLineNumber = "400"
landmarkName = "-enumerateDylibs:allDylibs:"
startingLineNumber = "433"
endingLineNumber = "433"
landmarkName = "-enumerateDylibs:"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Task.m"
timestampString = "462089496.268699"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "332"
endingLineNumber = "332"
landmarkName = "-enumerateDylibs:allDylibs:"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Exception.m"
timestampString = "462091293.990081"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "118"
endingLineNumber = "118"
landmarkName = "signalHandler()"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
@@ -138,12 +58,12 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "AppDelegate.m"
timestampString = "462958083.434603"
timestampString = "466327590.310649"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "218"
endingLineNumber = "218"
landmarkName = "-registerKeypressHandler"
startingLineNumber = "192"
endingLineNumber = "192"
landmarkName = "-applicationDidFinishLaunching:"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
@@ -154,11 +74,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Items/File.m"
timestampString = "462700393.667462"
timestampString = "466317911.852232"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "166"
endingLineNumber = "166"
startingLineNumber = "167"
endingLineNumber = "167"
landmarkName = "-toJSON"
landmarkType = "5">
</BreakpointContent>
@@ -170,11 +90,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Items/Connection.m"
timestampString = "462786540.058618"
timestampString = "466048200.98878"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "115"
endingLineNumber = "115"
startingLineNumber = "117"
endingLineNumber = "117"
landmarkName = "-toJSON"
landmarkType = "5">
</BreakpointContent>
@@ -185,13 +105,13 @@
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "RequestRootWindowController.m"
timestampString = "462783965.798309"
filePath = "Items/File.m"
timestampString = "466319352.039055"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "134"
endingLineNumber = "134"
landmarkName = "-authenticate:"
startingLineNumber = "76"
endingLineNumber = "76"
landmarkName = "-setFileType"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
@@ -201,13 +121,13 @@
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Filter.m"
timestampString = "462957835.231287"
filePath = "AppDelegate.m"
timestampString = "466327590.310649"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "213"
endingLineNumber = "213"
landmarkName = "-filterConnections:items:results:"
startingLineNumber = "653"
endingLineNumber = "653"
landmarkName = "-reloadBottomPane:itemView:"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
@@ -217,14 +137,30 @@
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "AppDelegate.m"
timestampString = "462958621.25846"
filePath = "Exception.m"
timestampString = "477800890.177901"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "1507"
endingLineNumber = "1507"
landmarkName = "-selectBottomPaneContent:"
landmarkType = "5">
startingLineNumber = "66"
endingLineNumber = "66"
landmarkName = "exceptionHandler()"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Exception.m"
timestampString = "477800907.874623"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "109"
endingLineNumber = "109"
landmarkName = "signalHandler()"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
</Breakpoints>
+1 -2
View File
@@ -681,7 +681,7 @@ bail:
//only no for leafs
// ->items w/o kids
if( (nil != item) &&
(0 == [[item children] count]) )
(0 == [[item children] count]) )
{
return NO;
}
@@ -693,7 +693,6 @@ bail:
}
//return child
-(id)outlineView:(NSOutlineView *)outlineView child:(NSInteger)index ofItem:(id)item
{
+5 -16
View File
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="7706" systemVersion="14E46" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="9532" systemVersion="15D21" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<dependencies>
<deployment identifier="macosx"/>
<development version="5000" identifier="xcode"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="7706"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9532"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="TaskTableController">
@@ -65,7 +65,7 @@
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="unknown" id="2ru-B9-6b1"/>
</imageView>
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" ambiguous="YES" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ryD-lC-8IR">
<rect key="frame" x="46" y="20" width="225" height="19"/>
<rect key="frame" x="46" y="20" width="1103" height="19"/>
<textFieldCell key="cell" lineBreakMode="truncatingTail" selectable="YES" allowsUndo="NO" sendsActionOnEndEditing="YES" title="Task Name" id="fEY-SM-ufc">
<font key="font" size="13" name="Menlo-Regular"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@@ -155,22 +155,9 @@
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" ambiguous="YES" misplaced="YES" tag="102" translatesAutoresizingMaskIntoConstraints="NO" id="Nky-Qb-S7Z">
<rect key="frame" x="295" y="20" width="79" height="18"/>
<constraints>
<constraint firstAttribute="height" constant="18" id="ecq-WO-Xtq"/>
<constraint firstAttribute="width" constant="75" id="qxm-8e-ma2"/>
</constraints>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="pid" id="BVj-TR-eR2">
<font key="font" size="13" name="Menlo-Regular"/>
<color key="textColor" white="0.49295236009999999" alpha="0.84999999999999998" colorSpace="calibratedWhite"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
</subviews>
<constraints>
<constraint firstItem="cG6-PF-La2" firstAttribute="top" secondItem="sdY-t5-tbW" secondAttribute="top" constant="7" id="5Ro-94-5jo"/>
<constraint firstItem="Nky-Qb-S7Z" firstAttribute="leading" secondItem="ryD-lC-8IR" secondAttribute="trailing" constant="8" id="7Og-f1-rQH"/>
<constraint firstItem="cG6-PF-La2" firstAttribute="leading" secondItem="sdY-t5-tbW" secondAttribute="leading" constant="4" id="7ms-dD-as0"/>
<constraint firstItem="MqO-G8-w9L" firstAttribute="leading" secondItem="aPz-9H-xyy" secondAttribute="trailing" constant="11" id="AYq-NQ-9ty"/>
<constraint firstItem="Y4J-KD-8iy" firstAttribute="leading" secondItem="eBe-7K-OiH" secondAttribute="trailing" constant="22" id="AeK-oE-FOW"/>
@@ -179,7 +166,9 @@
<constraint firstItem="gpF-bM-EQR" firstAttribute="leading" secondItem="MqO-G8-w9L" secondAttribute="trailing" constant="17" id="YUh-1b-zZn"/>
<constraint firstAttribute="trailing" secondItem="gpF-bM-EQR" secondAttribute="trailing" constant="20" id="ZwL-8K-oUV"/>
<constraint firstItem="eBe-7K-OiH" firstAttribute="leading" secondItem="Dtg-ac-EVZ" secondAttribute="trailing" constant="22" id="llC-i6-MPv"/>
<constraint firstItem="ryD-lC-8IR" firstAttribute="leading" secondItem="M2y-fe-Zb7" secondAttribute="trailing" constant="4" id="pFh-5j-5D1"/>
<constraint firstAttribute="trailing" secondItem="Y4J-KD-8iy" secondAttribute="trailing" constant="20" id="qVu-zJ-0T1"/>
<constraint firstItem="Dtg-ac-EVZ" firstAttribute="leading" secondItem="ryD-lC-8IR" secondAttribute="trailing" constant="8" id="sdA-ud-S6g"/>
</constraints>
<connections>
<outlet property="imageView" destination="cG6-PF-La2" id="v1M-Zn-U5X"/>
+15 -48
View File
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="7706" systemVersion="14F27" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="9532" systemVersion="15D21" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<dependencies>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="7706"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9532"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="SearchWindowController">
@@ -21,7 +21,7 @@
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
<rect key="contentRect" x="95" y="481" width="1304" height="425"/>
<rect key="screenRect" x="0.0" y="0.0" width="1920" height="1080"/>
<rect key="screenRect" x="0.0" y="0.0" width="1920" height="1057"/>
<value key="minSize" type="size" width="800" height="250"/>
<view key="contentView" id="se5-gp-TjO">
<rect key="frame" x="0.0" y="3" width="1304" height="425"/>
@@ -29,12 +29,12 @@
<subviews>
<scrollView misplaced="YES" autohidesScrollers="YES" horizontalLineScroll="42" horizontalPageScroll="10" verticalLineScroll="42" verticalPageScroll="10" usesPredominantAxisScrolling="NO" horizontalScrollElasticity="none" verticalScrollElasticity="none" translatesAutoresizingMaskIntoConstraints="NO" id="8GA-gp-lIa">
<rect key="frame" x="-1" y="31" width="1306" height="324"/>
<clipView key="contentView" misplaced="YES" drawsBackground="NO" id="4oI-qg-e78">
<rect key="frame" x="1" y="1" width="1204" height="437"/>
<clipView key="contentView" drawsBackground="NO" id="4oI-qg-e78">
<rect key="frame" x="1" y="1" width="1304" height="322"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" alternatingRowBackgroundColors="YES" columnReordering="NO" columnResizing="NO" multipleSelection="NO" emptySelection="NO" autosaveColumns="NO" typeSelect="NO" rowHeight="40" rowSizeStyle="automatic" viewBased="YES" id="w0h-ih-Ej7">
<rect key="frame" x="0.0" y="0.0" width="1304" height="0.0"/>
<rect key="frame" x="0.0" y="0.0" width="1304" height="322"/>
<autoresizingMask key="autoresizingMask"/>
<size key="intercellSpacing" width="3" height="2"/>
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
@@ -74,7 +74,7 @@
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="unknown" id="IhW-G7-O7C"/>
</imageView>
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" ambiguous="YES" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="n1s-T9-NPU">
<rect key="frame" x="46" y="20" width="225" height="19"/>
<rect key="frame" x="46" y="20" width="1103" height="19"/>
<textFieldCell key="cell" lineBreakMode="truncatingTail" selectable="YES" allowsUndo="NO" sendsActionOnEndEditing="YES" title="Name" id="5KE-Dr-geL">
<font key="font" size="13" name="Menlo-Regular"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@@ -164,31 +164,20 @@
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" ambiguous="YES" misplaced="YES" tag="102" translatesAutoresizingMaskIntoConstraints="NO" id="SQO-cM-V2f">
<rect key="frame" x="264" y="20" width="868" height="18"/>
<constraints>
<constraint firstAttribute="height" constant="18" id="gMv-w4-pQh"/>
</constraints>
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="pid/loaded in" id="Lm4-16-Zlv">
<font key="font" size="13" name="Menlo-Regular"/>
<color key="textColor" white="0.49295236009999999" alpha="0.84999999999999998" colorSpace="calibratedWhite"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
</subviews>
<constraints>
<constraint firstItem="SQO-cM-V2f" firstAttribute="leading" secondItem="n1s-T9-NPU" secondAttribute="trailing" constant="8" id="GvF-LW-0UJ"/>
<constraint firstItem="oNi-kw-tm3" firstAttribute="leading" secondItem="n1s-T9-NPU" secondAttribute="trailing" constant="8" id="Ia9-Xe-3UR"/>
<constraint firstAttribute="trailing" secondItem="gCS-2D-Ds7" secondAttribute="trailing" constant="20" id="KJ7-EP-HUM"/>
<constraint firstItem="p6d-mB-jY7" firstAttribute="leading" secondItem="oNi-kw-tm3" secondAttribute="trailing" constant="22" id="MOG-Th-2rD"/>
<constraint firstAttribute="trailing" secondItem="bfy-Vt-ur5" secondAttribute="trailing" constant="20" id="OFd-VX-lUs"/>
<constraint firstItem="KGc-fT-NHo" firstAttribute="leading" secondItem="sUk-Ix-Ica" secondAttribute="leading" constant="4" id="OG0-6W-uXp"/>
<constraint firstItem="n1s-T9-NPU" firstAttribute="leading" secondItem="lke-4V-7Zy" secondAttribute="trailing" constant="4" id="Q4u-Nb-LqF"/>
<constraint firstItem="pYR-xm-B9a" firstAttribute="leading" secondItem="Gb3-Kp-uki" secondAttribute="trailing" constant="11" id="Vou-zx-GCc"/>
<constraint firstItem="NrX-dv-Ndg" firstAttribute="leading" secondItem="KGc-fT-NHo" secondAttribute="trailing" constant="2" id="b3y-V0-Dqs"/>
<constraint firstItem="gCS-2D-Ds7" firstAttribute="leading" secondItem="p6d-mB-jY7" secondAttribute="trailing" constant="22" id="ccN-Sf-2o3"/>
<constraint firstItem="bfy-Vt-ur5" firstAttribute="leading" secondItem="pYR-xm-B9a" secondAttribute="trailing" constant="17" id="gWw-co-H34"/>
<constraint firstItem="KGc-fT-NHo" firstAttribute="top" secondItem="sUk-Ix-Ica" secondAttribute="top" constant="7" id="ixB-HB-XNH"/>
<constraint firstItem="Gb3-Kp-uki" firstAttribute="leading" secondItem="NrX-dv-Ndg" secondAttribute="trailing" constant="8" id="jOh-lG-rMG"/>
<constraint firstAttribute="trailing" secondItem="SQO-cM-V2f" secondAttribute="trailing" constant="171" id="yB9-Yn-my4"/>
</constraints>
<connections>
<outlet property="imageView" destination="KGc-fT-NHo" id="fjH-oS-Ttv"/>
@@ -208,7 +197,7 @@
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="NSActionTemplate" id="6gv-k4-mdi"/>
</imageView>
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" ambiguous="YES" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ugh-bk-muU">
<rect key="frame" x="31" y="20" width="225" height="19"/>
<rect key="frame" x="31" y="20" width="1185" height="19"/>
<textFieldCell key="cell" lineBreakMode="truncatingTail" selectable="YES" allowsUndo="NO" sendsActionOnEndEditing="YES" title="Name" id="fgN-p7-FWL">
<font key="font" size="13" name="Menlo-Regular"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@@ -275,28 +264,17 @@
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" ambiguous="YES" misplaced="YES" tag="102" translatesAutoresizingMaskIntoConstraints="NO" id="fnp-rh-Inz">
<rect key="frame" x="264" y="20" width="868" height="18"/>
<constraints>
<constraint firstAttribute="height" constant="18" id="uzP-Cn-LZW"/>
</constraints>
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="loaded in" id="JT7-PU-YPp">
<font key="font" size="13" name="Menlo-Regular"/>
<color key="textColor" white="0.49295236009999999" alpha="0.84999999999999998" colorSpace="calibratedWhite"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
</subviews>
<constraints>
<constraint firstItem="IIS-fl-0Bl" firstAttribute="top" secondItem="62p-Yk-Jl3" secondAttribute="top" constant="7" id="8c5-Z7-Olg"/>
<constraint firstItem="fnp-rh-Inz" firstAttribute="leading" secondItem="ugh-bk-muU" secondAttribute="trailing" constant="8" id="Bp4-Tu-NaQ"/>
<constraint firstAttribute="trailing" secondItem="Xsx-qZ-Zpb" secondAttribute="trailing" constant="20" id="Nyw-Bs-k6x"/>
<constraint firstItem="vr7-eK-3Bt" firstAttribute="leading" secondItem="UgY-KO-I4K" secondAttribute="trailing" constant="22" id="PkR-9T-0we"/>
<constraint firstAttribute="trailing" secondItem="fnp-rh-Inz" secondAttribute="trailing" constant="171" id="V3B-Vz-Pzp"/>
<constraint firstItem="5kn-qs-yNV" firstAttribute="leading" secondItem="4c4-WA-4rL" secondAttribute="trailing" constant="8" id="VCf-sQ-iGi"/>
<constraint firstItem="4c4-WA-4rL" firstAttribute="leading" secondItem="IIS-fl-0Bl" secondAttribute="trailing" constant="2" id="bEr-bp-efR"/>
<constraint firstItem="IIS-fl-0Bl" firstAttribute="leading" secondItem="62p-Yk-Jl3" secondAttribute="leading" constant="4" id="dM0-v7-57a"/>
<constraint firstItem="Xsx-qZ-Zpb" firstAttribute="leading" secondItem="5kn-qs-yNV" secondAttribute="trailing" constant="17" id="icg-9v-1Px"/>
<constraint firstItem="UgY-KO-I4K" firstAttribute="leading" secondItem="ugh-bk-muU" secondAttribute="trailing" constant="12" id="jwQ-Na-aA8"/>
<constraint firstItem="ugh-bk-muU" firstAttribute="leading" secondItem="IIS-fl-0Bl" secondAttribute="trailing" constant="7" id="l10-rm-THw"/>
<constraint firstAttribute="trailing" secondItem="vr7-eK-3Bt" secondAttribute="trailing" constant="20" id="sgF-8e-pVL"/>
</constraints>
<connections>
@@ -325,7 +303,7 @@
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" ambiguous="YES" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="UR5-ag-OPP">
<rect key="frame" x="31" y="20" width="229" height="19"/>
<rect key="frame" x="32" y="20" width="1227" height="19"/>
<textFieldCell key="cell" lineBreakMode="truncatingTail" selectable="YES" allowsUndo="NO" sendsActionOnEndEditing="YES" title="Network Info" id="WqN-YF-KzO">
<font key="font" size="13" name="Menlo-Regular"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@@ -358,23 +336,12 @@
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" ambiguous="YES" misplaced="YES" tag="102" translatesAutoresizingMaskIntoConstraints="NO" id="3Oy-bR-CEo">
<rect key="frame" x="264" y="20" width="868" height="18"/>
<constraints>
<constraint firstAttribute="height" constant="18" id="E10-59-IUU"/>
</constraints>
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="loaded in" id="Ip4-Xq-eKJ">
<font key="font" size="13" name="Menlo-Regular"/>
<color key="textColor" white="0.49295236009999999" alpha="0.84999999999999998" colorSpace="calibratedWhite"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
</subviews>
<constraints>
<constraint firstItem="kT3-0V-Fwt" firstAttribute="leading" secondItem="71C-gs-Mno" secondAttribute="trailing" constant="8" id="5IU-du-URu"/>
<constraint firstItem="3Oy-bR-CEo" firstAttribute="leading" secondItem="UR5-ag-OPP" secondAttribute="trailing" constant="8" id="F12-0T-6Lr"/>
<constraint firstItem="UR5-ag-OPP" firstAttribute="leading" secondItem="71C-gs-Mno" secondAttribute="trailing" constant="7" id="BOH-0q-aGo"/>
<constraint firstAttribute="trailing" secondItem="k5T-Yc-we2" secondAttribute="trailing" constant="19" id="JJb-oy-J0e"/>
<constraint firstAttribute="trailing" secondItem="3Oy-bR-CEo" secondAttribute="trailing" constant="171" id="S5V-cL-cnq"/>
<constraint firstItem="b9d-lc-cIV" firstAttribute="leading" secondItem="UR5-ag-OPP" secondAttribute="trailing" constant="8" id="MXO-Dc-Jfc"/>
<constraint firstItem="k5T-Yc-we2" firstAttribute="leading" secondItem="kT3-0V-Fwt" secondAttribute="trailing" constant="8" id="dOy-kF-uEl"/>
<constraint firstAttribute="trailing" secondItem="b9d-lc-cIV" secondAttribute="trailing" constant="20" id="gmk-OW-20W"/>
<constraint firstItem="71C-gs-Mno" firstAttribute="leading" secondItem="waX-25-DeA" secondAttribute="leading" constant="5" id="h2R-BV-oKU"/>
+6 -17
View File
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="7706" systemVersion="14E46" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="9532" systemVersion="15D21" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<dependencies>
<deployment identifier="macosx"/>
<development version="5000" identifier="xcode"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="7706"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9532"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="TaskTableController">
@@ -65,7 +65,7 @@
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="unknown" id="me9-Mx-iYQ"/>
</imageView>
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" ambiguous="YES" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="1Zt-oA-mKx">
<rect key="frame" x="46" y="20" width="225" height="19"/>
<rect key="frame" x="46" y="20" width="1103" height="19"/>
<textFieldCell key="cell" lineBreakMode="truncatingTail" selectable="YES" allowsUndo="NO" sendsActionOnEndEditing="YES" title="Task Name" id="TN7-i0-YKD">
<font key="font" size="13" name="Menlo-Regular"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@@ -155,29 +155,18 @@
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" ambiguous="YES" misplaced="YES" tag="102" translatesAutoresizingMaskIntoConstraints="NO" id="Gwh-Pi-Cr8">
<rect key="frame" x="295" y="20" width="79" height="18"/>
<constraints>
<constraint firstAttribute="width" constant="75" id="MYG-IH-nwD"/>
<constraint firstAttribute="height" constant="18" id="TNF-eC-2mT"/>
</constraints>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="pid" id="vq2-uQ-UKY">
<font key="font" size="13" name="Menlo-Regular"/>
<color key="textColor" white="0.49295236009999999" alpha="0.84999999999999998" colorSpace="calibratedWhite"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
</subviews>
<constraints>
<constraint firstAttribute="trailing" secondItem="TmP-0K-QL5" secondAttribute="trailing" constant="20" id="0bt-Nx-vbM"/>
<constraint firstItem="nqZ-Aq-OkZ" firstAttribute="leading" secondItem="GDK-Bv-5jW" secondAttribute="trailing" constant="8" id="5yT-0e-n5j"/>
<constraint firstItem="Bla-ft-Ebs" firstAttribute="leading" secondItem="1Zt-oA-mKx" secondAttribute="trailing" constant="8" id="7FQ-NJ-md1"/>
<constraint firstItem="2ct-ht-5c2" firstAttribute="leading" secondItem="mDy-ep-li0" secondAttribute="trailing" constant="22" id="9gD-bt-2Vv"/>
<constraint firstItem="GDK-Bv-5jW" firstAttribute="leading" secondItem="0MH-nf-7QQ" secondAttribute="trailing" constant="2" id="HOi-bL-Int"/>
<constraint firstItem="mDy-ep-li0" firstAttribute="leading" secondItem="Bla-ft-Ebs" secondAttribute="trailing" constant="22" id="ROe-3J-TzR"/>
<constraint firstItem="Gwh-Pi-Cr8" firstAttribute="leading" secondItem="1Zt-oA-mKx" secondAttribute="trailing" constant="8" id="g0l-EE-VzB"/>
<constraint firstItem="VXc-BM-7cb" firstAttribute="leading" secondItem="nqZ-Aq-OkZ" secondAttribute="trailing" constant="11" id="jvP-fF-CXE"/>
<constraint firstAttribute="trailing" secondItem="2ct-ht-5c2" secondAttribute="trailing" constant="20" id="mnd-fE-dNh"/>
<constraint firstItem="TmP-0K-QL5" firstAttribute="leading" secondItem="VXc-BM-7cb" secondAttribute="trailing" constant="17" id="r5M-1N-uEu"/>
<constraint firstItem="1Zt-oA-mKx" firstAttribute="leading" secondItem="Cgb-ea-yYy" secondAttribute="trailing" constant="4" id="tun-lc-XyP"/>
<constraint firstItem="0MH-nf-7QQ" firstAttribute="top" secondItem="cj0-rp-Uha" secondAttribute="top" constant="8" id="x2F-4g-SxS"/>
<constraint firstItem="0MH-nf-7QQ" firstAttribute="leading" secondItem="cj0-rp-Uha" secondAttribute="leading" constant="4" id="x6f-e1-y92"/>
</constraints>
@@ -198,7 +187,7 @@
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
</clipView>
<scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" controlSize="mini" horizontal="YES" id="7QY-ke-KIc">
<rect key="frame" x="1" y="109.73348331451416" width="220" height="16"/>
<rect key="frame" x="1" y="109" width="220" height="16"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
<scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" controlSize="mini" horizontal="NO" id="ifK-Bg-0Ke">
+1 -1
View File
@@ -97,7 +97,7 @@
if( (nil != self.binary.vtInfo) &&
(0 != [self.binary.vtInfo[VT_RESULTS_POSITIVES] unsignedIntegerValue]) )
{
//set color (light red)
//set color
color = [NSColor redColor];
}
//non-flagged files
+5 -5
View File
@@ -6,14 +6,13 @@
// Copyright (c) 2015 Objective-See, LLC. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "remoteTaskService.h"
#import "serviceInterface.h"
#import "remoteTaskService.h"
#import <syslog.h>
#import <libproc.h>
#import <sys/proc_info.h>
#import <Foundation/Foundation.h>
//interface for 'extension' to NSXPCConnection
// ->allows us to access the 'private' auditToken iVar
@@ -39,8 +38,7 @@
//function def
OSStatus SecTaskValidateForRequirement(SecTaskRef task, CFStringRef requirement);
//TODO: CHANGE B4 RELEASE!!
//-> for testing: @"Mac Developer: patrick wardle (5SKKU32KLJ)"
//signing auth
#define SIGNING_AUTH @"Developer ID Application: Objective-See, LLC (VBG97UB4TA)"
//skeleton interface
@@ -103,6 +101,8 @@ bail:
@end
//TODO: add exception handling!!!!
int main(int argc, const char *argv[])
{
//make really r00t
+16 -4
View File
@@ -354,17 +354,29 @@ bail:
dylibs = [NSMutableArray array];
//vmmap can't directly handle 32bit procs
// ->so exec via 'arch -i386 vmmap <32bit pid>' ...though El Capitan doesn't have i386 version :/
// ->so either exec 'vmmap32' or on older OSs, exec via 'arch -i386 vmmap <32bit pid>'
if(YES == Is32Bit(pid.unsignedIntValue))
{
//exec 'file' to get file type
results = [[NSString alloc] initWithData:execTask(ARCH, @[@"-i386", VMMAP, [pid stringValue]]) encoding:NSUTF8StringEncoding];
//when system has 32bit version of vmmap ('vmmap32')
// ->use that
if(YES == [[NSFileManager defaultManager] fileExistsAtPath:VMMAP_32])
{
//exec vmmap32
results = [[NSString alloc] initWithData:execTask(VMMAP_32, @[@"-w", [pid stringValue]]) encoding:NSUTF8StringEncoding];
}
//otherwise
// ->assume vmmap is 'fat', and exec 32bit version (pre El Capitan)
else
{
//exec 'file' to get file type
results = [[NSString alloc] initWithData:execTask(ARCH, @[@"-i386", VMMAP, [pid stringValue]]) encoding:NSUTF8StringEncoding];
}
}
//for 64bit procs
// ->just exec vmmap directly
else
{
//exec 'file' to get file type
//exec vmmap
results = [[NSString alloc] initWithData:execTask(VMMAP, @[@"-w", [pid stringValue]]) encoding:NSUTF8StringEncoding];
}