반응형
Frida를 이용한 Android so파일 native function 후킹
#안드로이드 SO 파일 후킹해보기
#후킹 SO 파일
#안드로이드 네이티브 함수 후킹
#fopen함수 후킹을 통해 입력값 변조해보기
fopen 함수 입력 값 변조해보기 예제입니다.
입력 파라미터의 타입에 따라 형태는 조금씩 다를 수 있으니 참고하시기 바랍니다.
import frida
import sys
package_name = "PACKAGE_NAME"
def get_messages_from_js(message, data):
if message['type'] == 'send':
print("[*] {0}".format(message['payload']))
else:
print(message)
def instrument_debugger_checks():
hook_code = """ Interceptor.attach (Module.findExportByName (null, "fopen"), { onEnter: function (args) { console.log("[*] onEnter >> "); if(Memory.readUtf8String(args[0]) == "/sdcard/1111111111111111"){ const file = "/sdcard/222222222222222"; Memory.writeUtf8String(args[0], file); console.log(Memory.readUtf8String(args[0])); } } }); """
return hook_code
device=frida.get_usb_device()
#p1=device.spawn([package_name])
#process = device.attach(p1)
process = device.attach(package_name)
script = process.create_script(instrument_debugger_checks())
script.on('message',get_messages_from_js)
script.load()
#device.resume(p1)
sys.stdin.read()
반응형