도메인 PF_SYSTEM에서 소켓을 사용하는 2 개의 kext 모듈 사이에 양방향 통신 채널을 구현할 수 있는지 궁금합니다. 이 방법은 주로 드라이버와 사용자 공간 에이전트 간의 통신에 사용됩니다.kext 모듈 간의 IPC
내 경우에는 IOKit을 기반으로하는 모듈 하나와 시작 및 중지 콜백 기능이있는 간단한 커널 모듈이 있습니다. 그들 사이에 몇 가지 작은 메시지를 전달하고자 ..
당신이 접근 방식은 내 요구에 적합하다 생각하십니까 또는 다른 바람직한 방법이 (공유 메모리? 마하 포트는?)
편집, 좀 더 깊이 파고 후, 어쩌면 다음과 같이 클라이언트 드라이버 plist 파일을 수정하여 한 드라이버에서 다른 드라이버로 API를 내보내는 옵션이 있습니다. 가능합니까?
<key>OSBundleLibraries</key>
<dict>
<key>com.driver.server_driver</key>
<string>1</string>
내가 서버 드라이버가 이미 (kextstat
에서 볼 수)로드 된 후 수동으로 클라이언트 드라이버를로드 할 때 이것은 그러나, 작동하지 않습니다, 나는 No kexts found for these libraries
오류가 발생합니다.
두 드라이버의 내용? 그래서 왜 처음부터 그들을 나누는가? 하지만 어쨌든 다른 드라이버에서 액세스 할 수있는 하나의 드라이버에서 전역 변수를 정의하여 목표를 달성 할 수있는 해커를 생각할 수 있습니다. 글로벌 변수를 저장하는 드라이버의 시작점을 찾는 방법을 찾아야합니다. 변수 (lldb에서'image list'와 같은 것)를 만들고 심볼 오프셋을이 값에 추가하십시오 ('nm'에서 가져 오거나 사나이 구조체를 읽고 그것을 파싱하십시오). 도움이 되길 바랍니다. – Zohar81