티스토리 뷰

Study/App

[Android] so 파일 내 function Hooking

Notchicken 2020. 7. 16. 09:53

Android 분석 중 java 단에 구현되어 있지 않고, so 라이브러리 안에 구현되어 있는 로직을 분석해야 할 경우가 생긴다.

so 라이브러리 분석 중에 hooking 해보고 싶은 함수가 있을 경우 아래와 같이 코드를 작성할 수 있다.

 

1. linux에서 function 이름을 확인한다. (IDA로 so 파일을 열어서 확인할 수도 있다.)

nm -- demangle --dynamic "so파일명"

ex) nm --demangle --dynamic test.so | grep test
00000000003ee594 T AKScreen::test(TScriptNativeParam*)


nm -D "so파일명" | grep "찾고자하는 함수키워드"

ex) nm -D test.so | grep test
00000000003ee594 T _ZN8AKScreen9testEP18TScriptNativeParam

 

2. 찾은 function을 후킹하는 js 코드를 작성한다.

hook.js

var libname = "test.so" // so파일명
var funame = "_ZN8AKScreen9testEP18TScriptNativeParam" // function 이름

Interceptor.attach(Module.getExportByName(libname,funame),{
	onEnter: function(args){
		send("##########test is hooked#################");
		send("##########test value= "+args[1]+"################");
	},
	onLeave: function(retval){
		send("###################Inside onLeave###############");
	}
});
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday