Запустите команду терминала безопасности через приложение XProtect - PullRequest
0 голосов
/ 17 мая 2019

macOS включает в себя Yara, xProtect и MRT.app

Что я хотел бы сделать, так это создать сканер графического интерфейса пользователя в XCode, который позволит мне указать конкретный каталог на моем Mac и позволить запустить команду терминала, например:

(при использовании bin / bash) sudo /System/Library/CoreServices/MRT.app/Contents/MacOS/mrt -a -r ~ / Library

task = [[NSTask alloc] init];
[task setLaunchPath:@"/bin/sh"];
[task setArguments:@[@"/xprotect.sh"]];
[task setStandardOutput:[NSPipe new]];
[task setStandardError: [task standardOutput]];
[task setStandardInput: [NSPipe new]];    
[task launch];   

NSNotificationCenter *notificationCenter = [NSNotificationCenter      defaultCenter];
[notificationCenter addObserver:self
 selector:@selector(getReadData:)
   name:NSFileHandleReadCompletionNotification
 object:[[task standardOutput] fileHandleForReading]];
[[[task standardOutput] fileHandleForReading] readInBackgroundAndNotify];    
[notificationCenter addObserver:self
   selector:@selector(QuitTask:)
   name:NSTaskDidTerminateNotification
   object:task];}

NSData *data = [[aNotification userInfo] objectForKey:@"NSFileHandleNotifictionDataItem"];
NSString *response = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    [delegate ReadInResponse:response];
    [[aNotification object] readInBackgroundAndNotify];}

[[NSNotificationCenter defaultCenter]
removeObserver:self
 name:NSTaskDidTerminateNotification
 object:task
 ];
[[NSNotificationCenter defaultCenter]
    removeObserver:self
    name:NSFileHandleReadCompletionNotification
    object:[[task standardOutput]fileHandleForReading]];
task = nil;
[delegate ReadInResponse:@"task"];
}@end

В графическом интерфейсе отображается только «Задача». Он никогда не выполняет сценарий, и даже если он это сделал, я не уверен, что это лучший способ выполнить его.

...