From f6264d83b7b0b056bf1e94b229a8b5c652f2bd6c Mon Sep 17 00:00:00 2001 From: Patrick Wardle Date: Thu, 6 Dec 2018 21:04:36 -1000 Subject: [PATCH] mojave compatibility -dark mode -skip dylib enumeration for launchd (Apple bug) -sentry.io error reporting -update check (automatic & via menu) -friends of obj-see --- AboutWindow.xib | 122 ------ AboutWindowController.h | 19 +- AboutWindowController.m | 47 ++- AppDelegate.h | 7 + AppDelegate.m | 227 ++++++++-- .../AppIcon.appiconset/Contents.json | 68 +++ .../AppIcon.appiconset}/icon_128x128.png | Bin .../AppIcon.appiconset}/icon_128x128@2x.png | Bin .../AppIcon.appiconset}/icon_16x16.png | Bin .../AppIcon.appiconset}/icon_16x16@2x.png | Bin .../AppIcon.appiconset}/icon_256x256.png | Bin .../AppIcon.appiconset}/icon_256x256@2x.png | Bin .../AppIcon.appiconset}/icon_32x32.png | Bin .../AppIcon.appiconset}/icon_32x32@2x.png | Bin .../AppIcon.appiconset}/icon_512x512.png | Bin .../AppIcon.appiconset}/icon_512x512@2x.png | Bin Assets.xcassets/Contents.json | 6 + .../FriendsDigita.imageset/Contents.json | 35 ++ .../FriendsDigita.imageset/digita.pdf | Bin 0 -> 6306 bytes .../FriendsDigita.imageset/digitaDark.pdf | Bin 0 -> 6306 bytes .../FriendsDigita.imageset/digitaLight.pdf | Bin 0 -> 6306 bytes .../Contents.json | 35 ++ .../malwarebytes.pdf | Bin 0 -> 76216 bytes .../malwarebytesDark.pdf | Bin 0 -> 76216 bytes .../malwarebytesLight.pdf | Bin 0 -> 76216 bytes .../FriendsSophos.imageset/Contents.json | 35 ++ .../FriendsSophos.imageset/sophos.png | Bin 0 -> 1364 bytes .../FriendsSophos.imageset/sophosDark.png | Bin 0 -> 1364 bytes .../FriendsSophos.imageset/sophosLight.png | Bin 0 -> 1364 bytes Cartfile | 1 + Cartfile.resolved | 1 + Consts.h | 28 +- Exception.h | 24 -- Exception.m | 222 ---------- InfoWindowController.m | 9 +- ItemView.m | 49 ++- Items/File.m | 15 +- KKRow.m | 26 +- PrefsWindowController.m | 13 +- RequestRootWindowController.m | 11 +- ResultsWindowController.m | 9 +- SearchWindowController.m | 4 +- Task.m | 2 +- TaskExplorer.xcodeproj/project.pbxproj | 106 ++++- .../UserInterfaceState.xcuserstate | Bin 21755 -> 56515 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 395 ------------------ .../xcschemes/TaskExplorer.xcscheme | 12 +- .../xcschemes/remoteTaskService.xcscheme | 36 +- TaskTableController.m | 3 +- UI/AboutWindow.xib | 105 ++++- UI/RequestRootWindow.xib | 28 +- UI/SearchWindow.xib | 7 +- UI/UpdateWindow.xib | 80 ++++ Update.h | 26 ++ Update.m | 97 +++++ UpdateWindowController.h | 49 +++ UpdateWindowController.m | 121 ++++++ Utilities.h | 17 +- Utilities.m | 252 +++++++++-- VTButton.m | 19 +- VTInfoWindowController.m | 18 +- en.lproj/MainMenu.xib | 101 ++++- images/{flatIcon.png => teIcon.png} | Bin kkRowCell.m | 1 - patrons.txt | 5 + remoteTaskService/main.m | 8 +- remoteTaskService/remoteTaskService.m | 56 ++- 67 files changed, 1525 insertions(+), 1032 deletions(-) delete mode 100644 AboutWindow.xib create mode 100644 Assets.xcassets/AppIcon.appiconset/Contents.json rename {images/icon.iconset => Assets.xcassets/AppIcon.appiconset}/icon_128x128.png (100%) rename {images/icon.iconset => Assets.xcassets/AppIcon.appiconset}/icon_128x128@2x.png (100%) rename {images/icon.iconset => Assets.xcassets/AppIcon.appiconset}/icon_16x16.png (100%) rename {images/icon.iconset => Assets.xcassets/AppIcon.appiconset}/icon_16x16@2x.png (100%) rename {images/icon.iconset => Assets.xcassets/AppIcon.appiconset}/icon_256x256.png (100%) rename {images/icon.iconset => Assets.xcassets/AppIcon.appiconset}/icon_256x256@2x.png (100%) rename {images/icon.iconset => Assets.xcassets/AppIcon.appiconset}/icon_32x32.png (100%) rename {images/icon.iconset => Assets.xcassets/AppIcon.appiconset}/icon_32x32@2x.png (100%) rename {images/icon.iconset => Assets.xcassets/AppIcon.appiconset}/icon_512x512.png (100%) rename {images/icon.iconset => Assets.xcassets/AppIcon.appiconset}/icon_512x512@2x.png (100%) create mode 100644 Assets.xcassets/Contents.json create mode 100644 Assets.xcassets/FriendsDigita.imageset/Contents.json create mode 100644 Assets.xcassets/FriendsDigita.imageset/digita.pdf create mode 100644 Assets.xcassets/FriendsDigita.imageset/digitaDark.pdf create mode 100644 Assets.xcassets/FriendsDigita.imageset/digitaLight.pdf create mode 100644 Assets.xcassets/FriendsMalwarebytes.imageset/Contents.json create mode 100644 Assets.xcassets/FriendsMalwarebytes.imageset/malwarebytes.pdf create mode 100644 Assets.xcassets/FriendsMalwarebytes.imageset/malwarebytesDark.pdf create mode 100644 Assets.xcassets/FriendsMalwarebytes.imageset/malwarebytesLight.pdf create mode 100644 Assets.xcassets/FriendsSophos.imageset/Contents.json create mode 100644 Assets.xcassets/FriendsSophos.imageset/sophos.png create mode 100644 Assets.xcassets/FriendsSophos.imageset/sophosDark.png create mode 100644 Assets.xcassets/FriendsSophos.imageset/sophosLight.png create mode 100644 Cartfile create mode 100644 Cartfile.resolved delete mode 100755 Exception.h delete mode 100755 Exception.m delete mode 100644 TaskExplorer.xcodeproj/xcuserdata/patrick.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist create mode 100644 UI/UpdateWindow.xib create mode 100644 Update.h create mode 100644 Update.m create mode 100644 UpdateWindowController.h create mode 100644 UpdateWindowController.m rename images/{flatIcon.png => teIcon.png} (100%) create mode 100644 patrons.txt diff --git a/AboutWindow.xib b/AboutWindow.xib deleted file mode 100644 index b3718bd..0000000 --- a/AboutWindow.xib +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/AboutWindowController.h b/AboutWindowController.h index b5a4279..e04d687 100644 --- a/AboutWindowController.h +++ b/AboutWindowController.h @@ -1,12 +1,13 @@ // -// AboutWindowController.h -// TaskExplorer +// file: AboutWindowController.h +// project: lulu (config) +// description: about window display/controller (header) // -// Created by Patrick Wardle on 7/15/16. -// Copyright (c) 2016 Objective-See. All rights reserved. +// created by Patrick Wardle +// copyright (c) 2018 Objective-See. All rights reserved. // -#import +@import Cocoa; @interface AboutWindowController : NSWindowController { @@ -16,13 +17,13 @@ /* PROPERTIES */ //version label/string -@property (weak) IBOutlet NSTextField *versionLabel; +@property (weak, atomic) IBOutlet NSTextField *versionLabel; //patrons -@property (unsafe_unretained) IBOutlet NSTextView *patrons; +@property (unsafe_unretained, atomic) IBOutlet NSTextView *patrons; - -/* METHODS */ +//'support us' button +@property (weak, atomic) IBOutlet NSButton *supportUs; @end diff --git a/AboutWindowController.m b/AboutWindowController.m index 26e3a94..aa4bcda 100644 --- a/AboutWindowController.m +++ b/AboutWindowController.m @@ -1,9 +1,10 @@ // -// AboutWindowController.m -// TaskExplorer +// file: AboutWindowController.m +// project: lulu (config) +// description: about window display/controller // -// Created by Patrick Wardle on 7/15/16. -// Copyright (c) 2016 Objective-See. All rights reserved. +// created by Patrick Wardle +// copyright (c) 2018 Objective-See. All rights reserved. // #import "Consts.h" @@ -13,10 +14,11 @@ @implementation AboutWindowController @synthesize patrons; +@synthesize supportUs; @synthesize versionLabel; //automatically called when nib is loaded -// ->center window +// center window -(void)awakeFromNib { //center @@ -24,28 +26,47 @@ } //automatically invoked when window is loaded -// ->set to white +// set to white -(void)windowDidLoad { //super [super windowDidLoad]; - //make white - [self.window setBackgroundColor: NSColor.whiteColor]; + //not in dark mode? + // make window white + if(YES != isDarkMode()) + { + //make white + self.window.backgroundColor = NSColor.whiteColor; + } //set version sting self.versionLabel.stringValue = [NSString stringWithFormat:@"Version: %@", getAppVersion()]; //load patrons self.patrons.string = [NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"patrons" ofType:@"txt"] encoding:NSUTF8StringEncoding error:NULL]; - + + //make 'support us' default + [self.supportUs setKeyEquivalent:@"\r"]; + + //make first responder + // calling this without a timeout sometimes fails :/ + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (100 * NSEC_PER_MSEC)), dispatch_get_main_queue(), ^{ + + //and make it first responder + [self.window makeFirstResponder:self.supportUs]; + + }); + return; } //automatically invoked when window is closing -// ->make ourselves unmodal +// make ourselves unmodal -(void)windowWillClose:(NSNotification *)notification { + #pragma unused(notification) + //make un-modal [[NSApplication sharedApplication] stopModal]; @@ -53,14 +74,14 @@ } //automatically invoked when user clicks any of the buttons -// ->load patreon or products webpage in user's default browser +// load patreon or products webpage in user's default browser -(IBAction)buttonHandler:(id)sender { //support us button if(((NSButton*)sender).tag == BUTTON_SUPPORT_US) { //open URL - // ->invokes user's default browser + // invokes user's default browser [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:PATREON_URL]]; } @@ -68,7 +89,7 @@ else if(((NSButton*)sender).tag == BUTTON_MORE_INFO) { //open URL - // ->invokes user's default browser + // invokes user's default browser [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:PRODUCT_URL]]; } diff --git a/AppDelegate.h b/AppDelegate.h index 492715c..c7cf856 100755 --- a/AppDelegate.h +++ b/AppDelegate.h @@ -19,6 +19,7 @@ #import "AboutWindowController.h" #import "PrefsWindowController.h" #import "SearchWindowController.h" +#import "UpdateWindowController.h" #import "ResultsWindowController.h" #import "FlaggedItemWindowController.h" #import "RequestRootWindowController.h" @@ -29,6 +30,9 @@ } +//friends +@property (weak) IBOutlet NSWindow *friends; + //start time @property NSTimeInterval startTime; @@ -172,6 +176,9 @@ //message for filtering @property (weak) IBOutlet NSTextField *filteringMessage; +//update window controller +@property(nonatomic, retain)UpdateWindowController* updateWindowController; + /* METHODS */ //complete a few inits diff --git a/AppDelegate.m b/AppDelegate.m index f0ad680..0fd3e00 100755 --- a/AppDelegate.m +++ b/AppDelegate.m @@ -3,19 +3,20 @@ // TaskExplorer // + +#import + +#import "Task.h" #import "Consts.h" #import "Binary.h" +#import "Update.h" #import "Connection.h" -#import "Exception.h" #import "Utilities.h" #import "AppDelegate.h" #import "serviceInterface.h" - #import "TaskTableController.h" #import "RequestRootWindowController.h" -#import "Task.h" - //TODO: filter out dup'd networks (airportd 0:0..) -not sure want to do this //TODO: autolayout vertically @@ -48,34 +49,14 @@ @synthesize bottomViewController; @synthesize aboutWindowController; @synthesize searchWindowController; +@synthesize updateWindowController; @synthesize resultsWindowController; @synthesize flagItemsWindowController; @synthesize requestRootWindowController; -//center window -// ->also make front --(void)awakeFromNib +//kick off main window/logic +-(void)taskExplore { - //center - [self.window center]; - - //make it key window - [self.window makeKeyAndOrderFront:self]; - - //make window front - [NSApp activateIgnoringOtherApps:YES]; - - return; -} - -//automatically invoked by OS -// ->main entry point --(void)applicationDidFinishLaunching:(NSNotification *)notification -{ - //first thing... - // ->install exception handlers! - installExceptionHandlers(); - //for autolayout [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints"]; @@ -131,6 +112,11 @@ exit(0); } + //check + [self check4Update:nil]; + + return; + //register for hotkey presses [self registerKeypressHandler]; @@ -162,7 +148,7 @@ //set flag self.bottomViewController.isBottomPane = YES; - + //disable autosize translations self.bottomViewController.view.translatesAutoresizingMaskIntoConstraints = NO; @@ -177,10 +163,47 @@ //add 'items' not found msg [self.bottomViewController.view addSubview:self.noItemsLabel]; - + //set delegate // ->ensures our 'windowWillClose' method, which has logic to fully exit app self.window.delegate = self; +} + +//automatically invoked by OS +// ->main entry point +-(void)applicationDidFinishLaunching:(NSNotification *)notification +{ + //init crash reporting + initCrashReporting(); + + //first time run? + // show thanks to friends window! + // note: on close invokes method to show main window + if(YES != [[NSUserDefaults standardUserDefaults] boolForKey:NOT_FIRST_TIME]) + { + //set key + [[NSUserDefaults standardUserDefaults] setBool:YES forKey:NOT_FIRST_TIME]; + + //front + [self.friends makeKeyAndOrderFront:self]; + + //front + [NSApp activateIgnoringOtherApps:YES]; + + //close after 3 seconds + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 3 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{ + + //hide + [self hideFriends:nil]; + + }); + } + //start task exploring + else + { + //show + [self taskExplore]; + } return; } @@ -202,6 +225,7 @@ return; } + //invoked for any (but only) key-down events -(NSEvent*)handleKeypress:(NSEvent*)event { @@ -291,8 +315,26 @@ bail: // the event from being dispatched, nil return event; +} +//hide friends view +// also shows/kicks off main window +- (IBAction)hideFriends:(id)sender +{ + //once + static dispatch_once_t onceToken; + + //close and launch main window + dispatch_once (&onceToken, ^{ + + //close + [self.friends close]; + + //start task exploring + [self taskExplore]; + }); + return; } //complete a few inits @@ -583,13 +625,31 @@ bail: -(void)reloadBottomPane:(Task*)task itemView:(NSUInteger)itemView { //tag - NSUInteger segmentTag = 0; + __block NSUInteger segmentTag = 0; //not found msg NSString* noItemsMsg = nil; - //get segment tag - segmentTag = [[self.bottomPaneBtn selectedCell] tagForSegment:[self.bottomPaneBtn selectedSegment]]; + //main thread + // get segment tag + if(YES == [NSThread isMainThread]) + { + //get segment tag + segmentTag = [[self.bottomPaneBtn selectedCell] tagForSegment:[self.bottomPaneBtn selectedSegment]]; + } + //background thread + // get segment tag on main thread + else + { + //on main thread + // get segment tag + dispatch_sync(dispatch_get_main_queue(), ^{ + + //get segment tag + segmentTag = [[self.bottomPaneBtn selectedCell] tagForSegment:[self.bottomPaneBtn selectedSegment]]; + + }); + } //ignore reloads for unselected tasks // ->note: when no task is passed in, always reload though @@ -1753,8 +1813,8 @@ bail: //maks self.filteringOverlay.layer.masksToBounds = YES; - //set overlay's view color to black - self.filteringOverlay.layer.backgroundColor = [NSColor grayColor].CGColor; + //set overlay's view color to gray + self.filteringOverlay.layer.backgroundColor = NSColor.grayColor.CGColor; //make it semi-transparent self.filteringOverlay.alphaValue = 0.95; @@ -2335,4 +2395,103 @@ bail: return fieldEditor; } + + +//call into Update obj +// check to see if there an update? +- (IBAction)check4Update:(id)sender +{ + //update obj + Update* update = nil; + + //init update obj + update = [[Update alloc] init]; + + //check for update + // ->'updateResponse newVersion:' method will be called when check is done + [update checkForUpdate:^(NSUInteger result, NSString* newVersion) { + + //process response + // when invoked from menu show full results + [self updateResponse:result newVersion:newVersion alwaysShow:(nil != sender)]; + + }]; + + return; +} + +//process update response +// error, no update, update/new version +-(void)updateResponse:(NSInteger)result newVersion:(NSString*)newVersion alwaysShow:(BOOL)alwaysShow +{ + //details + NSString* details = nil; + + //action + NSString* action = nil; + + //handle response + // new version, show popup + switch (result) + { + //error + case -1: + + //set details + details = @"error, failed to check for an update."; + + //set action + action = @"Close"; + + break; + + //no updates + case 0: + + //set details + details = [NSString stringWithFormat:@"you're all up to date! (v. %@)", getAppVersion()]; + + //set action + action = @"Close"; + + break; + + //new version + case 1: + + //set details + details = [NSString stringWithFormat:@"a new version (%@) is available!", newVersion]; + + //set action + action = @"Update"; + + break; + } + + //always show results? + if(YES == alwaysShow) + { + //alloc update window + updateWindowController = [[UpdateWindowController alloc] initWithWindowNibName:@"UpdateWindow"]; + + //configure + [self.updateWindowController configure:details buttonTitle:action]; + + //center window + [[self.updateWindowController window] center]; + + //show it + [self.updateWindowController showWindow:self]; + + //invoke function in background that will make window modal + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + + //make modal + makeModal(self.updateWindowController); + + }); + } + + return; +} @end diff --git a/Assets.xcassets/AppIcon.appiconset/Contents.json b/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..7cd4f8e --- /dev/null +++ b/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "icon_16x16.png", + "scale" : "1x" + }, + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "icon_16x16@2x.png", + "scale" : "2x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "icon_32x32.png", + "scale" : "1x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "icon_32x32@2x.png", + "scale" : "2x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "icon_128x128.png", + "scale" : "1x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "icon_128x128@2x.png", + "scale" : "2x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "icon_256x256.png", + "scale" : "1x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "icon_256x256@2x.png", + "scale" : "2x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "icon_512x512.png", + "scale" : "1x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "icon_512x512@2x.png", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/images/icon.iconset/icon_128x128.png b/Assets.xcassets/AppIcon.appiconset/icon_128x128.png similarity index 100% rename from images/icon.iconset/icon_128x128.png rename to Assets.xcassets/AppIcon.appiconset/icon_128x128.png diff --git a/images/icon.iconset/icon_128x128@2x.png b/Assets.xcassets/AppIcon.appiconset/icon_128x128@2x.png similarity index 100% rename from images/icon.iconset/icon_128x128@2x.png rename to Assets.xcassets/AppIcon.appiconset/icon_128x128@2x.png diff --git a/images/icon.iconset/icon_16x16.png b/Assets.xcassets/AppIcon.appiconset/icon_16x16.png similarity index 100% rename from images/icon.iconset/icon_16x16.png rename to Assets.xcassets/AppIcon.appiconset/icon_16x16.png diff --git a/images/icon.iconset/icon_16x16@2x.png b/Assets.xcassets/AppIcon.appiconset/icon_16x16@2x.png similarity index 100% rename from images/icon.iconset/icon_16x16@2x.png rename to Assets.xcassets/AppIcon.appiconset/icon_16x16@2x.png diff --git a/images/icon.iconset/icon_256x256.png b/Assets.xcassets/AppIcon.appiconset/icon_256x256.png similarity index 100% rename from images/icon.iconset/icon_256x256.png rename to Assets.xcassets/AppIcon.appiconset/icon_256x256.png diff --git a/images/icon.iconset/icon_256x256@2x.png b/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x.png similarity index 100% rename from images/icon.iconset/icon_256x256@2x.png rename to Assets.xcassets/AppIcon.appiconset/icon_256x256@2x.png diff --git a/images/icon.iconset/icon_32x32.png b/Assets.xcassets/AppIcon.appiconset/icon_32x32.png similarity index 100% rename from images/icon.iconset/icon_32x32.png rename to Assets.xcassets/AppIcon.appiconset/icon_32x32.png diff --git a/images/icon.iconset/icon_32x32@2x.png b/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png similarity index 100% rename from images/icon.iconset/icon_32x32@2x.png rename to Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png diff --git a/images/icon.iconset/icon_512x512.png b/Assets.xcassets/AppIcon.appiconset/icon_512x512.png similarity index 100% rename from images/icon.iconset/icon_512x512.png rename to Assets.xcassets/AppIcon.appiconset/icon_512x512.png diff --git a/images/icon.iconset/icon_512x512@2x.png b/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png similarity index 100% rename from images/icon.iconset/icon_512x512@2x.png rename to Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png diff --git a/Assets.xcassets/Contents.json b/Assets.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Assets.xcassets/FriendsDigita.imageset/Contents.json b/Assets.xcassets/FriendsDigita.imageset/Contents.json new file mode 100644 index 0000000..d54931d --- /dev/null +++ b/Assets.xcassets/FriendsDigita.imageset/Contents.json @@ -0,0 +1,35 @@ +{ + "images" : [ + { + "idiom" : "mac", + "filename" : "digita.pdf" + }, + { + "idiom" : "mac", + "filename" : "digitaLight.pdf", + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ] + }, + { + "idiom" : "mac", + "filename" : "digitaDark.pdf", + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ] + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + }, + "properties" : { + "preserves-vector-representation" : true + } +} \ No newline at end of file diff --git a/Assets.xcassets/FriendsDigita.imageset/digita.pdf b/Assets.xcassets/FriendsDigita.imageset/digita.pdf new file mode 100644 index 0000000000000000000000000000000000000000..fcae0fcdb40eb37d12ed022c85ac9dac7d6e7381 GIT binary patch literal 6306 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 y(@YEvQ={`Z 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 y(@YEvQ={`Z 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 literal 0 HcmV?d00001 diff --git a/Assets.xcassets/FriendsSophos.imageset/sophosDark.png b/Assets.xcassets/FriendsSophos.imageset/sophosDark.png new file mode 100644 index 0000000000000000000000000000000000000000..a5da6436fa0088851f46a62d5ad0840565402053 GIT binary patch literal 1364 zcmb7^>r;{m6vp3{h_n#RY&J>E%*xHYfN6qa7d6qm^hU6zc}Z6@FKJRRiI=2uT^n^Q zvJ50mA~P>j5>ZCp+ERBBb=6E1&?#L3myD2*(PjUHojK3>%{=Ek=i@1f3_l7tw>1X< z08R)F08MN+Nwgkf>M!D$l_p>!j}Ze+1fu!>tLgyjOjF8|0*0Re+}|Ahr!Z?kwmrVZ zvYZnM>`eAF&CIfbqjCUX!>0eVW@s|sXfk0GLRcV70Yg~q*u=GMdjJ4y?+^kG5osUQ zY$a*NedE=8yHZ`lPE4()E^U7Ps!-+Ss64}-`HrBkEq4r^xiBwI7-1XATj!B<#(7Ql zUvd)>_3LCNZr`sr5z^4T31)iFc)XGewTAG=Urft6p|l%?Y&x2 zeB5HvcI792{5H8;-P}VBDyqJr7{IE$ zG}Fj-2V+>tLsrxTM^tlU1&sSj#-5gs{QRq!CV@0Ap%oQ8A zhn_r=t~v3wFmCUeV#V;Mow@vbUA!vee0NzFFYT$%I{Huxb@!#s_$Z`wM>lSq-|0>B z*6+Cve|_>{9B2V`g5gi2Zg|Ks*X~9fH|yphz|w&(E9?!5D}SrGKTi=cfdcR{Wpw7} zh`8t9veSa)A35o}&x2W5;sKJdiMe3=60zb0* zsKTE;?qwJ}MW#1o_|?T9h(Kwr0s$PRf!e9i2Uut&*MUkBtt- zcUf+*m1cOXE^v+To@(fdVEO6Ux}?X8R|QicM`}}g=itAAsCR6V@GS&?xn#SxHS`O^ z1+>zp+AoXRNxzp}w@|Dqss%o}hl@g?`)sULD4?gqpr^busX=J1#vjazI=(l3lH#Jzna0;aS^V2D3yZ_|dLD z>JtBW#b4Z!b%(@YTkp-=9NgM#^C3#mgWmwxR*`AAMb(pzKJo1zv`ji2wiq literal 0 HcmV?d00001 diff --git a/Assets.xcassets/FriendsSophos.imageset/sophosLight.png b/Assets.xcassets/FriendsSophos.imageset/sophosLight.png new file mode 100644 index 0000000000000000000000000000000000000000..a5da6436fa0088851f46a62d5ad0840565402053 GIT binary patch literal 1364 zcmb7^>r;{m6vp3{h_n#RY&J>E%*xHYfN6qa7d6qm^hU6zc}Z6@FKJRRiI=2uT^n^Q zvJ50mA~P>j5>ZCp+ERBBb=6E1&?#L3myD2*(PjUHojK3>%{=Ek=i@1f3_l7tw>1X< z08R)F08MN+Nwgkf>M!D$l_p>!j}Ze+1fu!>tLgyjOjF8|0*0Re+}|Ahr!Z?kwmrVZ zvYZnM>`eAF&CIfbqjCUX!>0eVW@s|sXfk0GLRcV70Yg~q*u=GMdjJ4y?+^kG5osUQ zY$a*NedE=8yHZ`lPE4()E^U7Ps!-+Ss64}-`HrBkEq4r^xiBwI7-1XATj!B<#(7Ql zUvd)>_3LCNZr`sr5z^4T31)iFc)XGewTAG=Urft6p|l%?Y&x2 zeB5HvcI792{5H8;-P}VBDyqJr7{IE$ zG}Fj-2V+>tLsrxTM^tlU1&sSj#-5gs{QRq!CV@0Ap%oQ8A zhn_r=t~v3wFmCUeV#V;Mow@vbUA!vee0NzFFYT$%I{Huxb@!#s_$Z`wM>lSq-|0>B z*6+Cve|_>{9B2V`g5gi2Zg|Ks*X~9fH|yphz|w&(E9?!5D}SrGKTi=cfdcR{Wpw7} zh`8t9veSa)A35o}&x2W5;sKJdiMe3=60zb0* zsKTE;?qwJ}MW#1o_|?T9h(Kwr0s$PRf!e9i2Uut&*MUkBtt- zcUf+*m1cOXE^v+To@(fdVEO6Ux}?X8R|QicM`}}g=itAAsCR6V@GS&?xn#SxHS`O^ z1+>zp+AoXRNxzp}w@|Dqss%o}hl@g?`)sULD4?gqpr^busX=J1#vjazI=(l3lH#Jzna0;aS^V2D3yZ_|dLD z>JtBW#b4Z!b%(@YTkp-=9NgM#^C3#mgWmwxR*`AAMb(pzKJo1zv`ji2wiq literal 0 HcmV?d00001 diff --git a/Cartfile b/Cartfile new file mode 100644 index 0000000..36d649c --- /dev/null +++ b/Cartfile @@ -0,0 +1 @@ +github "getsentry/sentry-cocoa" "4.1.0" diff --git a/Cartfile.resolved b/Cartfile.resolved new file mode 100644 index 0000000..36d649c --- /dev/null +++ b/Cartfile.resolved @@ -0,0 +1 @@ +github "getsentry/sentry-cocoa" "4.1.0" diff --git a/Consts.h b/Consts.h index 6f074fe..f6dfae8 100644 --- a/Consts.h +++ b/Consts.h @@ -1,13 +1,16 @@ // // Consts.h -// DHS +// TaskExplorer // // Created by Patrick Wardle on 2/4/15. // Copyright (c) 2015 Objective-See. All rights reserved. // -#ifndef KK_Consts_h -#define KK_Consts_h +#ifndef TE_Consts_h +#define TE_Consts_h + +//not first run +#define NOT_FIRST_TIME @"notFirstTime" //button text, start scan #define START_SCAN @"Start Scan" @@ -75,6 +78,15 @@ //path to open #define OPEN @"/usr/bin/open" +//key for stdout output +#define STDOUT @"stdOutput" + +//key for stderr output +#define STDERR @"stdError" + +//key for exit code +#define EXIT_CODE @"exitCode" + //hash key, SHA1 #define KEY_HASH_SHA1 @"sha1" @@ -374,4 +386,14 @@ //product url #define PRODUCT_URL @"https://objective-see.com/products/taskexplorer.html" +//crash reporting URL +#define CRASH_REPORTING_URL @"https://c48b6be026d34bf5938a9167d5d5ee77@sentry.io/1337533" + +//product name +// ...for version check +#define PRODUCT_NAME @"TaskExplorer" + +//product version url +#define PRODUCT_VERSIONS_URL @"https://objective-see.com/products.json" + #endif diff --git a/Exception.h b/Exception.h deleted file mode 100755 index 641fe85..0000000 --- a/Exception.h +++ /dev/null @@ -1,24 +0,0 @@ -// Created by Patrick Wardle on 2/6/15. -// Copyright (c) 2015 Objective-See, LLC. All rights reserved. - -#import -#import -#import - -//install exception/signal handlers -void installExceptionHandlers(); - -//exception handler for Obj-C exceptions -void exceptionHandler(NSException *exception); - -//signal handler for *nix style exceptions -void signalHandler(int signal, siginfo_t *info, void *context); - -//display an alert -void showAlert(); - -//given an error reason (e.g. '*** Collection <__NSArrayM: 0x7fdb36a72b80> was mutated while being enumerated' -// ->extract and grab objective-c object's description; 0x7fdb36a72b80 (NSArray*) -void displayObject(NSException* exception); - - diff --git a/Exception.m b/Exception.m deleted file mode 100755 index ea54d0e..0000000 --- a/Exception.m +++ /dev/null @@ -1,222 +0,0 @@ -// Created by Patrick Wardle on 2/6/15. -// Copyright (c) 2015 Objective-See, LLC. All rights reserved. - -#import "Consts.h" -#import "Exception.h" -#import "Utilities.h" - - -//install exception/signal handlers -void installExceptionHandlers() -{ - //sigaction struct - struct sigaction sa = {0}; - - //init struct - sigemptyset (&sa.sa_mask); - sa.sa_flags = SA_SIGINFO; - sa.sa_sigaction = signalHandler; - - //exception handler - NSSetUncaughtExceptionHandler(&exceptionHandler); - - //install signal handlers - sigaction(SIGILL, &sa, NULL); - sigaction(SIGSEGV, &sa, NULL); - sigaction(SIGBUS, &sa, NULL); - sigaction(SIGABRT, &sa, NULL); - sigaction(SIGTRAP, &sa, NULL); - sigaction(SIGFPE, &sa, NULL); - - return; -} - -//display error alert -void showAlert() -{ - //response - // ->index of button click - NSModalResponse response = 0; - - //alert box - NSAlert* fullScanAlert = nil; - - //alloc/init alert - fullScanAlert = [NSAlert alertWithMessageText:@"ERROR: detected unrecoverable fault" defaultButton:@"Exit" alternateButton:@"Info" otherButton:nil informativeTextWithFormat:@"click 'Info' to help fix the issue!"]; - - //and show it - response = [fullScanAlert runModal]; - - //handle case where user clicks 'Info' - // ->take 'em to error page - if(0 == response) - { - //open page in browser - [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"https://objective-see.com/errors.html"]]; - } - - //kill app - exit(0); - - return; -} - -//exception handler -// will be invoked for Obj-C exceptions -void exceptionHandler(NSException *exception) -{ - //error msg - NSString* errMsg = nil; - - //err msg - syslog(LOG_ERR, "OBJECTIVE-SEE ERROR: OS version: %s /App version: %s", [[[NSProcessInfo processInfo] operatingSystemVersionString] UTF8String], [getAppVersion() UTF8String]); - - //create error msg - errMsg = [NSString stringWithFormat:@"unhandled obj-c exception caught [name: %@ / reason: %@]", [exception name], [exception reason]]; - - //err msg - syslog(LOG_ERR, "OBJECTIVE-SEE ERROR: %s", [errMsg UTF8String]); - - //err msg - syslog(LOG_ERR, "OBJECTIVE-SEE ERROR: %s/%s", [[exception.callStackSymbols description] UTF8String], [[exception.callStackReturnAddresses description] UTF8String]); - - //try print any objective-c objects in exception's 'reason' - displayObject(exception); - - //main thread - // ->just show UI alert - if(YES == [NSThread isMainThread]) - { - //show - showAlert(); - } - //back thread - // ->have to show it on main thread - else - { - //show alert - // ->in main UI thread - dispatch_sync(dispatch_get_main_queue(), ^{ - - //show - showAlert(); - - }); - } - - return; -} - -//handler for signals -// will be invoked for BSD/*nix signals -void signalHandler(int signal, siginfo_t *info, void *context) -{ - //error msg - NSString* errMsg = nil; - - //context - ucontext_t *uContext = NULL; - - //err msg - syslog(LOG_ERR, "OBJECTIVE-SEE ERROR: OS version: %s /App version: %s", [[[NSProcessInfo processInfo] operatingSystemVersionString] UTF8String], [getAppVersion() UTF8String]); - - //typecast context - uContext = (ucontext_t *)context; - - //create error msg - errMsg = [NSString stringWithFormat:@"unhandled exception caught, si_signo: %d /si_code: %s /si_addr: %p /rip: %p", - info->si_signo, (info->si_code == SEGV_MAPERR) ? "SEGV_MAPERR" : "SEGV_ACCERR", info->si_addr, (unsigned long*)uContext->uc_mcontext->__ss.__rip]; - - //err msg - syslog(LOG_ERR, "OBJECTIVE-SEE ERROR: %s", [errMsg UTF8String]); - - //err msg - syslog(LOG_ERR, "OBJECTIVE-SEE ERROR: %s", [[[NSThread callStackSymbols] description] UTF8String]); - - //main thread - // ->just show UI alert - if(YES == [NSThread isMainThread]) - { - //show - showAlert(); - } - //back thread - // ->have to show it on main thread - else - { - //show alert - // ->in main UI thread - dispatch_sync(dispatch_get_main_queue(), ^{ - - //show - showAlert(); - - }); - } - - return; -} - -//given an error reason (e.g. '*** Collection <__NSArrayM: 0x7fdb36a72b80> was mutated while being enumerated' -// ->extract and grab objective-c object's description; 0x7fdb36a72b80 (NSArray*) -void displayObject(NSException* exception) -{ - //object description - NSString* objectDescription = nil; - - //start - NSRange start = {0}; - - //end - NSRange end = {0}; - - //extracted addr - NSString* extractedAddr = nil; - - //scanner - // ->used to convert hex string to pointer - NSScanner* scanner = nil; - - //address - unsigned long long objAddress = 0; - - //find start - // ->find '0x' in something like: *** Collection <__NSArrayM: 0x7fdb36a72b80> - start = [exception.reason rangeOfString:@"0x"]; - if(NSNotFound == start.location) - { - //bail - goto bail; - } - - //find end - // ->find '>' in something like: *** Collection <__NSArrayM: 0x7fdb36a72b80> - end = [exception.reason rangeOfString:@">"]; - if(NSNotFound == end.location) - { - //bail - goto bail; - } - - //extract address - // ->will still be a (hex) string, but will be converted below - extractedAddr = [exception.reason substringWithRange:NSMakeRange(start.location + start.length, end.location - start.location- start.length)]; - - //init scanner - scanner = [NSScanner scannerWithString:extractedAddr]; - - //convert extracted address from hex string to pointer - [scanner scanHexLongLong:&objAddress]; - - //cast to obj-c object - // ->then get description - objectDescription = [(__bridge_transfer NSArray*)((void*)objAddress) description]; - - //err msg - syslog(LOG_ERR, "OBJECTIVE-SEE ERROR: object: %s", [objectDescription UTF8String]); - -//bail -bail: - - return; -} diff --git a/InfoWindowController.m b/InfoWindowController.m index b711938..447b315 100644 --- a/InfoWindowController.m +++ b/InfoWindowController.m @@ -29,8 +29,13 @@ //super [super windowDidLoad]; - //make white - [self.window setBackgroundColor: NSColor.whiteColor]; + //no dark mode? + // make window white + if(YES != isDarkMode()) + { + //make white + self.window.backgroundColor = NSColor.whiteColor; + } return; } diff --git a/ItemView.m b/ItemView.m index bd4e2fd..146f3d1 100644 --- a/ItemView.m +++ b/ItemView.m @@ -214,8 +214,8 @@ NSTableCellView* createLoadedItemView(NSTableView* tableView, id owner, id item) } //default - // ->(re)set main textfield's color to black - loadedItemCell.textField.textColor = [NSColor blackColor]; + // ->(re)set main textfield's color + loadedItemCell.textField.textColor = NSColor.controlTextColor; //set main text loadedItemCell.textField.attributedStringValue = initLoadedInString(item); @@ -297,9 +297,8 @@ NSAttributedString* initBinaryString(id item, BOOL isSearchWindow) //add name [taskString appendAttributedString:[[NSMutableAttributedString alloc] initWithString:binary.name]]; - //init color for pid - // ->light gray - attributes = [NSDictionary dictionaryWithObject:[NSColor lightGrayColor] forKey:NSForegroundColorAttributeName]; + //init gray color for pid + attributes = [NSDictionary dictionaryWithObject:NSColor.grayColor forKey:NSForegroundColorAttributeName]; //search window // ->only for tasks, since dylibs in search window are handled elsewhere ('loaded in') @@ -327,7 +326,7 @@ NSAttributedString* initBinaryString(id item, BOOL isSearchWindow) { //init color for comma, etc // ->light gray - attributes = [NSDictionary dictionaryWithObject:[NSColor lightGrayColor] forKey:NSForegroundColorAttributeName]; + attributes = [NSDictionary dictionaryWithObject:NSColor.grayColor forKey:NSForegroundColorAttributeName]; //tasks //add comma string @@ -368,7 +367,7 @@ NSAttributedString* initBinaryString(id item, BOOL isSearchWindow) (YES != binary.notFound)) { //init color for closing - attributes = [NSDictionary dictionaryWithObject:[NSColor lightGrayColor] forKey:NSForegroundColorAttributeName]; + attributes = [NSDictionary dictionaryWithObject:NSColor.grayColor forKey:NSForegroundColorAttributeName]; //close string [taskString appendAttributedString:[[NSMutableAttributedString alloc] initWithString:@")" attributes:attributes]]; @@ -385,7 +384,7 @@ NSAttributedString* initBinaryString(id item, BOOL isSearchWindow) { //init color for comma, // ->light gray - attributes = [NSDictionary dictionaryWithObject:[NSColor lightGrayColor] forKey:NSForegroundColorAttributeName]; + attributes = [NSDictionary dictionaryWithObject:NSColor.grayColor forKey:NSForegroundColorAttributeName]; //add [taskString appendAttributedString:[[NSAttributedString alloc] initWithString:@", " attributes:attributes]]; @@ -395,7 +394,7 @@ NSAttributedString* initBinaryString(id item, BOOL isSearchWindow) { //init color for comma, etc // ->light gray - attributes = [NSDictionary dictionaryWithObject:[NSColor lightGrayColor] forKey:NSForegroundColorAttributeName]; + attributes = [NSDictionary dictionaryWithObject:NSColor.grayColor forKey:NSForegroundColorAttributeName]; //tasks //add comma string @@ -426,7 +425,7 @@ NSAttributedString* initBinaryString(id item, BOOL isSearchWindow) if(YES != [item isKindOfClass:[Task class]]) { //init color for closing - attributes = [NSDictionary dictionaryWithObject:[NSColor lightGrayColor] forKey:NSForegroundColorAttributeName]; + attributes = [NSDictionary dictionaryWithObject:NSColor.grayColor forKey:NSForegroundColorAttributeName]; //close string [taskString appendAttributedString:[[NSMutableAttributedString alloc] initWithString:@")" attributes:attributes]]; @@ -441,7 +440,7 @@ NSAttributedString* initBinaryString(id item, BOOL isSearchWindow) { //init color for closing // ->light gray - attributes = [NSDictionary dictionaryWithObject:[NSColor lightGrayColor] forKey:NSForegroundColorAttributeName]; + attributes = [NSDictionary dictionaryWithObject:NSColor.grayColor forKey:NSForegroundColorAttributeName]; //close string [taskString appendAttributedString:[[NSMutableAttributedString alloc] initWithString:@")" attributes:attributes]]; @@ -490,7 +489,7 @@ NSAttributedString* initLoadedInString(id item) //init color for 'loaded in...' // ->light gray - attributes = [NSDictionary dictionaryWithObject:[NSColor lightGrayColor] forKey:NSForegroundColorAttributeName]; + attributes = [NSDictionary dictionaryWithObject:NSColor.grayColor forKey:NSForegroundColorAttributeName]; //add dylib indicator //-> '(dylib, loaded in: ... ' @@ -583,8 +582,8 @@ NSTableCellView* createTaskView(NSTableView* tableView, id owner, Task* task) ((NSImageView*)[taskCell viewWithTag:TABLE_ROW_SIGNATURE_ICON]).image = getCodeSigningIcon(task.binary); //default - // ->(re)set main textfield's color to black - taskCell.textField.textColor = [NSColor blackColor]; + // ->(re)set main textfield's color + taskCell.textField.textColor = NSColor.controlTextColor; //set main text taskCell.textField.attributedStringValue = initBinaryString(task, [owner isKindOfClass:[SearchWindowController class]]); @@ -636,8 +635,8 @@ NSTableCellView* createDylibView(NSTableView* tableView, id owner, Binary* dylib ((NSImageView*)[dylibCell viewWithTag:TABLE_ROW_SIGNATURE_ICON]).image = getCodeSigningIcon(dylib); //default - // ->(re)set main textfield's color to black - dylibCell.textField.textColor = [NSColor blackColor]; + // ->(re)set main textfield's color + dylibCell.textField.textColor = NSColor.controlTextColor; //set main text // ->final arg is flag indicating normal or search window @@ -691,8 +690,8 @@ NSTableCellView* createFileView(NSTableView* tableView, id owner, File* file) } //default - // ->(re)set main textfield's color to black - fileCell.textField.textColor = [NSColor blackColor]; + // ->(re)set main textfield's color + fileCell.textField.textColor = NSColor.controlTextColor; //set main text // ->name @@ -731,8 +730,8 @@ NSTableCellView* createNetworkView(NSTableView* tableView, id owner, Connection* connectionCell.imageView.image = connection.icon; //default - // ->(re)set main textfield's color to black - connectionCell.textField.textColor = [NSColor blackColor]; + // ->(re)set main textfield's color + connectionCell.textField.textColor = NSColor.controlTextColor; //set main text // ->connection endpoints @@ -834,17 +833,17 @@ void configVTButton(NSTableCellView *itemCell, id owner, Binary* binary) //known 'good' files (0 positivies) if(0 == [binary.vtInfo[VT_RESULTS_POSITIVES] unsignedIntegerValue]) { - //(re)set title black - itemCell.textField.textColor = [NSColor blackColor]; + //(re)set title + itemCell.textField.textColor = NSColor.controlTextColor; - //set color (black) - stringAttributes[NSForegroundColorAttributeName] = [NSColor blackColor]; + //set color + stringAttributes[NSForegroundColorAttributeName] = NSColor.controlTextColor; //set string (vt ratio), with attributes [vtButton setAttributedTitle:[[NSAttributedString alloc] initWithString:vtDetectionRatio attributes:stringAttributes]]; //set color (gray) - stringAttributes[NSForegroundColorAttributeName] = [NSColor grayColor]; + stringAttributes[NSForegroundColorAttributeName] = NSColor.grayColor; //set selected text color [vtButton setAttributedAlternateTitle:[[NSAttributedString alloc] initWithString:vtDetectionRatio attributes:stringAttributes]]; diff --git a/Items/File.m b/Items/File.m index 7cbbda8..756752c 100644 --- a/Items/File.m +++ b/Items/File.m @@ -46,22 +46,29 @@ bail: -(void)setFileType { //results from 'file' cmd - NSString* results = nil; + NSMutableDictionary* results = nil; + + //output + NSString* output = nil; //array of parsed results NSArray* parsedResults = nil; //exec 'file' to get file type - results = [[NSString alloc] initWithData:execTask(FILE, @[self.path], YES) encoding:NSUTF8StringEncoding]; - if(nil == results) + results = execTask(FILE, @[self.path], YES); + if( (nil == results[EXIT_CODE]) || + (0 != [results[EXIT_CODE] integerValue]) ) { //bail goto bail; } + //convert stdout data to string + output = [[NSString alloc] initWithData:results[STDOUT] encoding:NSUTF8StringEncoding]; + //parse results // ->format: : - parsedResults = [results componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@":\n"]]; + parsedResults = [output componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]]; //sanity check // ->should be two items in array, and diff --git a/KKRow.m b/KKRow.m index 9902368..6e6ef6c 100644 --- a/KKRow.m +++ b/KKRow.m @@ -7,6 +7,7 @@ // #import "KKRow.h" +#import "Utilities.h" @implementation KKRow @@ -25,14 +26,27 @@ //make selection rect selectionRect = NSInsetRect(self.bounds, 2.5, 2.5); - //set stroke - [[NSColor colorWithCalibratedWhite:.65 alpha:1.0] setStroke]; - - //set fill - [[NSColor colorWithCalibratedWhite:.82 alpha:1.0] setFill]; + //dark mode highlight + if(YES == isDarkMode()) + { + //set stroke + [[NSColor colorWithCalibratedWhite:1.0 alpha:1.0] setStroke]; + + //set fill + [[NSColor colorWithCalibratedWhite:.65 alpha:1.0] setFill]; + } + //light mode highlight + else + { + //set stroke + [[NSColor colorWithCalibratedWhite:.65 alpha:1.0] setStroke]; + + //set fill + [[NSColor colorWithCalibratedWhite:.82 alpha:1.0] setFill]; + } //create selection path - // ->with rounded corners + // ...with rounded corners selectionPath = [NSBezierPath bezierPathWithRoundedRect:selectionRect xRadius:5 yRadius:5]; //fill diff --git a/PrefsWindowController.m b/PrefsWindowController.m index c9a79ed..f5af828 100644 --- a/PrefsWindowController.m +++ b/PrefsWindowController.m @@ -7,6 +7,7 @@ // +#import "Utilities.h" #import "AppDelegate.h" #import "PrefsWindowController.h" @@ -30,20 +31,24 @@ //automatically invoked when window is loaded -// ->set to white -(void)windowDidLoad { //super [super windowDidLoad]; - //make white - [self.window setBackgroundColor: NSColor.whiteColor]; + //no dark mode? + // make window white + if(YES != isDarkMode()) + { + //make white + self.window.backgroundColor = NSColor.whiteColor; + } //make button selected [self.window makeFirstResponder:self.okButton]; //capture existing prefs - // ->needed to trigger re-saves + // needed to trigger re-saves [self captureExistingPrefs]; return; diff --git a/RequestRootWindowController.m b/RequestRootWindowController.m index 8a6088d..4c42722 100644 --- a/RequestRootWindowController.m +++ b/RequestRootWindowController.m @@ -45,8 +45,13 @@ //super [super windowDidLoad]; - //make white - [self.window setBackgroundColor: NSColor.whiteColor]; + //no dark mode? + // make window white + if(YES != isDarkMode()) + { + //make white + self.window.backgroundColor = NSColor.whiteColor; + } //set version sting //[self.versionLabel setStringValue:[NSString stringWithFormat:@"version: %@", getAppVersion()]]; @@ -118,7 +123,7 @@ installArgs[3] = NULL; //reset text color - self.statusMsg.textColor = [NSColor blackColor]; + self.statusMsg.textColor = NSColor.controlTextColor; //create authorization ref osStatus = AuthorizationCreate(NULL, kAuthorizationEmptyEnvironment, kAuthorizationFlagDefaults, &authorizationRef); diff --git a/ResultsWindowController.m b/ResultsWindowController.m index faee940..13f6efd 100644 --- a/ResultsWindowController.m +++ b/ResultsWindowController.m @@ -33,8 +33,13 @@ //super [super windowDidLoad]; - //make white - [self.window setBackgroundColor: NSColor.whiteColor]; + //no dark mode? + // make window white + if(YES != isDarkMode()) + { + //make white + self.window.backgroundColor = NSColor.whiteColor; + } //set details self.detailsLabel.stringValue = self.details; diff --git a/SearchWindowController.m b/SearchWindowController.m index 69fdd75..5fe5da9 100644 --- a/SearchWindowController.m +++ b/SearchWindowController.m @@ -532,8 +532,8 @@ bail: //maks self.overlay.layer.masksToBounds = YES; - //set overlay's view color to black - self.overlay.layer.backgroundColor = [NSColor grayColor].CGColor; + //set overlay's view color to gray + self.overlay.layer.backgroundColor = NSColor.grayColor.CGColor; //make it semi-transparent self.overlay.alphaValue = 0.95; diff --git a/Task.m b/Task.m index 43d0ad2..f323754 100644 --- a/Task.m +++ b/Task.m @@ -374,7 +374,7 @@ bail: }] mutableCopy]; //reload bottom pane now - // ->this will only reload if new task is the currently selected one, etc + // note: this will only reload if new task is the currently selected one, etc [((AppDelegate*)[[NSApplication sharedApplication] delegate]) reloadBottomPane:self itemView:DYLIBS_VIEW]; }//sync diff --git a/TaskExplorer.xcodeproj/project.pbxproj b/TaskExplorer.xcodeproj/project.pbxproj index 0ba6e20..b1f2030 100755 --- a/TaskExplorer.xcodeproj/project.pbxproj +++ b/TaskExplorer.xcodeproj/project.pbxproj @@ -18,10 +18,8 @@ 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 */; }; - 7DB0FCA21C7AECB300D2CE0D /* Exception.m in Sources */ = {isa = PBXBuildFile; fileRef = CD7B9F4F1ACB9A8400DF3C71 /* Exception.m */; }; CD001B381AB903040089014A /* logo.png in Resources */ = {isa = PBXBuildFile; fileRef = CD001B351AB903040089014A /* logo.png */; }; CD001B391AB903040089014A /* logoApple.png in Resources */ = {isa = PBXBuildFile; fileRef = CD001B361AB903040089014A /* logoApple.png */; }; - CD02194F1AD34D8B005148A2 /* AboutWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CD02194D1AD34D8B005148A2 /* AboutWindow.xib */; }; CD0219501AD34D8B005148A2 /* PrefsWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CD02194E1AD34D8B005148A2 /* PrefsWindow.xib */; }; CD0219531AD34D9A005148A2 /* AboutWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = CD0219521AD34D9A005148A2 /* AboutWindowController.m */; }; CD0219581AD37748005148A2 /* signed2.png in Resources */ = {isa = PBXBuildFile; fileRef = CD0219561AD37748005148A2 /* signed2.png */; }; @@ -29,6 +27,15 @@ CD02195C1AD38823005148A2 /* kkRowCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CD02195B1AD38823005148A2 /* kkRowCell.m */; }; CD02195E1AD39A74005148A2 /* ResultsWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CD02195D1AD39A74005148A2 /* ResultsWindow.xib */; }; CD0219611AD39A83005148A2 /* ResultsWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = CD0219601AD39A83005148A2 /* ResultsWindowController.m */; }; + CD1508D221BA4A190081F1AF /* patrons.txt in Resources */ = {isa = PBXBuildFile; fileRef = CD1508D121BA4A190081F1AF /* patrons.txt */; }; + CD1508D421BA4A8A0081F1AF /* AboutWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CD1508D321BA4A890081F1AF /* AboutWindow.xib */; }; + CD1508D921BA4B9D0081F1AF /* UpdateWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = CD1508D521BA4B9C0081F1AF /* UpdateWindowController.m */; }; + CD1508DA21BA4B9D0081F1AF /* Update.m in Sources */ = {isa = PBXBuildFile; fileRef = CD1508D821BA4B9D0081F1AF /* Update.m */; }; + CD1508DC21BA4BAC0081F1AF /* UpdateWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CD1508DB21BA4BAC0081F1AF /* UpdateWindow.xib */; }; + CD1D14EF21B7A67600FF7F4B /* Sentry.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = CD1D14EB21B7A5DB00FF7F4B /* Sentry.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + CD1D14F121B7A69300FF7F4B /* Sentry.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = CD1D14EB21B7A5DB00FF7F4B /* Sentry.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + CD1D14F321B8F2FC00FF7F4B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = CD1D14F221B8F2FC00FF7F4B /* Assets.xcassets */; }; + CD1D14F421B8F2FC00FF7F4B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = CD1D14F221B8F2FC00FF7F4B /* Assets.xcassets */; }; CD3F4CE81AF5CF68002A2647 /* TaskEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = CD3F4CE61AF5CF68002A2647 /* TaskEnumerator.m */; }; CD3F4CEB1AF6D948002A2647 /* OrderedDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = CD3F4CEA1AF6D948002A2647 /* OrderedDictionary.m */; }; CD3F4CFA1AF71B58002A2647 /* Binary.m in Sources */ = {isa = PBXBuildFile; fileRef = CD3F4CF31AF71B58002A2647 /* Binary.m */; }; @@ -48,7 +55,7 @@ CD4D54281B2EAC7800008030 /* NetworkInfoWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CD4D54271B2EAC7800008030 /* NetworkInfoWindow.xib */; }; CD4D543F1B2FF32C00008030 /* signedAppleIcon.png in Resources */ = {isa = PBXBuildFile; fileRef = CD4D543E1B2FF32C00008030 /* signedAppleIcon.png */; }; CD6095731A87067D00E091CD /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CD6095721A87067D00E091CD /* Security.framework */; }; - CD6AFB7F1B4736DF00D42C34 /* flatIcon.png in Resources */ = {isa = PBXBuildFile; fileRef = CD6AFB7E1B4736DF00D42C34 /* flatIcon.png */; }; + CD6AFB7F1B4736DF00D42C34 /* teIcon.png in Resources */ = {isa = PBXBuildFile; fileRef = CD6AFB7E1B4736DF00D42C34 /* teIcon.png */; }; CD6AFB811B4737AC00D42C34 /* arrow.png in Resources */ = {isa = PBXBuildFile; fileRef = CD6AFB801B4737AC00D42C34 /* arrow.png */; }; CD6AFB831B4BAA2100D42C34 /* refreshIcon.png in Resources */ = {isa = PBXBuildFile; fileRef = CD6AFB821B4BAA2100D42C34 /* refreshIcon.png */; }; CD6AFB861B4BABB200D42C34 /* refreshIconBG.png in Resources */ = {isa = PBXBuildFile; fileRef = CD6AFB841B4BABB200D42C34 /* refreshIconBG.png */; }; @@ -59,7 +66,6 @@ CD74A07B1B7F170B00A8AAD3 /* FlaggedItemWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = CD74A0791B7F170B00A8AAD3 /* FlaggedItemWindowController.m */; }; CD74A07E1B81B5D400A8AAD3 /* FlaggedItems.xib in Resources */ = {isa = PBXBuildFile; fileRef = CD74A07D1B81B5D400A8AAD3 /* FlaggedItems.xib */; }; CD7B9F4D1ACB959200DF3C71 /* logoAppleOver.png in Resources */ = {isa = PBXBuildFile; fileRef = CD7B9F4C1ACB959200DF3C71 /* logoAppleOver.png */; }; - CD7B9F501ACB9A8400DF3C71 /* Exception.m in Sources */ = {isa = PBXBuildFile; fileRef = CD7B9F4F1ACB9A8400DF3C71 /* Exception.m */; }; CD7B9FA41ACBCFAD00DF3C71 /* spotlightIcon.png in Resources */ = {isa = PBXBuildFile; fileRef = CD7B9FA31ACBCFAD00DF3C71 /* spotlightIcon.png */; }; CD7B9FA71ACCAE5E00DF3C71 /* startScanOver.png in Resources */ = {isa = PBXBuildFile; fileRef = CD7B9FA51ACCAE5E00DF3C71 /* startScanOver.png */; }; CD7B9FA81ACCAE5E00DF3C71 /* stopScanOver.png in Resources */ = {isa = PBXBuildFile; fileRef = CD7B9FA61ACCAE5E00DF3C71 /* stopScanOver.png */; }; @@ -85,7 +91,6 @@ CDA81D701A95B4E9009790E2 /* stopScan.png in Resources */ = {isa = PBXBuildFile; fileRef = CDA81D661A95B4E9009790E2 /* stopScan.png */; }; CDA81D711A95B4E9009790E2 /* stopScanBG.png in Resources */ = {isa = PBXBuildFile; fileRef = CDA81D671A95B4E9009790E2 /* stopScanBG.png */; }; CDA81D721A95B4E9009790E2 /* virus.png in Resources */ = {isa = PBXBuildFile; fileRef = CDA81D681A95B4E9009790E2 /* virus.png */; }; - CDA81D741A95B4FB009790E2 /* icon.iconset in Resources */ = {isa = PBXBuildFile; fileRef = CDA81D731A95B4FB009790E2 /* icon.iconset */; }; CDA81D7B1A95D29B009790E2 /* TaskTableController.m in Sources */ = {isa = PBXBuildFile; fileRef = CDA81D7A1A95D29B009790E2 /* TaskTableController.m */; }; CDA81DC91A9960A3009790E2 /* info.png in Resources */ = {isa = PBXBuildFile; fileRef = CDA81DC51A9960A3009790E2 /* info.png */; }; CDA81DCA1A9960A3009790E2 /* infoBG.png in Resources */ = {isa = PBXBuildFile; fileRef = CDA81DC61A9960A3009790E2 /* infoBG.png */; }; @@ -140,6 +145,28 @@ /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ + CD1D14EE21B7A65B00FF7F4B /* Copy Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + CD1D14EF21B7A67600FF7F4B /* Sentry.framework in Copy Frameworks */, + ); + name = "Copy Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + CD1D14F021B7A68900FF7F4B /* Copy Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + CD1D14F121B7A69300FF7F4B /* Sentry.framework in Copy Frameworks */, + ); + name = "Copy Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; CDA5F6B91B16D805003CE340 /* Embed XPC Services */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; @@ -173,7 +200,6 @@ 7DAA78081B903BF1004840B9 /* CustomTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomTextField.m; sourceTree = ""; }; CD001B351AB903040089014A /* logo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = logo.png; path = images/logo.png; sourceTree = SOURCE_ROOT; }; CD001B361AB903040089014A /* logoApple.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = logoApple.png; path = images/logoApple.png; sourceTree = SOURCE_ROOT; }; - CD02194D1AD34D8B005148A2 /* AboutWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = AboutWindow.xib; path = UI/AboutWindow.xib; sourceTree = ""; }; CD02194E1AD34D8B005148A2 /* PrefsWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = PrefsWindow.xib; path = UI/PrefsWindow.xib; sourceTree = ""; }; CD0219511AD34D9A005148A2 /* AboutWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AboutWindowController.h; sourceTree = ""; }; CD0219521AD34D9A005148A2 /* AboutWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AboutWindowController.m; sourceTree = ""; }; @@ -184,6 +210,15 @@ CD02195D1AD39A74005148A2 /* ResultsWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = ResultsWindow.xib; path = UI/ResultsWindow.xib; sourceTree = ""; }; CD02195F1AD39A83005148A2 /* ResultsWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResultsWindowController.h; sourceTree = ""; }; CD0219601AD39A83005148A2 /* ResultsWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ResultsWindowController.m; sourceTree = ""; }; + CD1508D121BA4A190081F1AF /* patrons.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = patrons.txt; sourceTree = SOURCE_ROOT; }; + CD1508D321BA4A890081F1AF /* AboutWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = AboutWindow.xib; path = UI/AboutWindow.xib; sourceTree = ""; }; + CD1508D521BA4B9C0081F1AF /* UpdateWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UpdateWindowController.m; sourceTree = SOURCE_ROOT; }; + CD1508D621BA4B9C0081F1AF /* Update.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Update.h; sourceTree = SOURCE_ROOT; }; + CD1508D721BA4B9D0081F1AF /* UpdateWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UpdateWindowController.h; sourceTree = SOURCE_ROOT; }; + CD1508D821BA4B9D0081F1AF /* Update.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Update.m; sourceTree = SOURCE_ROOT; }; + CD1508DB21BA4BAC0081F1AF /* UpdateWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = UpdateWindow.xib; path = UI/UpdateWindow.xib; sourceTree = ""; }; + CD1D14EB21B7A5DB00FF7F4B /* Sentry.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sentry.framework; path = Carthage/Build/Mac/Sentry.framework; sourceTree = ""; }; + CD1D14F221B8F2FC00FF7F4B /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = SOURCE_ROOT; }; CD3F4CE61AF5CF68002A2647 /* TaskEnumerator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TaskEnumerator.m; sourceTree = SOURCE_ROOT; }; CD3F4CE71AF5CF68002A2647 /* TaskEnumerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TaskEnumerator.h; sourceTree = SOURCE_ROOT; }; CD3F4CE91AF6D948002A2647 /* OrderedDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OrderedDictionary.h; path = 3rdParty/OrderedDictionary.h; sourceTree = ""; }; @@ -211,7 +246,7 @@ CD4D54271B2EAC7800008030 /* NetworkInfoWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = NetworkInfoWindow.xib; path = UI/NetworkInfoWindow.xib; sourceTree = ""; }; CD4D543E1B2FF32C00008030 /* signedAppleIcon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = signedAppleIcon.png; path = images/signedAppleIcon.png; sourceTree = SOURCE_ROOT; }; CD6095721A87067D00E091CD /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; - CD6AFB7E1B4736DF00D42C34 /* flatIcon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = flatIcon.png; path = images/flatIcon.png; sourceTree = SOURCE_ROOT; }; + CD6AFB7E1B4736DF00D42C34 /* teIcon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = teIcon.png; path = images/teIcon.png; sourceTree = SOURCE_ROOT; }; CD6AFB801B4737AC00D42C34 /* arrow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = arrow.png; path = images/arrow.png; sourceTree = SOURCE_ROOT; }; CD6AFB821B4BAA2100D42C34 /* refreshIcon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = refreshIcon.png; path = images/refreshIcon.png; sourceTree = SOURCE_ROOT; }; CD6AFB841B4BABB200D42C34 /* refreshIconBG.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = refreshIconBG.png; path = images/refreshIconBG.png; sourceTree = SOURCE_ROOT; }; @@ -224,8 +259,6 @@ CD74A0791B7F170B00A8AAD3 /* FlaggedItemWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FlaggedItemWindowController.m; sourceTree = ""; }; CD74A07D1B81B5D400A8AAD3 /* FlaggedItems.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = FlaggedItems.xib; path = UI/FlaggedItems.xib; sourceTree = ""; }; CD7B9F4C1ACB959200DF3C71 /* logoAppleOver.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = logoAppleOver.png; path = images/logoAppleOver.png; sourceTree = SOURCE_ROOT; }; - CD7B9F4E1ACB9A8400DF3C71 /* Exception.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Exception.h; sourceTree = SOURCE_ROOT; }; - CD7B9F4F1ACB9A8400DF3C71 /* Exception.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Exception.m; sourceTree = SOURCE_ROOT; }; CD7B9FA31ACBCFAD00DF3C71 /* spotlightIcon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = spotlightIcon.png; path = images/spotlightIcon.png; sourceTree = SOURCE_ROOT; }; CD7B9FA51ACCAE5E00DF3C71 /* startScanOver.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = startScanOver.png; path = images/startScanOver.png; sourceTree = SOURCE_ROOT; }; CD7B9FA61ACCAE5E00DF3C71 /* stopScanOver.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = stopScanOver.png; path = images/stopScanOver.png; sourceTree = SOURCE_ROOT; }; @@ -262,7 +295,6 @@ CDA81D661A95B4E9009790E2 /* stopScan.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = stopScan.png; path = images/stopScan.png; sourceTree = SOURCE_ROOT; }; CDA81D671A95B4E9009790E2 /* stopScanBG.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = stopScanBG.png; path = images/stopScanBG.png; sourceTree = SOURCE_ROOT; }; CDA81D681A95B4E9009790E2 /* virus.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = virus.png; path = images/virus.png; sourceTree = SOURCE_ROOT; }; - CDA81D731A95B4FB009790E2 /* icon.iconset */ = {isa = PBXFileReference; lastKnownFileType = folder.iconset; name = icon.iconset; path = images/icon.iconset; sourceTree = SOURCE_ROOT; }; CDA81D791A95D29B009790E2 /* TaskTableController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TaskTableController.h; sourceTree = ""; }; CDA81D7A1A95D29B009790E2 /* TaskTableController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TaskTableController.m; sourceTree = ""; }; CDA81DC51A9960A3009790E2 /* info.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = info.png; path = images/info.png; sourceTree = SOURCE_ROOT; }; @@ -385,6 +417,7 @@ 1D21BC4D172AF43D009D1CFD /* Frameworks */ = { isa = PBXGroup; children = ( + CD1D14EB21B7A5DB00FF7F4B /* Sentry.framework */, CD7FBF241B6EDAC000578C5D /* SystemConfiguration.framework */, CDF08CE91AC8D97B009B3423 /* Quartz.framework */, CD6095721A87067D00E091CD /* Security.framework */, @@ -407,15 +440,17 @@ 1D21BC54172AF43D009D1CFD /* TaskExplorer */ = { isa = PBXGroup; children = ( + CD1D14F221B8F2FC00FF7F4B /* Assets.xcassets */, CD3F4CE61AF5CF68002A2647 /* TaskEnumerator.m */, + CD1508D621BA4B9C0081F1AF /* Update.h */, + CD1508D821BA4B9D0081F1AF /* Update.m */, + CD1508D721BA4B9D0081F1AF /* UpdateWindowController.h */, + CD1508D521BA4B9C0081F1AF /* UpdateWindowController.m */, CD3F4CE71AF5CF68002A2647 /* TaskEnumerator.h */, CDD248391AF5CC4D00232422 /* Task.h */, CDD2483A1AF5CC4D00232422 /* Task.m */, - CD7B9F4E1ACB9A8400DF3C71 /* Exception.h */, - CD7B9F4F1ACB9A8400DF3C71 /* Exception.m */, CDF08CC71AC4C678009B3423 /* PrefsWindowController.h */, CDF08CC81AC4C678009B3423 /* PrefsWindowController.m */, - CDA81D731A95B4FB009790E2 /* icon.iconset */, CDA81D561A95B4B4009790E2 /* MainMenu.xib */, CDF08CC41AC46E75009B3423 /* VTButton.h */, CDF08CC51AC46E75009B3423 /* VTButton.m */, @@ -434,6 +469,7 @@ 1D21BC55172AF43D009D1CFD /* Supporting Files */ = { isa = PBXGroup; children = ( + CD1508D121BA4A190081F1AF /* patrons.txt */, CDA81D541A95B4B4009790E2 /* InfoPlist.strings */, CDA81D581A95B4B4009790E2 /* TaskExplorer-Info.plist */, CDA81D591A95B4B4009790E2 /* TaskExplorer-Prefix.pch */, @@ -466,7 +502,7 @@ CD6AFB851B4BABB200D42C34 /* refreshIconOver.png */, CD6AFB821B4BAA2100D42C34 /* refreshIcon.png */, CD6AFB801B4737AC00D42C34 /* arrow.png */, - CD6AFB7E1B4736DF00D42C34 /* flatIcon.png */, + CD6AFB7E1B4736DF00D42C34 /* teIcon.png */, CDEE77031B41220300763826 /* search.png */, CDEE77041B41220300763826 /* searchBG.png */, CDEE77051B41220300763826 /* searchOver.png */, @@ -587,6 +623,8 @@ CDA81E621AA020E8009790E2 /* UI */ = { isa = PBXGroup; children = ( + CD1508DB21BA4BAC0081F1AF /* UpdateWindow.xib */, + CD1508D321BA4A890081F1AF /* AboutWindow.xib */, 7D2F567B1B81BEAB00C7D85E /* SearchWindow.xib */, CD74A07D1B81B5D400A8AAD3 /* FlaggedItems.xib */, CD4D54271B2EAC7800008030 /* NetworkInfoWindow.xib */, @@ -596,7 +634,6 @@ CD3F4D131AF85088002A2647 /* FlatView.xib */, CD3F4CFE1AF72BC4002A2647 /* TaskInfoWindow.xib */, CD02195D1AD39A74005148A2 /* ResultsWindow.xib */, - CD02194D1AD34D8B005148A2 /* AboutWindow.xib */, CD02194E1AD34D8B005148A2 /* PrefsWindow.xib */, CDF08CE11AC88E0F009B3423 /* VTInfoWindow.xib */, CDA81E641AA020FD009790E2 /* FileInfoWindow.xib */, @@ -630,6 +667,7 @@ 1D21BC48172AF43D009D1CFD /* Frameworks */, 1D21BC49172AF43D009D1CFD /* Resources */, CDA5F6B91B16D805003CE340 /* Embed XPC Services */, + CD1D14EE21B7A65B00FF7F4B /* Copy Frameworks */, ); buildRules = ( ); @@ -648,6 +686,7 @@ CDA5F6A91B16D805003CE340 /* Sources */, CDA5F6AA1B16D805003CE340 /* Frameworks */, CDA5F6AB1B16D805003CE340 /* Resources */, + CD1D14F021B7A68900FF7F4B /* Copy Frameworks */, ); buildRules = ( ); @@ -713,6 +752,7 @@ CDEE77081B41220300763826 /* searchOver.png in Resources */, CD74A07E1B81B5D400A8AAD3 /* FlaggedItems.xib in Resources */, CDA81D6B1A95B4E9009790E2 /* show.png in Resources */, + CD1508D221BA4A190081F1AF /* patrons.txt in Resources */, CD74A06D1B7DA71200A8AAD3 /* flaggedBG.png in Resources */, CDF08CF31ACA6864009B3423 /* browserIcon.png in Resources */, CDEE77061B41220300763826 /* search.png in Resources */, @@ -741,10 +781,13 @@ CD7B9FA71ACCAE5E00DF3C71 /* startScanOver.png in Resources */, CDF08CC11AC3E8B0009B3423 /* showOver.png in Resources */, CD4D54241B2D082300008030 /* DylibInfoWindow.xib in Resources */, - CD6AFB7F1B4736DF00D42C34 /* flatIcon.png in Resources */, + CD6AFB7F1B4736DF00D42C34 /* teIcon.png in Resources */, + CD1508DC21BA4BAC0081F1AF /* UpdateWindow.xib in Resources */, CD6AFB811B4737AC00D42C34 /* arrow.png in Resources */, CDA81DCC1A9960A3009790E2 /* virusTotalBG.png in Resources */, CD74A06E1B7DA71200A8AAD3 /* flaggedOver.png in Resources */, + CD1508D421BA4A8A0081F1AF /* AboutWindow.xib in Resources */, + CD1D14F321B8F2FC00FF7F4B /* Assets.xcassets in Resources */, CD001B381AB903040089014A /* logo.png in Resources */, CDF08CCF1AC4C6E8009B3423 /* settingsOver.png in Resources */, CDAB98A31AEB413C00C75B4B /* dylibIcon.png in Resources */, @@ -767,9 +810,7 @@ CDA81D721A95B4E9009790E2 /* virus.png in Resources */, CD6AFB831B4BAA2100D42C34 /* refreshIcon.png in Resources */, CDA81DC91A9960A3009790E2 /* info.png in Resources */, - CDA81D741A95B4FB009790E2 /* icon.iconset in Resources */, CDA81D6E1A95B4E9009790E2 /* startScan.png in Resources */, - CD02194F1AD34D8B005148A2 /* AboutWindow.xib in Resources */, CDA81DCA1A9960A3009790E2 /* infoBG.png in Resources */, CDF08CD11AC4C6E8009B3423 /* settings.png in Resources */, CDA81DD31A9970A0009790E2 /* signed.png in Resources */, @@ -783,6 +824,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + CD1D14F421B8F2FC00FF7F4B /* Assets.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -793,6 +835,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + CD1508DA21BA4B9D0081F1AF /* Update.m in Sources */, CD3F4CE81AF5CF68002A2647 /* TaskEnumerator.m in Sources */, CD4D54221B2CE6F200008030 /* NSMutableArray+QueueAdditions.m in Sources */, 7DA5CA0F1C7AA8CB00627DD7 /* MachO.m in Sources */, @@ -817,9 +860,9 @@ CD3F4CFA1AF71B58002A2647 /* Binary.m in Sources */, CD3F4CFC1AF71B58002A2647 /* File.m in Sources */, CDA81D5E1A95B4B4009790E2 /* main.m in Sources */, - CD7B9F501ACB9A8400DF3C71 /* Exception.m in Sources */, CDD248341AF5947300232422 /* TAAdaptiveSpaceItem.m in Sources */, CD0219531AD34D9A005148A2 /* AboutWindowController.m in Sources */, + CD1508D921BA4B9D0081F1AF /* UpdateWindowController.m in Sources */, CDF08CC61AC46E75009B3423 /* VTButton.m in Sources */, CD3F4CFB1AF71B58002A2647 /* Connection.m in Sources */, CDD248351AF5947300232422 /* TAAdaptiveSpaceItemView.m in Sources */, @@ -834,7 +877,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 7DB0FCA21C7AECB300D2CE0D /* Exception.m in Sources */, CDA5F6B61B16D805003CE340 /* main.m in Sources */, CDA5F6B41B16D805003CE340 /* remoteTaskService.m in Sources */, 7D2A4C6C1BC789070029A284 /* Utilities.m in Sources */, @@ -953,12 +995,19 @@ 1D21BC69172AF43D009D1CFD /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; 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; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "TaskExplorer-Prefix.pch"; INFOPLIST_FILE = "TaskExplorer-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.objective-see.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = TaskExplorer; PROVISIONING_PROFILE = ""; @@ -969,12 +1018,19 @@ 1D21BC6A172AF43D009D1CFD /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; 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; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "TaskExplorer-Prefix.pch"; INFOPLIST_FILE = "TaskExplorer-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.objective-see.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = TaskExplorer; PROVISIONING_PROFILE = ""; @@ -994,6 +1050,10 @@ COMBINE_HIDPI_IMAGES = YES; DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); GCC_NO_COMMON_BLOCKS = YES; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", @@ -1004,6 +1064,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; INFOPLIST_FILE = remoteTaskService/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ""; MACOSX_DEPLOYMENT_TARGET = 10.10; MTL_ENABLE_DEBUG_INFO = YES; PRODUCT_BUNDLE_IDENTIFIER = "com.objective-see.$(PRODUCT_NAME:rfc1034identifier)"; @@ -1025,12 +1086,17 @@ COPY_PHASE_STRIP = NO; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; INFOPLIST_FILE = remoteTaskService/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ""; MACOSX_DEPLOYMENT_TARGET = 10.10; MTL_ENABLE_DEBUG_INFO = NO; PRODUCT_BUNDLE_IDENTIFIER = "com.objective-see.$(PRODUCT_NAME:rfc1034identifier)"; diff --git a/TaskExplorer.xcodeproj/project.xcworkspace/xcuserdata/patrick.xcuserdatad/UserInterfaceState.xcuserstate b/TaskExplorer.xcodeproj/project.xcworkspace/xcuserdata/patrick.xcuserdatad/UserInterfaceState.xcuserstate index cf288de936b66c9e58e2302c1b0c10c9081b84d7..793d3ed71fc8b948d64057b01de1cfad62d58449 100644 GIT binary patch literal 56515 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 Z3GJM=6EhalqN4bzfh5!Z=Fd)z{{z&7URVGC literal 21755 zcmc(H2YggT*Z0hA>B*+|WOtKn0%_Yz`X<>>q=(+(k}PB;Bw=?$i|AYw5wXz~r6i$< zh!jN;6ahs3ufnKS2{IcMfhXsok4 zT}tH%gb{^k#2^-NKAexw$kb^zhtu9rKQgsp!X371mvdCA)lpq*hsQ%xT@8(42;aA6 zODGkFe2^~+M-eCzrK1eg1NB6iC<|qy9F&WCq28zu>Wgke{ZM~201ZTg&|owKRidG2 zG#Z0$N43a~?m&}K9de*qs2Saj=Ab2LDO!e>qsP$WXa#x#ZA079bLe@r1HFJ=L_5(- zXcyXx_Mrpl4fHlTicX^U(MRZ0^f~$hUBL)rOko-`n8h6S!M@lJ`{Mu{jKgpwj=}Lb z3FqKkti&p;#u{9Ri*PY6!4_PBd*R-=5AKVH;}Liy9)+v$?YIWtf$MPtz8e$F<2m>q zJRd)TAH}QiYP<%w;8xs*H{vaL2i}ce#{2Ob_#i%w&*1m*S^NS15PyWvON`#^$4|?T28H`R#9uIb<`GWE47WsJE$isCTLNs1K=+sB_fE)OqR?>Qm}7>I>>y>Kb*O`i;6lBO22_v_Bn8htTnK z0-Z=F(aCfsokeHUIp_$TORH%kT}WH#3c43PkRC)2rbo~t>9O<#x|*(~8|kUEgPuh< z(|6K@UPLdZm(WY;W%P3TG5T?O9lf63KtDxqq_@z|(a+Pn=-u=_dO!Ud{UiMg{VV+k z{U<{+4CBlAF+of)6UKxy(M$}Jz$7vnG&X)u`qp@ zzRUn-AXCWB%K<^g6Ivz&R1 zd7N3ttY;z>=Je__Z5_H*_E`vv+_ zPR6Bi*_@iwbNO5`XW=TizT6;g2se@&#f|3bxdyJ0o60#jC+FgtxM|#UZU#4#o5eMA zbGiGtdEEWnqudJa3GPX5CAW%O&8^{{<~DK9aGSXoxt-ig+%E2Q?f~}&_ZIgKcaHm* zJI{T>eac|xCM8Xn| z_z+*>NBl{^29%7XNCqUtpj4Db0!a{${eT*d#FD`zeY^l~udivCUg5A#u~kWmy7o8J zI-#tg-sNbhtFt+(D$3Qy@^Y;?+oH6TWoye!Wk9Q1m0e*rYAmH?YHfKb5G(_LfsPuR z!&cKlw-=7HN|M#J6S4cweumZCr#9L8)WA6H6YbEiBpIrkt6iY0yGN{�r4!VGM0( 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 diff --git a/TaskExplorer.xcodeproj/xcuserdata/patrick.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/TaskExplorer.xcodeproj/xcuserdata/patrick.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist deleted file mode 100644 index 897e481..0000000 --- a/TaskExplorer.xcodeproj/xcuserdata/patrick.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ /dev/null @@ -1,395 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TaskExplorer.xcodeproj/xcuserdata/patrick.xcuserdatad/xcschemes/TaskExplorer.xcscheme b/TaskExplorer.xcodeproj/xcuserdata/patrick.xcuserdatad/xcschemes/TaskExplorer.xcscheme index ebcae91..8389691 100644 --- a/TaskExplorer.xcodeproj/xcuserdata/patrick.xcuserdatad/xcschemes/TaskExplorer.xcscheme +++ b/TaskExplorer.xcodeproj/xcuserdata/patrick.xcuserdatad/xcschemes/TaskExplorer.xcscheme @@ -7,10 +7,10 @@ buildImplicitDependencies = "YES"> + shouldUseLaunchSchemeArgsEnv = "YES"> @@ -22,15 +22,19 @@ ReferencedContainer = "container:TaskExplorer.xcodeproj"> + + @@ -53,10 +57,10 @@ diff --git a/TaskExplorer.xcodeproj/xcuserdata/patrick.xcuserdatad/xcschemes/remoteTaskService.xcscheme b/TaskExplorer.xcodeproj/xcuserdata/patrick.xcuserdatad/xcschemes/remoteTaskService.xcscheme index 68fb558..51895e0 100644 --- a/TaskExplorer.xcodeproj/xcuserdata/patrick.xcuserdatad/xcschemes/remoteTaskService.xcscheme +++ b/TaskExplorer.xcodeproj/xcuserdata/patrick.xcuserdatad/xcschemes/remoteTaskService.xcscheme @@ -1,7 +1,7 @@ + version = "2.0"> @@ -23,10 +23,10 @@ + shouldUseLaunchSchemeArgsEnv = "YES"> @@ -38,34 +38,42 @@ ReferencedContainer = "container:TaskExplorer.xcodeproj"> + + - + debugServiceExtension = "internal" + allowLocationSimulation = "YES" + launchAutomaticallySubstyle = "2"> + + + - + - + + - + + + + - - - - + + + + - + - - + + + - + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -52,11 +115,11 @@ - + - - + + diff --git a/UI/RequestRootWindow.xib b/UI/RequestRootWindow.xib index 152955e..443baa2 100644 --- a/UI/RequestRootWindow.xib +++ b/UI/RequestRootWindow.xib @@ -1,8 +1,9 @@ - - + + - + + @@ -17,20 +18,22 @@ - - + + - + - + + + @@ -39,6 +42,7 @@ - + + + + + + + + + + + + + + + + + diff --git a/Update.h b/Update.h new file mode 100644 index 0000000..d4c7633 --- /dev/null +++ b/Update.h @@ -0,0 +1,26 @@ +// +// file: Update.h +// project: lulu (shared) +// description: checks for new versions of LuLu (header) +// +// created by Patrick Wardle +// copyright (c) 2017 Objective-See. All rights reserved. +// + + +#ifndef Update_h +#define Update_h + +@import Cocoa; +@import Foundation; + +@interface Update : NSObject + +//check for an update +// will invoke app delegate method to update UI when check completes +-(void)checkForUpdate:(void (^)(NSUInteger result, NSString* latestVersion))completionHandler; + +@end + + +#endif /* Update_h */ diff --git a/Update.m b/Update.m new file mode 100644 index 0000000..3b77e1a --- /dev/null +++ b/Update.m @@ -0,0 +1,97 @@ +// +// file: Update.m +// project: lulu (shared) +// description: checks for new versions of LuLu +// +// created by Patrick Wardle +// copyright (c) 2017 Objective-See. All rights reserved. +// + +#import "Consts.h" +#import "Update.h" +#import "Utilities.h" +#import "AppDelegate.h" + + +@implementation Update + +//check for an update +// ->will invoke app delegate method to update UI when check completes +-(void)checkForUpdate:(void (^)(NSUInteger result, NSString* latestVersion))completionHandler +{ + //latest version + __block NSString* latestVersion = nil; + + //result + __block NSInteger result = -1; + + //get latest version in background + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + + //grab latest version + latestVersion = [self getLatestVersion]; + if(nil != latestVersion) + { + //check + result = (NSOrderedAscending == [getAppVersion() compare:latestVersion options:NSNumericSearch]); + } + + //invoke app delegate method + // ->will update UI/show popup if necessart + dispatch_async(dispatch_get_main_queue(), + ^{ + completionHandler(result, latestVersion); + }); + + }); + + return; +} + +//query interwebz to get latest version +-(NSString*)getLatestVersion +{ + //product version(s) data + NSData* productsVersionData = nil; + + //version dictionary + NSDictionary* productsVersionDictionary = nil; + + //latest version + NSString* latestVersion = nil; + + //get version from remote URL + productsVersionData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:PRODUCT_VERSIONS_URL]]; + if(nil == productsVersionData) + { + //bail + goto bail; + } + + //convert JSON to dictionary + // ->wrap as may throw exception + @try + { + //convert + productsVersionDictionary = [NSJSONSerialization JSONObjectWithData:productsVersionData options:0 error:nil]; + if(nil == productsVersionDictionary) + { + //bail + goto bail; + } + } + @catch(NSException* exception) + { + //bail + goto bail; + } + + //extract latest version + latestVersion = [[productsVersionDictionary objectForKey:PRODUCT_NAME] objectForKey:@"version"]; + +bail: + + return latestVersion; +} + +@end diff --git a/UpdateWindowController.h b/UpdateWindowController.h new file mode 100644 index 0000000..390ae87 --- /dev/null +++ b/UpdateWindowController.h @@ -0,0 +1,49 @@ +// +// file: UpdateWindowController.m +// project: KnockKnock +// description: window handler for update window/popup (header) +// +// created by Patrick Wardle +// copyright (c) 2017 Objective-See. All rights reserved. +// + +@import Cocoa; + +@interface UpdateWindowController : NSWindowController +{ + +} + +/* PROPERTIES */ + +//version label/string +@property(weak)IBOutlet NSTextField *infoLabel; + +//action button +@property(weak)IBOutlet NSButton *actionButton; + +//label string +@property(nonatomic, retain)NSString* infoLabelString; + +//first button ('update check') +@property(weak)IBOutlet NSView *firstButton; + +//button title +@property(nonatomic, retain)NSString* actionButtonTitle; + +//overlay view +@property(weak)IBOutlet NSView *overlayView; + +//spinner +@property(weak)IBOutlet NSProgressIndicator *progressIndicator; + +/* METHODS */ + +//save the main label's & button title's text +-(void)configure:(NSString*)label buttonTitle:(NSString*)buttonTitle; + +//invoked when user clicks button +// ->trigger action such as opening product website, updating, etc +-(IBAction)buttonHandler:(id)sender; + +@end diff --git a/UpdateWindowController.m b/UpdateWindowController.m new file mode 100644 index 0000000..8bfd55b --- /dev/null +++ b/UpdateWindowController.m @@ -0,0 +1,121 @@ +// +// file: UpdateWindowController.m +// project: KnockKnock +// description: window handler for update window/popup +// +// created by Patrick Wardle +// copyright (c) 2017 Objective-See. All rights reserved. +// + +#import "Consts.h" +#import "Utilities.h" +#import "AppDelegate.h" +#import "UpdateWindowController.h" + + +@implementation UpdateWindowController + +@synthesize infoLabel; +@synthesize overlayView; +@synthesize firstButton; +@synthesize actionButton; +@synthesize infoLabelString; +@synthesize actionButtonTitle; +@synthesize progressIndicator; + +//automatically called when nib is loaded +// ->center window +-(void)awakeFromNib +{ + //center + [self.window center]; + + return; +} + +//automatically invoked when window is loaded +// ->set to white +-(void)windowDidLoad +{ + //super + [super windowDidLoad]; + + //not in dark mode? + // make window white + if(YES != isDarkMode()) + { + //make white + self.window.backgroundColor = NSColor.whiteColor; + } + + //indicated title bar is tranparent (too) + self.window.titlebarAppearsTransparent = YES; + + //set main label + [self.infoLabel setStringValue:self.infoLabelString]; + + //set button text + self.actionButton.title = self.actionButtonTitle; + + //hide first button when action is 'update' + // ->don't need update check button ;) + if(YES == [self.actionButton.title isEqualToString:@"Update"]) + { + //hide + self.firstButton.hidden = YES; + + //then make action button first responder + [self.window makeFirstResponder:self.actionButton]; + } + + //make it key window + [self.window makeKeyAndOrderFront:self]; + + //make window front + [NSApp activateIgnoringOtherApps:YES]; + + return; +} + +//automatically invoked when window is closing +// ->make ourselves unmodal +-(void)windowWillClose:(NSNotification *)notification +{ + //make un-modal + [[NSApplication sharedApplication] stopModal]; + + return; +} + +//save the main label's & button title's text +// ->invoked before window is loaded (and thus buttons, etc are nil) +-(void)configure:(NSString*)label buttonTitle:(NSString*)buttonTitle +{ + //save label's string + self.infoLabelString = label; + + //save button's title + self.actionButtonTitle = buttonTitle; + + return; +} + +//invoked when user clicks button +// trigger action such as opening product website, updating, etc +-(IBAction)buttonHandler:(id)sender +{ + //handle 'update' / 'more info', etc + // ->open LuLu's webpage, if they *didn't* click 'Close' + if(YES != [((NSButton*)sender).title isEqualToString:@"Close"]) + { + //open URL + // ->invokes user's default browser + [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:PRODUCT_URL]]; + } + + //always close window + [[self window] close]; + + return; +} +@end diff --git a/Utilities.h b/Utilities.h index e01e190..df37f2a 100644 --- a/Utilities.h +++ b/Utilities.h @@ -17,10 +17,17 @@ NSDictionary* extractSigningInfo(NSString* path); -/* METHODS */ +/* FUNCTIONS */ + +//loads a framework +// note: assumes it is in 'Framework' dir +NSBundle* loadFramework(NSString* name); + +//init crash reporting +void initCrashReporting(void); //check if OS is supported -BOOL isSupportedOS(); +BOOL isSupportedOS(void); //get OS's major or minor version SInt32 getVersion(OSType selector); @@ -53,7 +60,7 @@ BOOL isApple(NSString* path); NSMutableAttributedString* setStringColor(NSAttributedString* string, NSColor* color); //exec a process and grab it's output -NSData* execTask(NSString* binaryPath, NSArray* arguments, BOOL shouldWait); +NSMutableDictionary* execTask(NSString* binaryPath, NSArray* arguments, BOOL shouldWait); //wait until a window is non nil // ->then make it modal @@ -84,4 +91,8 @@ BOOL Is32Bit(pid_t targetPID); // ->based on http://lapcatsoftware.com/articles/detect-app-translocation.html NSURL* getUnTranslocatedURL(); +//check if (full) dark mode +// meaning, Mojave+ and dark mode enabled +BOOL isDarkMode(); + #endif diff --git a/Utilities.m b/Utilities.m index cdfe0d1..42ca2ed 100644 --- a/Utilities.m +++ b/Utilities.m @@ -6,6 +6,8 @@ // Copyright (c) 2015 Objective-See. All rights reserved. // +@import Sentry; + #import "Consts.h" #import "Utilities.h" @@ -20,6 +22,92 @@ #import #import +//init crash reporting +void initCrashReporting() +{ + //sentry + NSBundle *sentry = nil; + + //error + NSError* error = nil; + + //class + Class SentryClient = nil; + + //load senty + sentry = loadFramework(@"Sentry.framework"); + if(nil == sentry) + { + //bail + goto bail; + } + + //get client class + SentryClient = NSClassFromString(@"SentryClient"); + if(nil == SentryClient) + { + //bail + goto bail; + } + + //set shared client + [SentryClient setSharedClient:[[SentryClient alloc] initWithDsn:CRASH_REPORTING_URL didFailWithError:&error]]; + if(nil != error) + { + //bail + goto bail; + } + + //start crash handler + [[SentryClient sharedClient] startCrashHandlerWithError:&error]; + if(nil != error) + { + //bail + goto bail; + } + +bail: + + return; +} + +//loads a framework +// note: assumes it is in 'Framework' dir +NSBundle* loadFramework(NSString* name) +{ + //handle + NSBundle* framework = nil; + + //framework path + NSString* path = nil; + + //init path + path = [NSString stringWithFormat:@"%@/../Frameworks/%@", [NSProcessInfo.processInfo.arguments[0] stringByDeletingLastPathComponent], name]; + + //standardize path + path = [path stringByStandardizingPath]; + + //init framework (bundle) + framework = [NSBundle bundleWithPath:path]; + if(NULL == framework) + { + //bail + goto bail; + } + + //load framework + if(YES != [framework loadAndReturnError:nil]) + { + //bail + goto bail; + } + +bail: + + return framework; +} + + //check if OS is supported // ->Lion and newer BOOL isSupportedOS() @@ -508,71 +596,141 @@ NSMutableAttributedString* setStringColor(NSAttributedString* string, NSColor* c return coloredString; } -//exec a process and grab it's output -NSData* execTask(NSString* binaryPath, NSArray* arguments, BOOL shouldWait) +//exec a process with args +// if 'shouldWait' is set, wait and return stdout/in and termination status +NSMutableDictionary* execTask(NSString* binaryPath, NSArray* arguments, BOOL shouldWait) { //task - NSTask *task = nil; + NSTask* task = nil; - //output pipe - NSPipe *outPipe = nil; + //output pipe for stdout + NSPipe* stdOutPipe = nil; - //output - NSData *output = nil; + //output pipe for stderr + NSPipe* stdErrPipe = nil; + + //read handle for stdout + NSFileHandle* stdOutReadHandle = nil; + + //read handle for stderr + NSFileHandle* stdErrReadHandle = nil; + + //results dictionary + NSMutableDictionary* results = nil; + + //output for stdout + NSMutableData *stdOutData = nil; + + //output for stderr + NSMutableData *stdErrData = nil; + + //init dictionary for results + results = [NSMutableDictionary dictionary]; //init task task = [NSTask new]; - //init pipe - outPipe = [NSPipe pipe]; + //TODO: + NSLog(@"calling %@ / %@", binaryPath, arguments); + printf("calling %s / %s\n", binaryPath.UTF8String, arguments.description.UTF8String); + + //only setup pipes if wait flag is set + if(YES == shouldWait) + { + //init stdout pipe + stdOutPipe = [NSPipe pipe]; + + //init stderr pipe + stdErrPipe = [NSPipe pipe]; + + //init stdout read handle + stdOutReadHandle = [stdOutPipe fileHandleForReading]; + + //init stderr read handle + stdErrReadHandle = [stdErrPipe fileHandleForReading]; + + //init stdout output buffer + stdOutData = [NSMutableData data]; + + //init stderr output buffer + stdErrData = [NSMutableData data]; + + //set task's stdout + task.standardOutput = stdOutPipe; + + //set task's stderr + task.standardError = stdErrPipe; + } //set task's path task.launchPath = binaryPath; //set task's args - task.arguments = arguments; - - //set task's output to pipe - // ->but only if we're waiting for exit - if(YES == shouldWait) + if(nil != arguments) { - //redirect - task.standardOutput = outPipe; + //set + task.arguments = arguments; } - + //wrap task launch @try { //launch [task launch]; } - @catch(NSException* exception) + @catch(NSException *exception) { //bail goto bail; } - //when waiting - // ->grab data - if(YES == shouldWait) + //no need to wait + // can just bail w/ no output + if(YES != shouldWait) { - //read until file is closed - output = [outPipe.fileHandleForReading readDataToEndOfFile]; + //bail + goto bail; + } + + //read in stdout/stderr + while(YES == [task isRunning]) + { + //accumulate stdout + [stdOutData appendData:[stdOutReadHandle readDataToEndOfFile]]; - //wait till exit - [task waitUntilExit]; - - //really kill - kill(task.processIdentifier, SIGKILL); - - }//wait + //accumulate stderr + [stdErrData appendData:[stdErrReadHandle readDataToEndOfFile]]; + } + + //grab any leftover stdout + [stdOutData appendData:[stdOutReadHandle readDataToEndOfFile]]; + + //grab any leftover stderr + [stdErrData appendData:[stdErrReadHandle readDataToEndOfFile]]; + + //add stdout + if(0 != stdOutData.length) + { + //add + results[STDOUT] = stdOutData; + } + + //add stderr + if(0 != stdErrData.length) + { + //add + results[STDERR] = stdErrData; + } + + //add exit code + results[EXIT_CODE] = [NSNumber numberWithInteger:task.terminationStatus]; -//bail bail: - return output; + return results; } + //wait until a window is non nil // ->then make it modal void makeModal(NSWindowController* windowController) @@ -1029,6 +1187,36 @@ bail: } +//check if (full) dark mode +// meaning, Mojave+ and dark mode enabled +BOOL isDarkMode() +{ + //flag + BOOL darkMode = NO; + + //not mojave? + // bail, since not true dark mode + if(YES != [[NSProcessInfo processInfo] isOperatingSystemAtLeastVersion:(NSOperatingSystemVersion){10, 14, 0}]) + { + //bail + goto bail; + } + + //not dark mode? + if(YES != [[[NSUserDefaults standardUserDefaults] stringForKey:@"AppleInterfaceStyle"] isEqualToString:@"Dark"]) + { + //bail + goto bail; + } + + //ok, mojave dark mode it is! + darkMode = YES; + +bail: + + return darkMode; +} + diff --git a/VTButton.m b/VTButton.m index 768e93c..0a78e2a 100644 --- a/VTButton.m +++ b/VTButton.m @@ -60,11 +60,11 @@ color = [NSColor colorWithCalibratedRed:(255/255.0f) green:(1.0/255.0f) blue:(1.0/255.0f) alpha:0.5]; } //non-flagged files - // ->just gray + //gray else { //gray - color = [NSColor lightGrayColor]; + color = NSColor.grayColor; } //set string @@ -101,11 +101,10 @@ color = [NSColor redColor]; } //non-flagged files - // ->just black + // set (back) to default else { - //gray - color = [NSColor blackColor]; + color = NSColor.controlTextColor; } //set string @@ -133,11 +132,11 @@ color = [NSColor colorWithCalibratedRed:(255/255.0f) green:(1.0/255.0f) blue:(1.0/255.0f) alpha:0.66]; } //non-flagged files - // ->just black + // set (back) to default else { //gray - color = [NSColor grayColor]; + color = NSColor.grayColor; } //set string @@ -173,7 +172,7 @@ else { //gray - color = [NSColor grayColor]; + color = NSColor.grayColor; } } //mouse is up @@ -189,11 +188,11 @@ color = [NSColor redColor]; } //non-flagged files - // ->just black + // set (back) to default else { //gray - color = [NSColor blackColor]; + color = NSColor.controlTextColor; } } diff --git a/VTInfoWindowController.m b/VTInfoWindowController.m index 28f957a..ef522e6 100644 --- a/VTInfoWindowController.m +++ b/VTInfoWindowController.m @@ -55,11 +55,13 @@ //super [super windowDidLoad]; - //make it modal - //[[NSApplication sharedApplication] runModalForWindow:self.window]; - - //make white - [self.window setBackgroundColor: NSColor.whiteColor]; + //no dark mode? + // make window white + if(YES != isDarkMode()) + { + //make white + self.window.backgroundColor = NSColor.whiteColor; + } //make close button selected [self.window makeFirstResponder:self.closeButton]; @@ -101,8 +103,8 @@ //file status (known/unknown) if(YES == isKnown) { - //default color to black - textColor = [NSColor blackColor]; + //default color + textColor = NSColor.controlTextColor; //set color to red if its flagged if(0 != [self.item.vtInfo[VT_RESULTS_POSITIVES] unsignedIntegerValue]) @@ -234,7 +236,7 @@ //pre-req [self.overlayView setWantsLayer:YES]; - //set overlay's view color to black + //set overlay's view color to white self.overlayView.layer.backgroundColor = [NSColor whiteColor].CGColor; //make it semi-transparent diff --git a/en.lproj/MainMenu.xib b/en.lproj/MainMenu.xib index bddd564..7d7b4b7 100755 --- a/en.lproj/MainMenu.xib +++ b/en.lproj/MainMenu.xib @@ -1,9 +1,8 @@ - + - - + @@ -19,12 +18,18 @@ - + + + + + + + @@ -39,15 +44,15 @@ - - + + - + - + + + + diff --git a/images/flatIcon.png b/images/teIcon.png similarity index 100% rename from images/flatIcon.png rename to images/teIcon.png diff --git a/kkRowCell.m b/kkRowCell.m index da46e13..4991d75 100644 --- a/kkRowCell.m +++ b/kkRowCell.m @@ -12,7 +12,6 @@ @synthesize tag; - //draw method - (void)drawRect:(NSRect)dirtyRect { diff --git a/patrons.txt b/patrons.txt new file mode 100644 index 0000000..e576b0c --- /dev/null +++ b/patrons.txt @@ -0,0 +1,5 @@ +Patrons: +Halo Privacy, Ash Morgan, Nando Mendonca, Geoffrey Weber, Randy Wong, Aaron Kiemele, Beau Galbraith, Gamer_Bot + +Friends of Objective-See: +Digita Security, Sophos, Malwarebytes, SmugMug, Guardian Mobile Firewall, SecureMac diff --git a/remoteTaskService/main.m b/remoteTaskService/main.m index ec0c199..224129b 100644 --- a/remoteTaskService/main.m +++ b/remoteTaskService/main.m @@ -6,9 +6,10 @@ // Copyright (c) 2015 Objective-See, LLC. All rights reserved. // +#import "../Utilities.h" #import "serviceInterface.h" #import "remoteTaskService.h" -#import "../Exception.h" + #import #import @@ -125,9 +126,8 @@ int main(int argc, const char *argv[]) //listener NSXPCListener* listener = nil; - //first thing... - // ->install exception handlers! - installExceptionHandlers(); + //init crash reporting + initCrashReporting(); //make really r00t // ->needed for exec'ing vmmap, etc diff --git a/remoteTaskService/remoteTaskService.m b/remoteTaskService/remoteTaskService.m index 3e394c5..38bdf7a 100644 --- a/remoteTaskService/remoteTaskService.m +++ b/remoteTaskService/remoteTaskService.m @@ -239,15 +239,15 @@ bail: versionMinor = getVersion(gestaltSystemVersionMinor); //when OS version is older then el capitan - // ->read memory directly + // read memory directly to get list of loaded dylibs if(versionMinor < OS_MINOR_VERSION_EL_CAPITAN) { //enum dylibs dylibPaths = [self enumerateDylibsOld:(NSNumber*)taskPID]; } - //OS version is el capitan - // ->have to use vmmap, since we don't com.apple.system-task-ports entitlement + //OS version is el capitan+ + // have to use vmmap, since we don't com.apple.system-task-ports entitlement else { //enum dylibs @@ -455,14 +455,17 @@ bail: } //enumerate dylibs via vmmap -// ->OS version is el capitan, and we don't have the com.apple.system-task-ports entitlement :/ +// ->OS version is el capitan+, and we don't have the com.apple.system-task-ports entitlement :/ -(NSMutableArray*)enumerateDylibsNew:(NSNumber*)pid { //dylibs NSMutableArray* dylibs = nil; //results from 'file' cmd - NSString* results = nil; + NSMutableDictionary* results = nil; + + //output (stdout) from 'file' cmd + NSString* output = nil; //path offset NSRange pathOffset = {0}; @@ -473,6 +476,22 @@ bail: //alloc array for dylibs dylibs = [NSMutableArray array]; + //skip launchd + // mojave has a bug + if(1 == pid.integerValue) + { + //skip + goto bail; + } + + //skip self + // mojave call's suspend on process + if(getpid() == pid.integerValue) + { + //skip + goto bail; + } + //vmmap can't directly handle 32bit procs // ->so either exec 'vmmap32' or on older OSs, exec via 'arch -i386 vmmap <32bit pid>' if(YES == Is32Bit(pid.unsignedIntValue)) @@ -482,14 +501,14 @@ bail: if(YES == [[NSFileManager defaultManager] fileExistsAtPath:VMMAP_32]) { //exec vmmap32 - results = [[NSString alloc] initWithData:execTask(VMMAP_32, @[@"-w", [pid stringValue]], YES) encoding:NSUTF8StringEncoding]; + results = execTask(VMMAP_32, @[@"-w", [pid stringValue]], YES); } //otherwise // ->assume vmmap is 'fat', and exec 32bit version (pre El Capitan) else { //exec vmmap, but it's i386 version - results = [[NSString alloc] initWithData:execTask(ARCH, @[@"-i386", VMMAP, [pid stringValue]], YES) encoding:NSUTF8StringEncoding]; + results = execTask(ARCH, @[@"-i386", VMMAP, [pid stringValue]], YES); } } //for 64bit procs @@ -497,20 +516,23 @@ bail: else { //exec vmmap - results = [[NSString alloc] initWithData:execTask(VMMAP, @[@"-w", [pid stringValue]], YES) encoding:NSUTF8StringEncoding]; + results = execTask(VMMAP, @[@"-w", [pid stringValue]], YES); } //sanity check - if( (nil == results) || - (0 == results.length)) + if( (nil == results[EXIT_CODE]) || + (0 != [results[EXIT_CODE] integerValue]) ) { //bail goto bail; } + //convert stdout data to string + output = [[NSString alloc] initWithData:results[STDOUT] encoding:NSUTF8StringEncoding]; + //iterate over all results // ->line by line, looking for '__TEXT' - for(NSString* line in [results componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"\n"]]) + for(NSString* line in [output componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]]) { //ignore any line that doesn't start with '__TEXT' if(YES != [line hasPrefix:@"__TEXT"]) @@ -561,7 +583,7 @@ bail: -(void)enumerateFiles:(NSNumber*)taskPID withReply:(void (^)(NSMutableArray *))reply { //results - NSData* results = nil; + NSMutableDictionary* results = nil; //results split on '\n' NSArray* splitResults = nil; @@ -587,19 +609,15 @@ bail: //exec 'file' to get file type results = execTask(LSOF, @[@"-Fn", @"-p", taskPID.stringValue], YES); - - //sanity check(s) - if( (nil == results) || - (0 == results.length) ) + if( (nil == results[EXIT_CODE]) || + (0 != [results[EXIT_CODE] integerValue]) ) { //bail goto bail; } //split results into array - splitResults = [[[NSString alloc] initWithData:results encoding:NSUTF8StringEncoding] componentsSeparatedByString:@"\n"]; - - //sanity check(s) + splitResults = [[[NSString alloc] initWithData:results[STDOUT] encoding:NSUTF8StringEncoding] componentsSeparatedByString:@"\n"]; if( (nil == splitResults) || (0 == splitResults.count) ) {