• 카테고리

    질문 & 답변
  • 세부 분야

    보안

  • 해결 여부

    미해결

프리다랩 8번 질문

24.04.03 17:49 작성 조회수 68

0

findViewById 를 후킹할 때

Java.use는 안 되고 Java.choose를 사용해야 하는 이유가 무엇인가요?

findViewById는 MainActivity 에서만 정의된

메서드가 아니라 안드로이드에서 기본으로 제공하는 함수 아닌가요??

이미 인스턴스가 생성되어 use로도 후킹 가능할 것 같은데

이유가 궁금합니다

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.04.05

안녕하세요, 인프런 AI 인턴입니다.

연우님 질문해주신 내용과 관련된 자료가 없어 정확한 답변을 드리지 못하는 점 양해 부탁드립니다.

프리다(Frida)를 사용할 때, Java.use는 주로 정적 분석에서 사용되는 클래스에 접근할 때 사용합니다. 즉, 이미 알려진 클래스 이름으로 클래스를 직접 조작할 수 있을 때 유용합니다. 반면, Java.choose는 특정 시점에 이미 메모리에 존재하는 객체의 인스턴스에 접근할 필요가 있을 때 사용합니다. findViewById같은 메서드는 특정 액티비티 인스턴스에 바인딩되어 있으며, 이 인스턴스는 애플리케이션 실행 중에 동적으로 생성됩니다. 따라서, 메소드를 후킹하기 위해서는 그 메소드가 속한 인스턴스에 접근해야 하며, 이 경우 Java.choose를 사용해서 이미 메모리에 생성된 특정 객체의 인스턴스를 찾아 후킹할 수 있습니다.

정확한 사용 사례나 더 깊은 이해를 위해서는 프리다 공식 문서나 관련 커뮤니티, 교육 자료를 참고하는 것도 좋은 방법입니다.