NOX 에뮬레이터에서 Frida 사용 시 libil2cpp.so 파일을 찾을 수 없습니다.

홈 > 안드로이드 > 안드로이드
안드로이드

NOX 에뮬레이터에서 Frida 사용 시 libil2cpp.so 파일을 찾을 수 없습니다.

1 minmoong 7 2621 0

안녕하세요


x86 아키텍쳐 녹스 에뮬레이터에서 유니티 게임을 분석하려고 합니다.


제가 짠 코드는

function getHPMaxBaseHook() {
  let il2cppBaseAddr = Module.getBaseAddress('libil2cpp.so');
  let offset = 0x2DB8340;
  let targetRealAddr = il2cppBaseAddr.add(offset);

  Interceptor.attach(targetRealAddr, {
    onEnter(args) {
      console.log('called');
    },
    onLeave(retval) {
      console.log(retval);
    }
  });
}


setTimeout(getHPMaxBaseHook(), 1000);


setTimeout 함수를 달아서 모듈이 없다는 오류를 피했습니다.


하지만 다음과 같은 오류가 발생합니다.


b6f418625c6e611fefb67522dcc6abe0_1688114252_3814.png


http://linforum.kr/bbs/board.php?bo_table=qa&wr_id=233


https://www.inflearn.com/questions/705294/frida-%EA%B0%95%EC%9D%98-%EC%BD%94%EB%93%9C%EA%B0%80-%EC%8B%A4%ED%96%89%EC%9D%B4-%EC%95%88-%EB%90%A9%EB%8B%88%EB%8B%A4


http://linforum.kr/bbs/board.php?bo_table=qa&wr_id=1500


그래서 위에 글들을 찾아봤는데 결론은 frida가 arm 네이팁 라이브러리에대한 후킹을 지원하지 않기때문에 루팅된 단말기에서 frida-server를 설치해(혹은 루팅되지 않은 단말기에 frida-gadget을 설치하여) 작업을 진행해야 한다는 것입니다.


그래서 루팅되지 않은 저의 단말기에 frida-gadget을 사용한 방법을 시도했습니다.


그런데 frida-gadget을 삽입하고 앱 signing 후 단말기에서 앱을 설치하는데 '앱이 설치되지 않았습니다.' 하는 메시지와 함께 앱이 설치되지 않았습니다.


frida-gadget을 삽입하고 리패키징하는 작업을 매번 분석할 때 마다 하기는 번거롭습니다.


따라서 녹스 에뮬레이터에서 arm 네이티브 라이브러릴 후킹하고 싶은데 어떻게 해야될까요?


고수님들 부탁드립니다.!

 

7 Comments
3 하리하리 2023.07.02 16:00  
해당 환경에서 frida로 후킹은 힘듭니다..
일단 frida-gadget은 apk를 수정하지 않고 재설치 가능한지 확인, 재설치 후 실행 시 정상 작동하는지 확인
정상작동한다면 frida-gadget을 인젝션 시 수정한 smali코드를 확인하고 수정 후 리패킹 및 재설치해보세요.
+) frida-gadget은 앱 무결성을 훼손하기때문에, 무결성 검증 로직이 존재하면 무결성도 추가 분석 후 우회해야 가능해서 루팅 단말기를 구하는게 빠를거에요.
1 minmoong 2023.07.02 17:21  
답변 감사합니다! 되도록이면 frida-gadget을 사용해 해결하고 싶네요..!

해당 apk 파일을 apkcombo 사이트에서 다운로드 받은뒤 수정하지 않고 바로 휴대폰에 옮겨서 재설치 및 실행이 가능한것을 확인했습니다.

그래서 frida-gadget을 삽입하고 https://domdom.tistory.com/287 블로그에서 설명한 대로 apktool로 리패키징 후 keytool로 키를 생성하고 jarsigner로 사이닝을 했습니다.

그런데 휴대폰에 옮겨서 설치하려고 하니 '앱이 설치되지 않았습니다' 며 설치가 안되네요..

해당 앱 말고도 다른 앱들도 해보니 같은 문제가 발생합니다.

설치 도중에 문제가 발생하는것을 보아 앱에서 무결성 체크를 해서 발생한것이 아니라 제가 앱 수정을 잘못한 것으로 추측됩니다..

앱 리패키징 과정중 문제가 있었을까요?
3 하리하리 2023.07.03 12:58  
댓글내용 확인
1 minmoong 2023.07.03 14:48  
답변 감사합니다..! 한 번 해보겠습니다
1 음야 2023.07.28 10:44  
감사합니다
2 히동 2023.08.07 16:06  
감사합니다
1 안드로이드해커 2023.12.09 23:45  
감사합니다

Congratulation! You win the 11 축하드립니다! 당첨되셨어요~!