Unity App 후킹 질문입니다.
py0zz1
9
7881
2019.12.05 21:46
평소에 Frida분석을 하다가 게임쪽 후킹에 관심이 생겨서 요 근래 혼자서 해보고 있는데요..
mono나 il2형식의 App을 후킹할 때, 다음과 같이 후킹코드를 작성하고 있습니다.
var base = Module.findBaseAddress("libmono.so");
console.log("[*] BASE: "+base);
var Target_offset = 0x00017D40
var Target = base.add(Target_offset);
console.log("[*] Target: "+ Target);
Interceptor.attach(Target,
{
onEnter: function(args)
{
console.log("[*] Target IN");
},
onLeave: function(retVal)
{
console.log("[*] Target OUT");
}
});
위와 같이 mono일 경우에는 libmono.so, il2일경우에는 libil2cpp.so의 Base주소를 가져옵니다.
그리고 Assembly-CSharp.dll에서 알아낸 타겟메소드의 RVA를 Base주소에 더해서 후킹포인트를 잡습니다.
근데 후킹이 안되더라구요.. 원하는 후킹포인트를 제대로 잡은 것 같긴한데 후킹이 제대로 안됩니다..
예를 들어, Touch를 하면 실행되는 메소드를 후킹하면 터치를 할때 진입구문이 실행되어야 하는데 후킹스크립트에서 어떤 반응도 없습니다.
질문은 다음과 같습니다.
1. Frida Trace로 Native코드를 쭉 뽑아낼 수 있을까요? (린엔진 도움없이 제가 한번 짜보고 싶습니다.)
2. 후킹할 라이브러리가 mono에서는 libmono.so , il2에서는 libil2cpp.so가 맞나요?
이 외에도 고수님들의 조언 부탁드립니다. 또한, unity 후킹 쪽 레퍼런스 자료가 있다면 공유 부탁드립니다!
mono나 il2형식의 App을 후킹할 때, 다음과 같이 후킹코드를 작성하고 있습니다.
var base = Module.findBaseAddress("libmono.so");
console.log("[*] BASE: "+base);
var Target_offset = 0x00017D40
var Target = base.add(Target_offset);
console.log("[*] Target: "+ Target);
Interceptor.attach(Target,
{
onEnter: function(args)
{
console.log("[*] Target IN");
},
onLeave: function(retVal)
{
console.log("[*] Target OUT");
}
});
위와 같이 mono일 경우에는 libmono.so, il2일경우에는 libil2cpp.so의 Base주소를 가져옵니다.
그리고 Assembly-CSharp.dll에서 알아낸 타겟메소드의 RVA를 Base주소에 더해서 후킹포인트를 잡습니다.
근데 후킹이 안되더라구요.. 원하는 후킹포인트를 제대로 잡은 것 같긴한데 후킹이 제대로 안됩니다..
예를 들어, Touch를 하면 실행되는 메소드를 후킹하면 터치를 할때 진입구문이 실행되어야 하는데 후킹스크립트에서 어떤 반응도 없습니다.
질문은 다음과 같습니다.
1. Frida Trace로 Native코드를 쭉 뽑아낼 수 있을까요? (린엔진 도움없이 제가 한번 짜보고 싶습니다.)
2. 후킹할 라이브러리가 mono에서는 libmono.so , il2에서는 libil2cpp.so가 맞나요?
이 외에도 고수님들의 조언 부탁드립니다. 또한, unity 후킹 쪽 레퍼런스 자료가 있다면 공유 부탁드립니다!