libmsaoaidsec.so v2.5.1 분석
2024년 11월 19일
개요 #
rooting 탐지는 허술했지만, frida 탐지를 하고 있어서 우회를 위해 분석을 시작했다.
조금 찾아보니 중국에서 bilibili 등의 유명한 앱에 포함된 유명한 솔루션이라서 분석하는 글을 많이 볼 수 있었다.
- https://bbs.kanxue.com/thread-280754.htm
- https://xz.aliyun.com/t/16185?time__1311=GuD%3D7IqjOx%2FtGQ%3DiQGk%2BD70iZBGxfhbD
Mobile Security Alliance oaid_sdk 를 말하며, https://www.msa-alliance.cn/col.jsp?id=120 에서 사용법에 대한 문서를 확인할 수 있다.
문서를 작성하는 현재 oaid_sdk는 2.5.1 버전이 최신버전이며, 원래 위 사이트에서 요청을 해야 받을 수 있는걸로 보이는데
깃허브에 있길래 포크해왔다.
빌드된 테스트앱도 포함되어 있고, 앱 내 lib 폴더에 해당 sdk 버전의 libmsaoaidsec.so 를 볼 수 있다.
분석 #
readelf로 확인했을 때 init 함수와 init_array 가 있다는게 확인된다.
init 함수는 있는데, init_array 오프셋을 가보면 readelf 에서 확인한 사이즈만큼만 예약되어 있고, 0byte로 채워져 있다.
init 함수에서는 iVar3에 특정 상태값을 저장하면서 무한루프 중 상태를 변환하며 로직을 실행시키도록 구현되어 있다.