본문 바로가기
보안 및 개발/MOBILE

[iOS] Frida 사용자함수 hooking

by CH@3M 2019. 10. 7.

(바이너리의 코드 섹션 오프셋) + (수정하고자 하는 명령의 절대 주소 – 코드섹션의 시작 주소)

 

절대주소 = ida 주소

 

나머지 2개는 otool 이용 : otool -l ./Multi

 

Section
  sectname __text
   segname __TEXT
      addr 0x00009680    #text segment start
      size 0x00574664
    offset 22144    #offset
     align 2^4 (16)
    reloff 0
    nreloc 0
     flags 0x80000400

 

5904(Decimal) + (0x100001B7E(HEX) – 0x100001710(HEX)) = 0x1B7E

 

// 사용자 함수 hooking 코드 
//Example usage:
//# frida -U -f 패키지명 -l user_func_change.js

function print_buf( arg, size ){
    var buf = Memory.readByteArray( arg, size );
    console.log("\n"+hexdump( buf, {offset : 0 , length: size, header: true, ansi: false }) );
}
if (ObjC.available) { 
    try { 
        var module_base = Module.findBaseAddress('breadwallet');  // get base addr // addr 0x00009680	#text segment start
    /*
        console.log(hexdump(module_base, {
            offset: 0,
            length: 64,
            header: true,
            ansi: true
          }));
    */

    var custom3_5fdfd4 = module_base.add(0x3CE84);   // add function offset 22144 // 5680
    Interceptor.attach(custom3_5fdfd4, {   // set hook
        onEnter: function (args) {
            send("[S] !!!!!!!!!!!!!! custom3() called");  // before call
            send( args[0] + ", " +args[1] + ", " +args[2] + ", " + args[3] + ", " + args[4] + ", " + args[5] + ", " + args[6] )
            print_buf( args[0], 300)
            print_buf( args[1], 300)
            print_buf( args[3], 300)
            print_buf( args[4], 300)
        },
        onLeave: function (retval) {
            send("[W] custom1 ret: " + retval.toString() );  // after call
            send("\n")
        }
      });
     }
    catch(err) { console.log("[!] Exception2: " + err.message); } } 

	else { console.log("Objective-C Runtime is not available!"); }

 

참고 링크 : http://bitxflow.synology.me/wordpress/?p=368

안드로이드 후킹 자료 :  https://gflow-security.tistory.com/entry/Android-App-Hooking-with-Frida3

 

 

 

반응형

'보안 및 개발 > MOBILE' 카테고리의 다른 글

[iOS] objection 툴 사용  (0) 2019.10.07
[iOS] 파일시스템 구조  (0) 2019.10.07
[iOS] Frida server 설치 에러  (0) 2019.10.07
[iOS] Objective-C  (0) 2019.10.07
[iOS] frida hooking  (0) 2019.10.07