system_server broadcast hooking
2018. 3. 17. 12:52ㆍSecurity ★ Development/시스템
반응형
system_server는 안드로이드에서 작동하는 프로세스로 init -> zygote -> system_server 순으로 구동됩니다.
여러가지 서비스 manager 역할을 하며 framework에 속한다고보면 됩니다.
여기서 프로세스간 브로드캐스트를 잡을 수 있습니다.
am/BroadcastQueue.java
private final void processCurBroadcastLocked(BroadcastRecord r,
ProcessRecord app) throws RemoteException {
if (DEBUG_BROADCAST) Slog.v(TAG,
...
processCurBroadcastLocked() 함수에서 할 수 있는데 BroadcastRecord와 ProcessRecord에서 각각의 프로세스 정보를 얻을 수 있습니다.
각각의 전처리를 해준 다음 AOSP 기준으로 app.thread.scheduleReceiver()가 호출되기 전에 확인해줍니다.
위 시점에서 r.callerPackage가 브로드캐스트를 보내는 프로세스이고 app.processName이 브로드캐스트를 받는 프로세스가 됩니다.
bind를 통해 보내는 intent는 여기서 잡을 수 없고 binder driver 혹은 ActivityManagerService에서 잡아야하지만 sendBroadcast()를 통해 보내는 브로드캐스트는 확인할 수 있습니다.
'Security ★ Development > 시스템' 카테고리의 다른 글
리버스 텔넷(Reverse telnet) (0) | 2020.06.06 |
---|---|
Parcel::remove() not yet implemented! (0) | 2020.05.23 |
Android java object variable memory address (0) | 2019.11.09 |
윈도우 공유폴더 및 널 세션 제거 (0) | 2017.10.29 |