From 309a507a0e950b6453a70270abb0e59fc59c9d48 Mon Sep 17 00:00:00 2001 From: Patrick Wardle Date: Wed, 2 Sep 2015 21:47:23 -1000 Subject: [PATCH] improved filtering/searching of network connections to include family/protocol/state added network connections to global search --- AppDelegate.m | 19 +-- Filter.m | 43 ++++++- ItemView.m | 78 ++++++++++-- SearchWindowController.m | 55 +++++++- TaskEnumerator.m | 36 +++++- .../xcshareddata/TaskExplorer.xccheckout | 4 +- .../UserInterfaceState.xcuserstate | Bin 64941 -> 66021 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 120 +++++++----------- UI/SearchWindow.xib | 21 ++- 9 files changed, 265 insertions(+), 111 deletions(-) diff --git a/AppDelegate.m b/AppDelegate.m index 70fc2a5..8bf30dc 100755 --- a/AppDelegate.m +++ b/AppDelegate.m @@ -39,6 +39,10 @@ //TODO: remove task, remove from taskEnum's global list for executables, and dylibs, etc //TODO: also refresh!.... +//TODO: search include network (and improved filtering to include state/proto/type) - DONE! + +//TODO: check all searches that use NSNotFound also check for nil (other != NSNotFound will be true for nil!!) + @implementation AppDelegate @@ -227,18 +231,12 @@ return; } -//invoked for any (and only) key-down events +//invoked for any (but only) key-down events -(NSEvent*)handleKeypress:(NSEvent*)event { //flag indicating event was handled BOOL wasHandled = NO; - //refresh (cmd+r) - //save (cmd+s) - //search (cmd+f) - //close window (cmd+w) - //info for selected task (cmd+i) - //only care about 'cmd' + something if(NSCommandKeyMask != (event.modifierFlags & NSCommandKeyMask)) { @@ -246,9 +244,12 @@ goto bail; } - NSLog(@"key press: %x", [event keyCode]); - //handle key-code + // refresh (cmd+r) + // save (cmd+s) + // search (cmd+f) + // close window (cmd+w) + // info for selected task (cmd+i) switch ([event keyCode]) { //'r' (refresh) diff --git a/Filter.m b/Filter.m index 918f8ce..625e653 100644 --- a/Filter.m +++ b/Filter.m @@ -12,9 +12,6 @@ #import "ItemBase.h" #import "Connection.h" -//file filter keywords -//NSString * const FILE_FILTERS[] = {@"#apple", @"#nonapple", @"#signed", @"#unsigned", @"#flagged"}; - //binary filter keywords NSString * const BINARY_KEYWORDS[] = {@"#apple", @"#nonapple", @"#signed", @"#unsigned", @"#flagged"}; @@ -210,7 +207,6 @@ NSString * const BINARY_KEYWORDS[] = {@"#apple", @"#nonapple", @"#signed", @"#un } //filter network connections -//TODO: match on family/connection type -(void)filterConnections:(NSString*)filterText items:(NSMutableArray*)items results:(NSMutableArray*)results { //first reset filter'd items @@ -220,7 +216,8 @@ NSString * const BINARY_KEYWORDS[] = {@"#apple", @"#nonapple", @"#signed", @"#un for(Connection* item in items) { //check local ip - if(NSNotFound != [item.localIPAddr rangeOfString:filterText options:NSCaseInsensitiveSearch].location) + if( (nil != item.localIPAddr) && + (NSNotFound != [item.localIPAddr rangeOfString:filterText options:NSCaseInsensitiveSearch].location) ) { //save match [results addObject:item]; @@ -230,7 +227,8 @@ NSString * const BINARY_KEYWORDS[] = {@"#apple", @"#nonapple", @"#signed", @"#un } //check local port - if(NSNotFound != [[NSString stringWithFormat:@"%d", [item.localPort unsignedShortValue]] rangeOfString:filterText options:NSCaseInsensitiveSearch].location) + if( (nil != item.localIPAddr) && + (NSNotFound != [[NSString stringWithFormat:@"%d", [item.localPort unsignedShortValue]] rangeOfString:filterText options:NSCaseInsensitiveSearch].location) ) { //save match [results addObject:item]; @@ -261,6 +259,39 @@ NSString * const BINARY_KEYWORDS[] = {@"#apple", @"#nonapple", @"#signed", @"#un continue; } + //check family + if( (nil != item.family) && + (NSNotFound != [item.family rangeOfString:filterText options:NSCaseInsensitiveSearch].location) ) + { + //save match + [results addObject:item]; + + //next + continue; + } + + //check protocol + if( (nil != item.proto) && + (NSNotFound != [item.proto rangeOfString:filterText options:NSCaseInsensitiveSearch].location) ) + { + //save match + [results addObject:item]; + + //next + continue; + } + + //check state + if( (nil != item.state) && + (NSNotFound != [item.state rangeOfString:filterText options:NSCaseInsensitiveSearch].location) ) + { + //save match + [results addObject:item]; + + //next + continue; + } + }//all connections return; diff --git a/ItemView.m b/ItemView.m index c4cb466..50d71a3 100644 --- a/ItemView.m +++ b/ItemView.m @@ -36,9 +36,9 @@ NSTableCellView* createItemView(NSTableView* tableView, id owner, id item) } //handle logic for search results - // ->dylibs and files have the special global 'loaded in' views + // ->dylibs/files/connections have the special global 'loaded in' views else if( (YES == [owner isKindOfClass:[SearchWindowController class]]) && - ( (YES == [item isKindOfClass:[Binary class]]) || (YES == [item isKindOfClass:[File class]]) ) ) + (YES != [item isKindOfClass:[Task class]]) ) { //create & config view itemCell = createLoadedItemView(tableView, owner, item); @@ -164,7 +164,6 @@ NSTableCellView* createLoadedItemView(NSTableView* tableView, id owner, id item) //get host tasks // ->works with dylibs or files - //TODO: make work w/ network connections tasks = [((AppDelegate*)[[NSApplication sharedApplication] delegate]).taskEnumerator loadedIn:item]; //add dylib indicator @@ -181,6 +180,13 @@ NSTableCellView* createLoadedItemView(NSTableView* tableView, id owner, id item) //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) @@ -213,6 +219,13 @@ NSTableCellView* createLoadedItemView(NSTableView* tableView, id owner, id item) //create loadedItemCell = [tableView makeViewWithIdentifier:@"FileCell" owner:owner]; } + //connections + // ->create cell + else if(YES == [item isKindOfClass:[Connection class]]) + { + //create + loadedItemCell = [tableView makeViewWithIdentifier:@"ConnectionCell" owner:owner]; + } //sanity check if(nil == loadedItemCell) @@ -256,9 +269,21 @@ NSTableCellView* createLoadedItemView(NSTableView* tableView, id owner, id item) // ->(re)set main textfield's color to black loadedItemCell.textField.textColor = [NSColor blackColor]; - //set main text - // ->name - [loadedItemCell.textField setStringValue:[item name]]; + //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; @@ -273,13 +298,41 @@ NSTableCellView* createLoadedItemView(NSTableView* tableView, id owner, id item) // ->should now be exact size of text loadedItemCell.textField.frame = nameFrame; - //set pid + //set host task(s) string // ->immediately follows name [((NSTextField*)[loadedItemCell viewWithTag:TABLE_ROW_PID_LABEL]) setStringValue:loadedIn]; - //set path - [[loadedItemCell viewWithTag:TABLE_ROW_SUB_TEXT_TAG] setStringValue:[item path]]; - + //dylibs/files + // ->subtext is path + if( (YES == [item isKindOfClass:[Binary class]]) || + (YES == [item isKindOfClass:[File class]]) ) + { + //set path + [[loadedItemCell viewWithTag:TABLE_ROW_SUB_TEXT_TAG] setStringValue:[item path]]; + } + //connections + // ->subtext is connection status + else + { + //set details + // ->TCP socket + if(nil != ((Connection*)item).state) + { + //add state + [[loadedItemCell viewWithTag:TABLE_ROW_SUB_TEXT_TAG] setStringValue:((Connection*)item).state]; + } + //set details + // ->UDP socket + else if(YES == [((Connection*)item).type isEqualToString:@"SOCK_DGRAM"]) + { + //bound + // ->add state + [[loadedItemCell viewWithTag:TABLE_ROW_SUB_TEXT_TAG] setStringValue:@"bound (UDP) socket"]; + + //TODO: connected UDP socket? + } + } + //only dylibs have VT button if(YES == [item isKindOfClass:[Binary class]]) { @@ -343,7 +396,9 @@ NSTableCellView* createTaskView(NSTableView* tableView, id owner, Task* task) //set code signing icon ((NSImageView*)[taskCell viewWithTag:TABLE_ROW_SIGNATURE_ICON]).image = getCodeSigningIcon(task.binary); - + + //TODO: red for flagged? + //default // ->(re)set main textfield's color to black taskCell.textField.textColor = [NSColor blackColor]; @@ -508,6 +563,7 @@ NSTableCellView* createNetworkView(NSTableView* tableView, id owner, Connection* //item cell NSTableCellView* connectionCell = nil; + //TODO: don't need this to be mutable str? //connection details NSMutableString* details = nil; diff --git a/SearchWindowController.m b/SearchWindowController.m index ec6b3de..2e8770d 100644 --- a/SearchWindowController.m +++ b/SearchWindowController.m @@ -503,6 +503,9 @@ bail: //matching files NSMutableDictionary* matchingFiles = nil; + //matching connections + NSMutableDictionary* matchingConnections = nil; + //task Task* task = nil; @@ -518,6 +521,9 @@ bail: //alloc dictionary for matching files matchingFiles = [NSMutableDictionary dictionary]; + //alloc dictionary for matching connections + matchingConnections = [NSMutableDictionary dictionary]; + //reset search results [self.searchResults removeAllObjects]; @@ -564,6 +570,9 @@ bail: @synchronized(allTasks) { + //reset + [matchingItems removeAllObjects]; + //TODO: B4 RELEASE! SYNC DYLIBS ARRAY!!! //walk all tasks // ->scan each for dylib matches, only processing first match @@ -604,6 +613,9 @@ bail: //sync @synchronized(allTasks) { + //reset + [matchingItems removeAllObjects]; + //walk all tasks // ->scan each for file matches, only processing first match for(NSNumber* taskPid in allTasks) @@ -639,7 +651,48 @@ bail: //refresh table to display dylib [self.searchTable reloadData]; - //TODO: search network conns + //4th: search for all matching network comms + //sync + //TODO: sync network connections + @synchronized(allTasks) + { + //reset + [matchingItems removeAllObjects]; + + //walk all tasks + // ->scan each for file matches, only processing first match + for(NSNumber* taskPid in allTasks) + { + //extract task + task = allTasks[taskPid]; + + //filter + [self.filterObj filterConnections:searchString items:task.connections results:matchingItems]; + + //process all matching connections + // ->but first check if processed due to matching in another task already + for(Connection* connection in matchingItems) + { + //ignore if already seen/processed + if(nil != matchingConnections[connection.endpoints]) + { + //skip + continue; + } + + //process + [self.searchResults addObject:connection]; + + //save + matchingConnections[connection.endpoints] = connection; + } + + }//all tasks + + }//sync + + //refresh table to display dylib + [self.searchTable reloadData]; //bail bail: diff --git a/TaskEnumerator.m b/TaskEnumerator.m index 0f68380..6b4d7eb 100644 --- a/TaskEnumerator.m +++ b/TaskEnumerator.m @@ -14,6 +14,7 @@ #import "AppDelegate.h" #import "Utilities.h" #import "TaskEnumerator.h" +#import "Connection.h" #import #import @@ -634,6 +635,9 @@ bail: //file flag BOOL isFile = NO; + //connection flag + BOOL isConnection = NO; + //tasks hostTasks = [NSMutableArray array]; @@ -651,15 +655,24 @@ bail: isFile = YES; } + //check if item is connection + else if(YES == [item isKindOfClass:[Connection class]]) + { + //file + isConnection = YES; + } + //sanity check if( (YES != isDylib) && - (YES != isFile) ) + (YES != isFile) && + (YES != isConnection) ) { //bail goto bail; } //sync + //TODO: B4 RELEASE, sync files/dylibs/connections @synchronized(self.tasks) { //iterate over all tasks @@ -687,7 +700,7 @@ bail: }//dylib check //file check - else + else if(YES == isFile) { //check if file is loaded in task for(File* taskFile in task.files) @@ -704,6 +717,25 @@ bail: } }//file check + + //connection check + else if(YES == isConnection) + { + //check if connection is 'in' task + for(Connection* taskConnection in task.connections) + { + //check for task has connection + // note: ->check via endpoints, as that a good representation of connection(?) + if(YES == [taskConnection.endpoints isEqualToString: ((Connection*)item).endpoints]) + { + //save + [hostTasks addObject:task]; + + //can bail, since match was found + break; + } + } + } }//all tasks diff --git a/TaskExplorer.xcodeproj/project.xcworkspace/xcshareddata/TaskExplorer.xccheckout b/TaskExplorer.xcodeproj/project.xcworkspace/xcshareddata/TaskExplorer.xccheckout index c0c67db..df18232 100644 --- a/TaskExplorer.xcodeproj/project.xcworkspace/xcshareddata/TaskExplorer.xccheckout +++ b/TaskExplorer.xcodeproj/project.xcworkspace/xcshareddata/TaskExplorer.xccheckout @@ -7,14 +7,14 @@ IDESourceControlProjectIdentifier FE4103FE-6F26-4639-8C9F-D8D32C76D6A9 IDESourceControlProjectName - project + TaskExplorer IDESourceControlProjectOriginsDictionary 61F07AFB33748EF0C810BEEF6126283DAC63A899 https://bitbucket.org/objective-see/taskexplorer.git IDESourceControlProjectPath - TaskExplorer.xcodeproj/project.xcworkspace + TaskExplorer.xcodeproj IDESourceControlProjectRelativeInstallPathDictionary 61F07AFB33748EF0C810BEEF6126283DAC63A899 diff --git a/TaskExplorer.xcodeproj/project.xcworkspace/xcuserdata/patrickw.xcuserdatad/UserInterfaceState.xcuserstate b/TaskExplorer.xcodeproj/project.xcworkspace/xcuserdata/patrickw.xcuserdatad/UserInterfaceState.xcuserstate index 3809cf05b9af31068a2531e6db1dc41937ee7407..6a8e3841d4e723daf8fc566c95060d7cdee0f14f 100644 GIT binary patch literal 66021 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 z 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%0Db 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

