Frida libil2cpp 후킹 관련해서 질문 드립니다.

홈 > 커뮤니티 > 질문 게시판
질문 게시판

Frida libil2cpp 후킹 관련해서 질문 드립니다.

4 py0zz1 2 5750
안녕하세요. Frida 공부하고 있는 학생입니다.

Unity기반 Android어플을 후킹하려고 하는데, 분명 돼야 할 것이 안되길래 몇시간 삽질 끝에 질문 글 올립니다.

<hook code>
var base = Module.findBaseAddress("libil2cpp.so");
console.log("[*] BASE: " + base);
 
var bg1Click_offset = 0x69A89C
var bg1Click = base.add(bg1Click_offset);
console.log("[*] bg1Click: "+ bg1Click);
   
   
Interceptor.attach(bg1Click,
{
    onEnter: function(args)
    {
        console.log("HI");
    },
    onLeave: function(retVal)
    {
        console.log(retVal);
        console.log("Bye");
    }
});

우선 il2dumper로 타겟함수의 RVA값을 가져온 뒤, li2cpp.so Base주소에 더하여 타겟 함수의 주소를 얻었습니다.
그 후, Interceptor.attach(address)로 후킹을 시도했는데 몇 시간을 바꿔서 해봐도 후킹이 안되네요..

무조건 실행되는 함수라고 생각되는데요..

고수님들 조언 부탁드립니다.
2 Comments
M LIN 2019.11.24 11:50  
console.log(hexdump(address));
hexdump 이용해서 로그 찍어보시고 인스트럭션이 다르다면, ( or 린엔진으로 확인 )
프로그램 헤더 가셔서 PT_LOAD 세그먼트의 p_offset - p_vaddr 값을 구하신다음에 해당 주소랑 더해주시면 됩니다.
보통 -0x1000 을 더해주시면 됩니당
4 py0zz1 2019.11.24 21:25  
감사합니다!