-
카테고리
-
세부 분야
보안
-
해결 여부
미해결
-f 옵션으로 실행시 Java.choose가 인스턴스를 잡아내지 못합니다.
20.03.29 01:38 작성 조회수 578
0
강의 FridaLab 예제 문제 2번에서 아래와 같은 스크립트로 frida를 실행하였습니다.
frida -U --no-pause -f uk.rossmarks.fridalab -l test.js
Java.perform(function(){
var chall02
Java.choose("uk.rossmarks.fridalab.MainActivity",{
onMatch : function(instance){
send("[*] instance : " + instance)
chall02 = instance
},
onComplete : function(){
send("[*] chall 02 complete!!")
}
})
chall02.chall02()
})
TypeError: cannot read property 'chall02' of undefined
at [anon] (../../../frida-gum/bindings/gumjs/duktape.c:56618)
at /ever.js:12
at frida/node_modules/frida-java-bridge/lib/vm.js:11
at frida/node_modules/frida-java-bridge/index.js:389
at frida/node_modules/frida-java-bridge/index.js:374
at we (frida/node_modules/frida-java-bridge/lib/class-factory.js:598)
at frida/node_modules/frida-java-bridge/lib/class-factory.js:581
실행 하면 이러한 오류가 발생합니다.
-f옵션 없이 앱이 실행 중인 상태에서 frida를 실행하면 인스턴스를 잡아 문제는 풀 수 있었으나, -f 옵션에서는 왜 인스턴스를 잡아내지 못하는지 궁금합니다.
답변을 작성해보세요.
0
김태영
2020.03.29
안녕하세요. 보안프로젝트 김태영입니다.
아래 에러는 정의되지 않은 chall02 객체의 property를 읽어내거나 method를 호출했을 때 발생합니다.
TypeError: cannot read property 'chall02' of undefined
질문주신 코드와 명령어로 실행한 결과, Process terminated가 발생하여 setImmediate 코드를 추가하여 작성하였습니다.
코드 추가 후 아래 명령어로 진행한 결과 정상 동작하였습니다.
다시 한번 테스트 부탁드립니다. 프리다 버전도 강의와 동일한 12.6.11인지 확인 부탁드립니다.
frida -U --no-pause -f uk.rossmarks.fridalab -l qna1.js
setImmediate(function() {
Java.perform(function(){
var chall02
Java.choose("uk.rossmarks.fridalab.MainActivity",{
onMatch : function(instance){
send("[*] instance : " + instance)
chall02 = instance
},
onComplete : function(){
send("[*] chall 02 complete!!")
}
})
chall02.chall02()
})
})
답변 1