t(63G}!>zjj})T=Ls6?<3Rp2&Kh-gK$ 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 tkC``_$IhqC1M~am56| diff --git a/TaskExplorer.xcodeproj/xcuserdata/patrickw.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/TaskExplorer.xcodeproj/xcuserdata/patrickw.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index 277cd05..b15c66e 100644 --- a/TaskExplorer.xcodeproj/xcuserdata/patrickw.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/TaskExplorer.xcodeproj/xcuserdata/patrickw.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -10,43 +10,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "ItemView.m" - timestampString = "461741382.460449" + timestampString = "462956417.143953" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "44" - endingLineNumber = "44" - landmarkName = "createItemView()" - landmarkType = "7"> - - - - - - - - @@ -74,11 +42,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "SearchWindowController.m" - timestampString = "462871273.447907" + timestampString = "462871859.211461" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "196" - endingLineNumber = "196" + startingLineNumber = "192" + endingLineNumber = "192" landmarkName = "-waitTillPau" landmarkType = "5"> @@ -106,11 +74,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "AppDelegate.m" - timestampString = "462870109.066579" + timestampString = "462958083.434603" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "1544" - endingLineNumber = "1544" + startingLineNumber = "1545" + endingLineNumber = "1545" landmarkName = "-selectBottomPaneContent:" landmarkType = "5"> @@ -170,47 +138,15 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "AppDelegate.m" - timestampString = "462870109.066579" + timestampString = "462958083.434603" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "214" - endingLineNumber = "214" + startingLineNumber = "218" + endingLineNumber = "218" landmarkName = "-registerKeypressHandler" landmarkType = "5"> - - - - - - - - + + + + + + + + diff --git a/UI/SearchWindow.xib b/UI/SearchWindow.xib index f38089c..792fbc2 100644 --- a/UI/SearchWindow.xib +++ b/UI/SearchWindow.xib @@ -21,7 +21,7 @@ - + @@ -304,7 +304,7 @@ - + @@ -324,8 +324,8 @@ - - + + @@ -358,10 +358,23 @@ + + + + + + + + + + + + +