NOX 에뮬레이터에서 Frida 사용 시 libil2cpp.so 파일을 찾을 수 없습니다.
안녕하세요
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 함수를 달아서 모듈이 없다는 오류를 피했습니다.
하지만 다음과 같은 오류가 발생합니다.
http://linforum.kr/bbs/board.php?bo_table=qa&wr_id=233
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 네이티브 라이브러릴 후킹하고 싶은데 어떻게 해야될까요?
고수님들 부탁드립니다.!