frida native hooking(NDK 후킹)

2019. 7. 21. 19:47 보안 이야기/취약점

FRIDA 툴을 이용해서 so 파일 NDK 로 작성된 부분에 hooking을 하는 소스코드입니다

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import frida
import sys
 
package_name = "패키지명 기입"
 
 
def get_messages_from_js(message, data):
            print(message)
            print (message['payload'])
 
 
def instrument_debugger_checks():
        #Interceptor.attach (Module.findExportByName ( "hooking 해야하는 so 파일명", "Function명! ida로 봤을때의 이름과 동일하게 작성"), {
  
        #프록시 유무에 따라 리턴값 확인 후 패치
        hook_code = """
       Interceptor.attach (Module.findExportByName ( "libXXXX.so", "FunctionName"), {
            onEnter: function (args) {
                 
        },
            onLeave: function (retval) {
                // retval.replace(패치하고싶은 값)
                console.log(retval)
 
    }
});"""
    return hook_code
 
# hook 이 잘 안걸리면  js만 가지고 훅걸것
process = frida.get_usb_device().attach(package_name)
script = process.create_script(instrument_debugger_checks())
script.on('message',get_messages_from_js)
script.load()
sys.stdin.read()
cs

 

 

 

자세한 소스는 https://github.com/bourbonkk/FRIDA_hook_js

 

bourbonkk/FRIDA_hook_js

Contribute to bourbonkk/FRIDA_hook_js development by creating an account on GitHub.

github.com