From f1333b9cccd93aed002d17a2f0478973df3d994a Mon Sep 17 00:00:00 2001 From: Patrick Wardle Date: Wed, 9 Aug 2017 13:26:24 -1000 Subject: [PATCH] namespace/project cleanup added PI_ to C function to avoid namespace issues added 'lib' group to Xcode project --- lib/libprocInfo.a | Bin 190096 -> 950376 bytes procInfo.xcodeproj/project.pbxproj | 29 ++++++++++++++++++++++++----- procInfo/Binary.m | 2 +- procInfo/ProcessMonitor.m | 8 ++++---- procInfo/Signing.m | 2 +- procInfo/Utilities.h | 12 ++++++------ procInfo/Utilities.m | 12 ++++++------ 7 files changed, 42 insertions(+), 23 deletions(-) diff --git a/lib/libprocInfo.a b/lib/libprocInfo.a index bec9634a432b13bc48e3070c6e5c37f982250d53..1fb38c5bc77b58070859e79edf4e7fdebf4771a7 100644 GIT binary patch delta 32281 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 u>&L70-Z%H9&7RZm@ZR@*?!CXu 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 diff --git a/procInfo.xcodeproj/project.pbxproj b/procInfo.xcodeproj/project.pbxproj index 8317484..fc045a8 100644 --- a/procInfo.xcodeproj/project.pbxproj +++ b/procInfo.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 7D6E87771F3BD0FA00D6BD7C /* libprocInfo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D6E87761F3BD0FA00D6BD7C /* libprocInfo.a */; }; 7DD0A92D1F35A04B000EA15D /* ProcessMonitor.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DD0A91F1F35A04B000EA15D /* ProcessMonitor.m */; }; 7DD0A92F1F35A04B000EA15D /* Binary.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DD0A9211F35A04B000EA15D /* Binary.m */; }; 7DD0A9301F35A04B000EA15D /* Process.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DD0A9221F35A04B000EA15D /* Process.m */; }; @@ -21,7 +22,7 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - 7D6E876B1F392B3B00D6BD7C /* libprocInfo.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libprocInfo.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 7D6E87761F3BD0FA00D6BD7C /* libprocInfo.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libprocInfo.a; path = lib/libprocInfo.a; sourceTree = SOURCE_ROOT; }; 7DD0A91F1F35A04B000EA15D /* ProcessMonitor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProcessMonitor.m; path = procInfo/ProcessMonitor.m; sourceTree = SOURCE_ROOT; }; 7DD0A9211F35A04B000EA15D /* Binary.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Binary.m; path = procInfo/Binary.m; sourceTree = SOURCE_ROOT; }; 7DD0A9221F35A04B000EA15D /* Process.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Process.m; path = procInfo/Process.m; sourceTree = SOURCE_ROOT; }; @@ -40,6 +41,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 7D6E87771F3BD0FA00D6BD7C /* libprocInfo.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -54,12 +56,21 @@ name = include; sourceTree = ""; }; + 7D6E87751F3BD0C200D6BD7C /* lib */ = { + isa = PBXGroup; + children = ( + 7D6E87761F3BD0FA00D6BD7C /* libprocInfo.a */, + ); + name = lib; + path = processMonitor; + sourceTree = ""; + }; 7D83A9DB1EB6465D001506F0 = { isa = PBXGroup; children = ( - 7D6E875D1F381BC600D6BD7C /* include */, 7D83A9E61EB6465D001506F0 /* src */, - 7D6E876B1F392B3B00D6BD7C /* libprocInfo.a */, + 7D6E875D1F381BC600D6BD7C /* include */, + 7D6E87751F3BD0C200D6BD7C /* lib */, ); sourceTree = ""; }; @@ -114,7 +125,7 @@ ); name = procInfo; productName = processMonitor; - productReference = 7D6E876B1F392B3B00D6BD7C /* libprocInfo.a */; + productReference = 7D6E87781F3BD0FA00D6BD7C /* libprocInfo.a */; productType = "com.apple.product-type.library.static"; }; /* End PBXNativeTarget section */ @@ -162,7 +173,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "#copy library into top-level lib folder\ncp $CODESIGNING_FOLDER_PATH $SRCROOT/lib/"; + shellScript = "#move library into top-level lib folder\nmv $CODESIGNING_FOLDER_PATH $SRCROOT/lib/"; }; /* End PBXShellScriptBuildPhase section */ @@ -276,6 +287,10 @@ CODE_SIGN_IDENTITY = ""; DEVELOPMENT_TEAM = VBG97UB4TA; EXECUTABLE_PREFIX = lib; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/lib", + ); PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -286,6 +301,10 @@ CODE_SIGN_IDENTITY = ""; DEVELOPMENT_TEAM = VBG97UB4TA; EXECUTABLE_PREFIX = lib; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/lib", + ); PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; diff --git a/procInfo/Binary.m b/procInfo/Binary.m index f5464be..a12ce80 100644 --- a/procInfo/Binary.m +++ b/procInfo/Binary.m @@ -60,7 +60,7 @@ { //find app bundle from binary // ->likely not an application if this fails - appBundle = findAppBundle(path); + appBundle = PI_findAppBundle(path); } //found app bundle? diff --git a/procInfo/ProcessMonitor.m b/procInfo/ProcessMonitor.m index 06554e5..bbba3f4 100644 --- a/procInfo/ProcessMonitor.m +++ b/procInfo/ProcessMonitor.m @@ -51,10 +51,10 @@ { //make sure OS is supported // ->for now, OS X 10.8+ though could be earlier? - if(YES != isSupportedOS()) + if(YES != PI_isSupportedOS()) { //err msg - NSLog(@"ERROR: %@ is not a supported OS", getOSVersion()); + NSLog(@"ERROR: %@ is not a supported OS", PI_getOSVersion()); //unset self = nil; @@ -80,7 +80,7 @@ bail: self.processCallback = callback; //get OS version info - osVersionInfo = getOSVersion(); + osVersionInfo = PI_getOSVersion(); //for full monitoring, gotta be root and macOS 10.12.4 ('safe', as fixed kernel crash) if( (0 == geteuid()) && @@ -707,7 +707,7 @@ bail: //iterate over all pids // ->init process object w/ pid/path, etc - for(NSNumber* pid in enumerateProcesses()) + for(NSNumber* pid in PI_enumerateProcesses()) { //skip 'blank' pids if(0 == pid.unsignedShortValue) diff --git a/procInfo/Signing.m b/procInfo/Signing.m index f9f7bfa..2713db7 100644 --- a/procInfo/Signing.m +++ b/procInfo/Signing.m @@ -504,7 +504,7 @@ BOOL fromAppStore(NSString* path) { //find app bundle from binary // ->likely not an application if this fails - appBundle = findAppBundle(path); + appBundle = PI_findAppBundle(path); if(nil == appBundle) { //bail diff --git a/procInfo/Utilities.h b/procInfo/Utilities.h index 2a29d5d..e1dd696 100644 --- a/procInfo/Utilities.h +++ b/procInfo/Utilities.h @@ -14,23 +14,23 @@ //given a path to binary // parse it back up to find app's bundle -NSBundle* findAppBundle(NSString* binaryPath); +NSBundle* PI_findAppBundle(NSString* binaryPath); //check if current OS version is supported // ->for now, just...? -BOOL isSupportedOS(); +BOOL PI_isSupportedOS(); //get OS version -NSDictionary* getOSVersion(); +NSDictionary* PI_getOSVersion(); //enumerate all running processes -NSMutableArray* enumerateProcesses(); +NSMutableArray* PI_enumerateProcesses(); //given a bundle // ->find its executable -NSString* findAppBinary(NSString* appPath); +NSString* PI_findAppBinary(NSString* appPath); //sha256 a file -NSString* hashFile(NSString* filePath); +NSString* PI_hashFile(NSString* filePath); #endif diff --git a/procInfo/Utilities.m b/procInfo/Utilities.m index fb5e4cb..907d22b 100644 --- a/procInfo/Utilities.m +++ b/procInfo/Utilities.m @@ -19,7 +19,7 @@ #pragma clang diagnostic ignored "-Wdeprecated-declarations" //get OS version -NSDictionary* getOSVersion() +NSDictionary* PI_getOSVersion() { //os version info NSMutableDictionary* osVersionInfo = nil; @@ -82,7 +82,7 @@ bail: //is current OS version supported? // ->for now, just OS X 10.8+ -BOOL isSupportedOS() +BOOL PI_isSupportedOS() { //support flag BOOL isSupported = NO; @@ -91,7 +91,7 @@ BOOL isSupportedOS() NSDictionary* osVersionInfo = nil; //get OS version info - osVersionInfo = getOSVersion(); + osVersionInfo = PI_getOSVersion(); if(nil == osVersionInfo) { //bail @@ -121,7 +121,7 @@ bail: } //enumerate all running processes -NSMutableArray* enumerateProcesses() +NSMutableArray* PI_enumerateProcesses() { //status int status = -1; @@ -186,7 +186,7 @@ bail: //given a path to binary // ->parse it back up to find app's bundle -NSBundle* findAppBundle(NSString* binaryPath) +NSBundle* PI_findAppBundle(NSString* binaryPath) { //app's bundle NSBundle* appBundle = nil; @@ -230,7 +230,7 @@ NSBundle* findAppBundle(NSString* binaryPath) } //sha256 a file -NSString* hashFile(NSString* filePath) +NSString* PI_hashFile(NSString* filePath) { //file's contents NSData* fileContents = nil;