inflearn logo
강의

Course

Instructor

Simulated hacking of Android apps using Frida

static 메소드 후킹후 콜...문제

488

eungga12160848

1 asked

0

uncrackable 1번을 풀면서 복호화 하는 과정중 static 함수를 후킹하여 작성하여 실행했지만 코드로 부를때는 hookMethod

라는 글이 안나옵니다 그러나 후킹은 제대로 된건지 success  This is the correct secret 문구는 뜹니다.

함수 부르는 구문이 문제가 있는건지 후킹하기전 메소드가 불러지는건지 잘 모르겠습니다.

import frida, sys


def on_message(message, data):
if message['type'] == 'send':
print(message['payload'])
else:
print(message)


jsCode = """
setImmediate(function()
{
Java.perform(function()
{
var aClass = Java.use("sg.vantagepoint.uncrackable1.a");
aClass.a.overload("java.lang.String").implementation = function(arg)
{
send("hookMethod");
return true;
}

Java.choose("sg.vantagepoint.uncrackable1.MainActivity",
{
onMatch :function (instance)
{
var string = Java.use("java.lang.String");

var result = aClass.a(string.$new("aaa"));

send("result = ");

},
onComplete : function ()
{
send("End");
}
})
})
});
"""

process = frida.get_usb_device().attach("owasp.mstg.uncrackable1")
script = process.create_script(jsCode)
script.on('message', on_message)
script.load()
sys.stdin.read()

frida 모의해킹 android

Answer 2

0

eungga12160848

음... 원래 result 값도 같이 출력해봤는데 false 로 반환 되더라구요.. 작동에는 문제 없지만 onMatch 안에서 

var result =  aClass.a(string.$new("aaa")); 

aClass.a(string.$new("aaa")); 이구문에서 함수가 실행되는데 제가 후킹한 함수가 아니라 원래 함수가 불려져서  false를 반환하는것 같습니다...

C:\Users\leeeungjoo\PycharmProjects\untitled\venv\Scripts\python.exe C:/Users/leeeungjoo/PycharmProjects/untitled/Hook.py

[*] Exit Bypass

result = false

End

hookMethod

이런식으로 값이 나오네요 ㅠㅠ

0

pentest

안녕하세요. 보안프로젝트 김태영입니다.

올려주신 코드에 루팅 탐지 우회 로직만 추가하여 테스트해보니 저는 잘 출력이 됩니다. 한번 컴퓨터를 재부팅하신 다음에 해보시겠어요?

코드에는 문제가 없습니다. 후킹은 제대로 되어 Success! 가 출력된 것입니다.

import frida, sys


def on_message(message, data):
    if message['type'] == 'send':
        print(message['payload'])
    else:
        print(message)


jsCode = """
setImmediate(function()
{
    Java.perform(function()
    {
    
        var exit_bypass = Java.use("java.lang.System");
		exit_bypass.exit.implementation = function(arg){
            send("[*] Exit Bypass");
		}
        
        var aClass = Java.use("sg.vantagepoint.uncrackable1.a");
        aClass.a.overload("java.lang.String").implementation = function(arg)
        {
            send("hookMethod");
            return true;
        }

        Java.choose("sg.vantagepoint.uncrackable1.MainActivity",
        {
            onMatch :function (instance)
            {
                var string = Java.use("java.lang.String");

                var result =  aClass.a(string.$new("aaa"));

                send("result = ");

            },
            onComplete : function ()
            {
                send("End");
            }
        })
    })
});
"""

process = frida.get_usb_device().attach("owasp.mstg.uncrackable1")
script = process.create_script(jsCode)
script.on('message', on_message)
script.load()
sys.stdin.read()

jadx에 alert 문구가 없는 경우

0

173

0

프리다 12.6.11 설치 오류

0

485

2

파이썬 바인딩 오류 문의

0

309

2

스크립트를 넣으면 에러가 발생합니다.

0

307

1

프리다랩 8번 질문

0

302

1

프리다를 녹스로 옮기는 과정에서 문제가 생깁니다ㅜㅜ

0

389

2

pip install frida-tools 버전 문제

0

1318

1

Anaconda에서 진행하는 이유

0

294

1

강의 기본 명령어 활용에서

0

508

1

APK, 특정 클래스에서 사용되는 함수의 호출 그래프

0

497

2

chrome.js는 어디서 다운 받나요?

0

426

1

frida 오류..?

0

747

1

질문입니다.

0

816

1

챌린지 02번 문제와 static 메소드 강의 질문 사항

0

420

1

pin brute force 시 앱 종료

0

543

1

frida -U [연결 프로세스] 후 에러

0

2094

1

FRIDA 활용-암호 복호화

0

513

1

프리다랩06번 스크립트 질문

0

657

1

frida sslPinning 질문

1

564

2

java.choose

0

296

1

frida usb 인식

0

394

1

선생님 구글메일로 질문메일 하나보냈습니다 답변부탁드립니다.

0

297

1

get_usb_device 에러 문의

0

727

2

frida-server 파일이 디렉토리로 저장됩니다.

0

628

1