-
카테고리
-
세부 분야
보안
-
해결 여부
미해결
a 메소드 implementation
20.04.03 00:05 작성 조회수 130
0
안녕하세요. 이번강의를 듣던 중 혹시 다른방법도 가능한지 궁금하여 질문 드립니다.
강의에서는 java.lang.System의 exit 메소드를 변경하였는데
MainActivity의 a메소드 자체를 implementation할수는 없는 건지 궁금합니다.
setImmediate(function(){
Java.perform(function(){
var main = Java.use("sg.vantagepoint.uncrackable1.MainActivity")
console.log(main)
main.a.implementation = function(arg){
console.log(arg)
console.log("a method called!")
}
})
})
위와 같은 코드 작성후 frida를 실행하여보았지만 작동하지 않았습니다.
프리다 버전은 강의와 동일하게 설정하였습니다.
답변을 작성해보세요.
0
김태영
2020.04.03
안녕하세요. 보안프로젝트 김태영입니다.
.
UnCrackable-Level1 문제 중 루팅 탐지 문제에 대해 질문주셨습니다.
루팅 탐지하는 앱마다 보여지는 행위는 각각 다릅니다. 그 행위에 기반하여 핵심 부분을 판단하여 우회하는 것이 가장 중요합니다.
.
UnCrackable-Level1 루팅 탐지는 OK 버튼을 클릭하면 앱이 종료되는 문제가 발생하였습니다. 앱이 종료되는 데에도 여러 문제가 존재합니다. 해당 문제에서는 디컴파일 도구로 코드를 확인한 결과, System.exit(0); 을 통해 종료되고 있습니다. 그렇기 때문에 java.lang.System의 exit 메소드를 재작성한 것입니다.
.
MainActivity의 a메소드 자체를 implementation하게 될 경우, 루팅 탐지 우회와 무관한 기존 구현된 코드를 정확히 동작하도록 코드로 표현해야 하기 때문에 상당히 복잡해집니다.
따라서, 앱 마다 우회하고 싶은 부분의 핵심을 파악하여 가장 간단한 방법으로 프리다 우회 코드를 작성하시는 것을 추천드립니다!
.
더 나아가 실사용 앱을 바탕으로 분석해서 우회하는 연습을 해보시는 것을 추천드립니다. 실사용 앱에서도 UnCrackable-Level1 문제와 같이 핵심만 파악하여 간단한 코드로 우회가 가능합니다.
참고로, 분석하신 실사용 앱 내용은 외부에 공개하시면 안됩니다.
답변 1