는 UPDATE : 18/01/2018
어떤 남자가 당신 같은 요구 사항을 나에게 접근. 토론과 시행 착오를 거친 후 그는 해결책을 찾았습니다.
1) 키로거 코드에서 RunLoop.main.run()
행을 주석 처리하면됩니다.
2) 이제 앱 샌드 박스를 사용 중지하십시오. 앱 샌드 박스를 사용하려면이 자격을 com.apple.security.device.usb = YES
에 추가하십시오. 원래
: 나는 내 키로거를 쓰고있을 때 18/03/2017
나는 또한 그것을 위해 처음에 많이 검색. 하루가 지나면 나는 포기했다.
내 UI에서 키로거를 신속하게 실행하기 위해 Process
을 사용합니다.
내가 할 방법은 다음과 같습니다
파일/폴더의 경로와 같은 키로거 소스에 필요한 수정 작업을 수행합니다.
키로거 소스를 컴파일하십시오.
키로거를 Xcode에서 프로젝트로 드래그하고 copy if needed
을 확인하십시오.
실행 파일은 .app
내의 리소스 폴더에 있습니다.
Process
클래스와 launch()
을 사용하여 실행 파일을 실행하여 실행 파일/키로거를 시작하십시오.
생성 된 프로세스를 종료해야합니다. 그렇지 않으면 키로거가 백그라운드에서 실행됩니다. 키로거를 중지하려면 Process
변수에 terminate()
을 사용하십시오.
코드 :
let pathToKeylogger = Bundle.main.resourcePath! + "/Keylogger" // path to keylogger executable
keylogger = Process() // You need to declare this variable at class-level because you need to have the variable later to terminate it.
keylogger.launchPath = pathToKeylogger
keylogger.launch()
이 종료 :
keylogger.terminate()
편집 : 귀하의 응용 프로그램을 종료합니다 18/03/2017
시도 일반적으로 Xcode에서 중지 버튼을 누르지 않고 메뉴 막대에서 종료하거나 도킹에서 클릭합니다. 나는 당신이 Xcode에서 멈추고 있다고 생각한다.
다시 만납니다! 코드를 사용해 보겠습니다. – ssh
작은 문제가 있습니다. 나는'keylogger.terminate()'를'applicationWillTerminate (_ aNotification : Notification)'에 넣었지만 절대로 호출하지 않았습니다. 내가 인쇄 문을 배치하여 검사하고 터미널에 체크인했을 때 키로거가 백그라운드에 있습니다. – ssh
그것은 작동합니다! 다시 한번 감사드립니다. – ssh