added (skeleton) dylib info window

added record if binary is apple-signed & display green icon
sort tasks by name
This commit is contained in:
Patrick Wardle
2015-06-15 21:35:08 -10:00
parent e8ce5006bb
commit f19466a8fe
17 changed files with 330 additions and 90 deletions
+3
View File
@@ -36,4 +36,7 @@
- (NSEnumerator *)reverseKeyEnumerator;
-(void)reverse;
//sort, by object key
-(void)sort:(NSString*)sortKey;
@end
+17
View File
@@ -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
{
+1
View File
@@ -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
View File
@@ -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];
+1 -1
View File
@@ -27,7 +27,7 @@ struct dyld_image_info_32 {
NSNumber* pid;
//uid
uid_t uid;
//uid_t uid;
//main binary
Binary* binary;
+5
View File
@@ -529,6 +529,11 @@ bail:
}
- (NSComparisonResult)compare:(Task*)otherTask
{
return [self.binary.name compare:otherTask.binary.name options:NSCaseInsensitiveSearch];
}
+1 -1
View File
@@ -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
View File
@@ -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:
+12
View File
@@ -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 */,
@@ -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>
+10
View File
@@ -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...
+1 -1
View File
@@ -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
View File
@@ -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>
+158
View File
@@ -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>
+6
View File
@@ -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