mirror of
https://github.com/objective-see/TaskExplorer.git
synced 2026-03-22 07:02:39 +00:00
added (skeleton) dylib info window
added record if binary is apple-signed & display green icon sort tasks by name
This commit is contained in:
Vendored
+3
@@ -36,4 +36,7 @@
|
||||
- (NSEnumerator *)reverseKeyEnumerator;
|
||||
-(void)reverse;
|
||||
|
||||
//sort, by object key
|
||||
-(void)sort:(NSString*)sortKey;
|
||||
|
||||
@end
|
||||
|
||||
Vendored
+17
@@ -133,6 +133,23 @@ NSString *DescriptionForObject(NSObject *object, id locale, NSUInteger indent)
|
||||
array = [[[array reverseObjectEnumerator] allObjects] mutableCopy];
|
||||
}
|
||||
|
||||
//sort, by object key
|
||||
-(void) :(NSString*)sortKey
|
||||
{
|
||||
//task sorted by name
|
||||
NSArray* sortedTasks = nil;
|
||||
|
||||
//sort task by binary name
|
||||
sortedTasks = [[dictionary allValues] sortedArrayUsingSelector:@selector(compare:)];
|
||||
|
||||
//extract pids into array
|
||||
array = [[sortedTasks valueForKey:@"pid"] mutableCopy];
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
- (NSString *)descriptionWithLocale:(id)locale indent:(NSUInteger)level
|
||||
{
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
//keys for signing stuff
|
||||
#define KEY_SIGNATURE_STATUS @"signatureStatus"
|
||||
#define KEY_SIGNING_AUTHORITIES @"signingAuthorities"
|
||||
#define KEY_SIGNING_IS_APPLE @"signedByApple"
|
||||
|
||||
//OS version x
|
||||
#define OS_MAJOR_VERSION_X 10
|
||||
|
||||
+31
-2
@@ -433,8 +433,15 @@ NSImage* getCodeSigningIcon(Binary* binary)
|
||||
//set signature status icon
|
||||
if(nil != binary.signingInfo)
|
||||
{
|
||||
//binary is signed by apple
|
||||
if(YES == [binary.signingInfo[KEY_SIGNING_IS_APPLE] boolValue])
|
||||
{
|
||||
//set
|
||||
codeSignIcon = [NSImage imageNamed:@"signedAppleIcon"];
|
||||
}
|
||||
|
||||
//binary is signed
|
||||
if(STATUS_SUCCESS == [binary.signingInfo[KEY_SIGNATURE_STATUS] integerValue])
|
||||
else if(STATUS_SUCCESS == [binary.signingInfo[KEY_SIGNATURE_STATUS] integerValue])
|
||||
{
|
||||
//set
|
||||
codeSignIcon = [NSImage imageNamed:@"signed"];
|
||||
@@ -676,7 +683,10 @@ NSTableCellView* createNetworkView(NSTableView* tableView, id owner, Connection*
|
||||
goto bail;
|
||||
}
|
||||
|
||||
//set icon
|
||||
//reset icon
|
||||
connectionCell.imageView.image = nil;
|
||||
|
||||
//set icon for TCP sockets
|
||||
//TODO: (re)set default icon!?
|
||||
if(nil != connection.state)
|
||||
{
|
||||
@@ -694,6 +704,14 @@ NSTableCellView* createNetworkView(NSTableView* tableView, id owner, Connection*
|
||||
}
|
||||
}
|
||||
|
||||
//set icon for UDP sockets
|
||||
// ->can't listen, so just show em as streaming
|
||||
else if(YES == [connection.type isEqualToString:@"SOCK_DGRAM"])
|
||||
{
|
||||
//set
|
||||
connectionCell.imageView.image = [NSImage imageNamed:@"streamIcon"];
|
||||
}
|
||||
|
||||
//default
|
||||
// ->(re)set main textfield's color to black
|
||||
connectionCell.textField.textColor = [NSColor blackColor];
|
||||
@@ -715,11 +733,22 @@ NSTableCellView* createNetworkView(NSTableView* tableView, id owner, Connection*
|
||||
[connectionCell.textField setStringValue:endpoints];
|
||||
|
||||
//set details
|
||||
// ->TCP socket
|
||||
if(nil != connection.state)
|
||||
{
|
||||
//add state
|
||||
[details appendString:connection.state];
|
||||
}
|
||||
//set details
|
||||
// ->UDP socket
|
||||
else if(YES == [connection.type isEqualToString:@"SOCK_DGRAM"])
|
||||
{
|
||||
//bound
|
||||
// ->add state
|
||||
[details appendString:@"bound (UDP) socket"];
|
||||
|
||||
//TODO: connected UDP socket?
|
||||
}
|
||||
|
||||
//set details
|
||||
[[connectionCell viewWithTag:TABLE_ROW_SUB_TEXT_TAG] setStringValue:details];
|
||||
|
||||
@@ -27,7 +27,7 @@ struct dyld_image_info_32 {
|
||||
NSNumber* pid;
|
||||
|
||||
//uid
|
||||
uid_t uid;
|
||||
//uid_t uid;
|
||||
|
||||
//main binary
|
||||
Binary* binary;
|
||||
|
||||
@@ -529,6 +529,11 @@ bail:
|
||||
}
|
||||
|
||||
|
||||
- (NSComparisonResult)compare:(Task*)otherTask
|
||||
{
|
||||
return [self.binary.name compare:otherTask.binary.name options:NSCaseInsensitiveSearch];
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -59,7 +59,7 @@
|
||||
|
||||
//determine if dylibs should be (re)enumerated
|
||||
// ->generally yes, unless the first enumeration (of all tasks) is not complete
|
||||
-(BOOL)shouldEnumDylibs;
|
||||
//-(BOOL)shouldEnumDylibs;
|
||||
|
||||
|
||||
@end
|
||||
|
||||
+5
-81
@@ -97,9 +97,6 @@
|
||||
// ->call back into app delegate to update task (top) table
|
||||
// call every x # of seconds~
|
||||
|
||||
//TODO: re-enumerate dylibs for everytime!
|
||||
// only need to update task.dylibs list (not global one, unless its new!)
|
||||
|
||||
-(void)enumerateTasks
|
||||
{
|
||||
//(new) task item
|
||||
@@ -137,10 +134,11 @@
|
||||
//[newTask enumerateDylibs:self.xpcConnection allDylibs:self.dylibs];
|
||||
|
||||
//add new task
|
||||
// TODO: ordering!?
|
||||
[self.tasks setObject:newTask forKey:newTask.pid];
|
||||
|
||||
}
|
||||
}//add new tasks
|
||||
|
||||
//sort by name!
|
||||
|
||||
//reload table
|
||||
[((AppDelegate*)[[NSApplication sharedApplication] delegate]) reloadTaskTable];
|
||||
@@ -167,79 +165,6 @@
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
//determine if dylibs should be (re)enumerated
|
||||
// ->generally yes, unless the first enumeration (of all tasks) is not complete
|
||||
-(BOOL)shouldEnumDylibs
|
||||
{
|
||||
//flag
|
||||
BOOL shouldEnum = NO;
|
||||
|
||||
//task key
|
||||
NSNumber* taskKey = nil;
|
||||
|
||||
//Task
|
||||
Task* task = nil;
|
||||
|
||||
for(NSInteger i = self.tasks.count-1; i>=0; i--)
|
||||
{
|
||||
taskKey = [self.tasks keyAtIndex:i];
|
||||
|
||||
task = self.tasks[taskKey];
|
||||
|
||||
//skip dead procs
|
||||
if(YES != isAlive([task.pid unsignedIntValue]))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
//alive
|
||||
// ->does it have dylibs?
|
||||
if(0 != task.dylibs.count)
|
||||
{
|
||||
//a end task has dylibs
|
||||
// ->indicates all done?
|
||||
shouldEnum = YES;
|
||||
|
||||
//bail
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
shouldEnum = NO;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return shouldEnum;
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
//TODO: only do this once!
|
||||
// ->otherwise done JIT (on click)
|
||||
//TODO: sync!!
|
||||
//iterate over all tasks
|
||||
// ->invoke task's emun method to get all files/network (via XPC)
|
||||
-(void)enumerateFiles
|
||||
{
|
||||
//Task
|
||||
Task* task = nil;
|
||||
|
||||
//iterate over all tasks
|
||||
// ->invoke method to enumerate files
|
||||
for(NSNumber* key in self.tasks)
|
||||
{
|
||||
//get task
|
||||
task = self.tasks[key];
|
||||
|
||||
//enumerate files
|
||||
[task enumerateFiles:self.xpcConnection];
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
//get list of all pids
|
||||
-(OrderedDictionary*)getAllTasks
|
||||
{
|
||||
@@ -336,9 +261,8 @@
|
||||
//add kernel task
|
||||
[allTasks setObject:task forKey:@0];
|
||||
|
||||
//reverse array
|
||||
// ->want order to go from 0 -> ...
|
||||
[allTasks reverse];
|
||||
//sort all tasks alphabetically
|
||||
[allTasks sort:@"name"];
|
||||
|
||||
//bail
|
||||
bail:
|
||||
|
||||
@@ -36,6 +36,9 @@
|
||||
CD4D541F1B2CE6C400008030 /* Queue.m in Sources */ = {isa = PBXBuildFile; fileRef = CD4D541E1B2CE6C400008030 /* Queue.m */; };
|
||||
CD4D54221B2CE6F200008030 /* NSMutableArray+QueueAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CD4D54211B2CE6F200008030 /* NSMutableArray+QueueAdditions.m */; };
|
||||
CD4D54241B2D082300008030 /* DylibInfoWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CD4D54231B2D082300008030 /* DylibInfoWindow.xib */; };
|
||||
CD4D54261B2EA94C00008030 /* streamIcon.png in Resources */ = {isa = PBXBuildFile; fileRef = CD4D54251B2EA94C00008030 /* streamIcon.png */; };
|
||||
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 */; };
|
||||
CD6E54FF1B1162B5007953AB /* ItemView.m in Sources */ = {isa = PBXBuildFile; fileRef = CD6E54FE1B1162B5007953AB /* ItemView.m */; };
|
||||
CD7B9F4D1ACB959200DF3C71 /* logoAppleOver.png in Resources */ = {isa = PBXBuildFile; fileRef = CD7B9F4C1ACB959200DF3C71 /* logoAppleOver.png */; };
|
||||
@@ -171,6 +174,9 @@
|
||||
CD4D54201B2CE6F200008030 /* NSMutableArray+QueueAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSMutableArray+QueueAdditions.h"; sourceTree = "<group>"; };
|
||||
CD4D54211B2CE6F200008030 /* NSMutableArray+QueueAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSMutableArray+QueueAdditions.m"; sourceTree = "<group>"; };
|
||||
CD4D54231B2D082300008030 /* DylibInfoWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = DylibInfoWindow.xib; path = UI/DylibInfoWindow.xib; sourceTree = "<group>"; };
|
||||
CD4D54251B2EA94C00008030 /* streamIcon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = streamIcon.png; path = images/streamIcon.png; sourceTree = SOURCE_ROOT; };
|
||||
CD4D54271B2EAC7800008030 /* NetworkInfoWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = NetworkInfoWindow.xib; path = UI/NetworkInfoWindow.xib; sourceTree = "<group>"; };
|
||||
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; };
|
||||
CD6E54FD1B1162B5007953AB /* ItemView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ItemView.h; sourceTree = "<group>"; };
|
||||
CD6E54FE1B1162B5007953AB /* ItemView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ItemView.m; sourceTree = "<group>"; };
|
||||
@@ -378,6 +384,8 @@
|
||||
CD6095501A8329FA00E091CD /* images */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CD4D543E1B2FF32C00008030 /* signedAppleIcon.png */,
|
||||
CD4D54251B2EA94C00008030 /* streamIcon.png */,
|
||||
CD4D53D11B23ED4300008030 /* listeningIcon.png */,
|
||||
CD4D53CF1B23ED3900008030 /* connectedIcon.png */,
|
||||
CD4D53C91B20296E00008030 /* unknown.png */,
|
||||
@@ -493,6 +501,7 @@
|
||||
CDA81E621AA020E8009790E2 /* UI */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CD4D54271B2EAC7800008030 /* NetworkInfoWindow.xib */,
|
||||
CD4D54231B2D082300008030 /* DylibInfoWindow.xib */,
|
||||
CDA5F6C01B16E1D6003CE340 /* RequestRootWindow.xib */,
|
||||
CD3F4D151AF89066002A2647 /* TreeView.xib */,
|
||||
@@ -614,9 +623,11 @@
|
||||
CD7B9FA81ACCAE5E00DF3C71 /* stopScanOver.png in Resources */,
|
||||
CDA81D701A95B4E9009790E2 /* stopScan.png in Resources */,
|
||||
CDF08CF01ACA677B009B3423 /* kernelIcon.png in Resources */,
|
||||
CD4D54261B2EA94C00008030 /* streamIcon.png in Resources */,
|
||||
CDF08CD01AC4C6E8009B3423 /* settingsBG.png in Resources */,
|
||||
CD0219551AD34E4C005148A2 /* kkIcon.png in Resources */,
|
||||
CD0219591AD37748005148A2 /* unsigned2.png in Resources */,
|
||||
CD4D54281B2EAC7800008030 /* NetworkInfoWindow.xib in Resources */,
|
||||
CDA81D5C1A95B4B4009790E2 /* MainMenu.xib in Resources */,
|
||||
CD7B9F4D1ACB959200DF3C71 /* logoAppleOver.png in Resources */,
|
||||
CD0219581AD37748005148A2 /* signed2.png in Resources */,
|
||||
@@ -634,6 +645,7 @@
|
||||
CDAB98A31AEB413C00C75B4B /* dylibIcon.png in Resources */,
|
||||
CDF08CC31AC3E98D009B3423 /* infoOver.png in Resources */,
|
||||
CDF08CF41ACA6864009B3423 /* loginIcon.png in Resources */,
|
||||
CD4D543F1B2FF32C00008030 /* signedAppleIcon.png in Resources */,
|
||||
CD3F4D161AF89066002A2647 /* TreeView.xib in Resources */,
|
||||
CD0219501AD34D8B005148A2 /* PrefsWindow.xib in Resources */,
|
||||
CDA81D6C1A95B4E9009790E2 /* showBG.png in Resources */,
|
||||
|
||||
+51
-3
@@ -196,11 +196,11 @@
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "TaskTableController.m"
|
||||
timestampString = "455935914.851075"
|
||||
timestampString = "456129885.389119"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "985"
|
||||
endingLineNumber = "985"
|
||||
startingLineNumber = "995"
|
||||
endingLineNumber = "995"
|
||||
landmarkName = "-showInfo:"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
@@ -237,5 +237,53 @@
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "remoteTaskService/remoteTaskService.m"
|
||||
timestampString = "456041912.657924"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "416"
|
||||
endingLineNumber = "416"
|
||||
landmarkName = "-enumerateNetwork:withReply:"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "remoteTaskService/remoteTaskService.m"
|
||||
timestampString = "456041950.399168"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "508"
|
||||
endingLineNumber = "508"
|
||||
landmarkName = "-enumerateNetwork:withReply:"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Task.m"
|
||||
timestampString = "456131801.925009"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "532"
|
||||
endingLineNumber = "532"
|
||||
landmarkName = "-compare:"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
</Breakpoints>
|
||||
</Bucket>
|
||||
|
||||
@@ -40,8 +40,18 @@
|
||||
-(void)awakeFromNib
|
||||
{
|
||||
self.selectedRow = -1;
|
||||
|
||||
/*
|
||||
NSString *title = @"[ all tasks ]";
|
||||
NSTableColumn *yourColumn = self.itemView.tableColumns.lastObject;
|
||||
[yourColumn.headerCell setStringValue:title];
|
||||
|
||||
[self.itemView setIndicatorImage:[NSImage imageNamed:@"NSDescendingSortIndicator"] inTableColumn:self.itemView.tableColumns.lastObject];
|
||||
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
//invoked automatically while nib is loaded
|
||||
// ->note: outlets are nil here...
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
</customObject>
|
||||
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||
<window title="Task File Information" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" oneShot="NO" releasedWhenClosed="NO" animationBehavior="default" id="F0z-JX-Cv5">
|
||||
<window title="Dylib Information" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" oneShot="NO" releasedWhenClosed="NO" animationBehavior="default" id="F0z-JX-Cv5">
|
||||
<windowStyleMask key="styleMask" titled="YES" closable="YES" texturedBackground="YES"/>
|
||||
<rect key="contentRect" x="196" y="240" width="646" height="220"/>
|
||||
<rect key="screenRect" x="0.0" y="0.0" width="1440" height="877"/>
|
||||
|
||||
+28
-1
@@ -412,8 +412,35 @@
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<button toolTip="show file info" verticalHuggingPriority="750" ambiguous="YES" misplaced="YES" tag="105" translatesAutoresizingMaskIntoConstraints="NO" id="ajd-Yb-p6i">
|
||||
<rect key="frame" x="1265" y="16" width="15" height="15"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="15" id="hAL-Nd-GfV"/>
|
||||
<constraint firstAttribute="width" constant="15" id="pQu-Dd-9Ib"/>
|
||||
</constraints>
|
||||
<buttonCell key="cell" type="bevel" bezelStyle="regularSquare" image="info" imagePosition="only" alignment="center" alternateImage="infoBG" state="on" imageScaling="proportionallyDown" inset="2" id="bO6-PR-DSy">
|
||||
<behavior key="behavior" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<action selector="showInfo:" target="-2" id="18o-m3-bUC"/>
|
||||
</connections>
|
||||
</button>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" ambiguous="YES" misplaced="YES" tag="106" translatesAutoresizingMaskIntoConstraints="NO" id="YYR-6I-wYA">
|
||||
<rect key="frame" x="1259" y="3" width="25" height="12"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="12" id="NRE-yK-7X4"/>
|
||||
</constraints>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="center" title="info" id="bNN-kN-4zL">
|
||||
<font key="font" size="9" name="Menlo-Regular"/>
|
||||
<color key="textColor" white="0.5" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstAttribute="trailing" secondItem="ajd-Yb-p6i" secondAttribute="trailing" constant="15" id="4j1-1P-atZ"/>
|
||||
<constraint firstAttribute="trailing" secondItem="YYR-6I-wYA" secondAttribute="trailing" constant="13" id="MHU-AY-rcs"/>
|
||||
<constraint firstItem="n84-aN-dS4" firstAttribute="leading" secondItem="vkh-K9-CiP" secondAttribute="leading" constant="5" id="iJH-Aa-QGY"/>
|
||||
<constraint firstItem="clK-51-yQN" firstAttribute="leading" secondItem="n84-aN-dS4" secondAttribute="trailing" constant="8" id="zd5-Ae-yYB"/>
|
||||
</constraints>
|
||||
@@ -437,7 +464,7 @@
|
||||
<rect key="frame" x="1" y="298" width="480" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</scroller>
|
||||
<scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" doubleValue="1" controlSize="mini" horizontal="NO" id="cwi-rA-cqP">
|
||||
<scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" controlSize="mini" horizontal="NO" id="cwi-rA-cqP">
|
||||
<rect key="frame" x="224" y="17" width="15" height="102"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</scroller>
|
||||
|
||||
@@ -0,0 +1,158 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="7702" systemVersion="14D136" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||
<dependencies>
|
||||
<deployment identifier="macosx"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="7702"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<customObject id="-2" userLabel="File's Owner" customClass="InfoWindowController">
|
||||
<connections>
|
||||
<outlet property="date" destination="Wbv-SK-w53" id="Li5-qD-Hxq"/>
|
||||
<outlet property="hashes" destination="GQc-va-MLN" id="ta6-6g-dzh"/>
|
||||
<outlet property="icon" destination="l8H-S3-g8O" id="P7o-8z-MjY"/>
|
||||
<outlet property="name" destination="NA2-2e-4hN" id="0Lg-xP-m03"/>
|
||||
<outlet property="path" destination="dY9-WD-WAf" id="7Lg-cs-t0f"/>
|
||||
<outlet property="plist" destination="vm8-PU-Bu0" id="9mC-ha-tfK"/>
|
||||
<outlet property="sign" destination="5Rx-Vm-7gm" id="3g2-Ay-zQ4"/>
|
||||
<outlet property="size" destination="hLU-fi-qXH" id="wZf-h4-BKf"/>
|
||||
<outlet property="window" destination="F0z-JX-Cv5" id="gIp-Ho-8D9"/>
|
||||
</connections>
|
||||
</customObject>
|
||||
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||
<window title="File Information" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" oneShot="NO" releasedWhenClosed="NO" animationBehavior="default" id="F0z-JX-Cv5">
|
||||
<windowStyleMask key="styleMask" titled="YES" closable="YES" texturedBackground="YES"/>
|
||||
<rect key="contentRect" x="196" y="240" width="646" height="260"/>
|
||||
<rect key="screenRect" x="0.0" y="0.0" width="1440" height="877"/>
|
||||
<view key="contentView" id="se5-gp-TjO">
|
||||
<rect key="frame" x="0.0" y="0.0" width="646" height="260"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="NA2-2e-4hN">
|
||||
<rect key="frame" x="73" y="226" width="553" height="29"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" sendsActionOnEndEditing="YES" title="Item Name" id="pYD-IR-Vtv">
|
||||
<font key="font" size="20" name="Menlo-Regular"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" setsMaxLayoutWidthAtFirstLayout="YES" translatesAutoresizingMaskIntoConstraints="NO" id="dY9-WD-WAf">
|
||||
<rect key="frame" x="75" y="191" width="553" height="34"/>
|
||||
<textFieldCell key="cell" selectable="YES" sendsActionOnEndEditing="YES" title="Item Path" id="MfU-Jb-agl">
|
||||
<font key="font" size="11" name="Menlo-Regular"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="GMp-1g-TFI">
|
||||
<rect key="frame" x="8" y="149" width="59" height="18"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="hash:" id="fYa-Av-reX">
|
||||
<font key="font" size="11" name="Menlo-Bold"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="GQc-va-MLN">
|
||||
<rect key="frame" x="75" y="149" width="555" height="18"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" selectable="YES" allowsUndo="NO" sendsActionOnEndEditing="YES" alignment="left" title="item hash" id="yYo-KQ-DMm">
|
||||
<font key="font" size="11" name="Menlo-Regular"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="hLU-fi-qXH">
|
||||
<rect key="frame" x="75" y="129" width="555" height="18"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" selectable="YES" allowsUndo="NO" sendsActionOnEndEditing="YES" alignment="left" title="item size" id="XJ7-Go-bkG">
|
||||
<font key="font" size="11" name="Menlo-Regular"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Wbv-SK-w53">
|
||||
<rect key="frame" x="75" y="108" width="555" height="18"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" selectable="YES" allowsUndo="NO" sendsActionOnEndEditing="YES" alignment="left" title="item creation/modified" id="hR8-Wz-esN">
|
||||
<font key="font" size="11" name="Menlo-Regular"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" setsMaxLayoutWidthAtFirstLayout="YES" translatesAutoresizingMaskIntoConstraints="NO" id="5Rx-Vm-7gm">
|
||||
<rect key="frame" x="75" y="51" width="554" height="34"/>
|
||||
<textFieldCell key="cell" selectable="YES" allowsUndo="NO" sendsActionOnEndEditing="YES" alignment="left" title="signing status" id="00d-h4-SPW">
|
||||
<font key="font" size="11" name="Menlo-Regular"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="vm8-PU-Bu0">
|
||||
<rect key="frame" x="76" y="88" width="554" height="18"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" allowsUndo="NO" sendsActionOnEndEditing="YES" alignment="left" title="plist" id="23w-N2-C5Z">
|
||||
<font key="font" size="11" name="Menlo-Regular"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="DFa-vc-wFY">
|
||||
<rect key="frame" x="8" y="129" width="59" height="18"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="size:" id="iBS-9J-ok9">
|
||||
<font key="font" size="11" name="Menlo-Bold"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="tM6-Nq-1Rh">
|
||||
<rect key="frame" x="8" y="108" width="59" height="18"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="time:" id="U3V-A7-jO8">
|
||||
<font key="font" size="11" name="Menlo-Bold"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="hel-J4-4Qt">
|
||||
<rect key="frame" x="8" y="68" width="59" height="18"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="sign:" id="ezp-TW-Xky">
|
||||
<font key="font" size="11" name="Menlo-Bold"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="fAH-dm-SJe">
|
||||
<rect key="frame" x="8" y="88" width="59" height="18"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="list:" id="oqF-UL-ydq">
|
||||
<font key="font" size="11" name="Menlo-Bold"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<box verticalHuggingPriority="750" fixedFrame="YES" title="Box" boxType="separator" titlePosition="noTitle" translatesAutoresizingMaskIntoConstraints="NO" id="Oh7-Ag-bHc">
|
||||
<rect key="frame" x="22" y="181" width="604" height="5"/>
|
||||
<color key="borderColor" white="0.0" alpha="0.41999999999999998" colorSpace="calibratedWhite"/>
|
||||
<color key="fillColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<font key="titleFont" metaFont="system"/>
|
||||
</box>
|
||||
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="l8H-S3-g8O">
|
||||
<rect key="frame" x="13" y="202" width="48" height="48"/>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="bug" id="w3z-uu-XKS"/>
|
||||
</imageView>
|
||||
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="uJq-Bw-lDQ">
|
||||
<rect key="frame" x="552" y="12" width="82" height="32"/>
|
||||
<buttonCell key="cell" type="push" title="close" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="RwO-yA-Xwk">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" size="13" name="Menlo-Regular"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<action selector="closeWindow:" target="-2" id="SSo-9s-xQz"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
</view>
|
||||
<connections>
|
||||
<outlet property="delegate" destination="-2" id="0bl-1N-AYu"/>
|
||||
</connections>
|
||||
<point key="canvasLocation" x="430" y="270"/>
|
||||
</window>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="bug" width="256" height="256"/>
|
||||
</resources>
|
||||
</document>
|
||||
@@ -150,8 +150,14 @@ NSDictionary* extractSigningInfo(NSString* path)
|
||||
//bail
|
||||
goto bail;
|
||||
}
|
||||
|
||||
//determine if binary is signed by Apple
|
||||
signingStatus[KEY_SIGNING_IS_APPLE] = [NSNumber numberWithBool:isApple(path)];
|
||||
}
|
||||
|
||||
//TODO: bail, unsigned?
|
||||
|
||||
|
||||
//init array for certificate names
|
||||
signingStatus[KEY_SIGNING_AUTHORITIES] = [NSMutableArray array];
|
||||
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 3.4 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
Reference in New Issue
Block a user