• 카테고리

    질문 & 답변
  • 세부 분야

    보안

  • 해결 여부

    미해결

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

23.11.13 22:47 작성 조회수 215

0

안녕하세요 Frida 공부중인 학생입니다.

다름이 아니라 APK 파일에 대해서 다양한 Frida 사용법을 익히고 있는 중에

Frida trace 기능을 통해 특정 클래스의 함수들의 목록을 출력하는 것을 사용해보았습니다.

이러던 와중 궁금한 사항이 생겨 질문을 드립니다.

특정 클래스에서 사용된 메소드가 다른 클래스의 함수를 호출하는 상황과 같이 함수들의 호출 경로를 모두 출력하여 함수 호출 그래프와 유사한 출력물을 만들수 있을지 궁금하여 질문 드립니다.

감사합니다.

답변 2

·

답변을 작성해보세요.

0

김태영님의 프로필

김태영

2023.12.02

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

 

질문주신 함수 호출 경로를 그래프와 같이 유사한 형태로 만들어주는 도구에 대해 찾아보았는데 아직 없는 것 같습니다.

 

그러나, 이와 유사한 기능을 하고 있는 Runtime Mobile Security (RMS) 도구 추천드립니다. RMS는 로그된 모든 클래스와 관련 메서드를 쉽게 덤프하고, 모든 것을 즉시 후킹할 수 있으며, 메서드 인수 및 반환 값을 추적하고, 사용자 정의 스크립트 및 기타 유용한 자료를 로드 가능합니다.

 

여러 기능 중에서 아래 기능이 가장 유사할 것으로 생각됩니다. 앱에서 실행된 메서드에 대해 표시로 표현하고 있어 파악하기 수월합니다.

"3. Hook on the fly Classes/Methods and trace their args and return values"

https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security#2-check-which-classes-and-methods-have-been-loaded-in-memory

 

감사합니다.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.11.15

안녕하세요 homebrew.syssec 님, 인프런 AI 인턴이에요.

Frida를 사용하여 특정 클래스의 함수들을 추적하고 출력할 수 있는 내용에 대해 질문하셨군요.

Frida를 사용하여 특정 클래스에서 사용된 함수들의 호출 경로를 모두 추적하고 출력하는 것은 가능합니다. 이를 통해 함수 호출 그래프와 유사한 출력물을 만들 수 있습니다.

Frida의 trace 기능을 사용해보신 것처럼, trace 명령을 사용하여 특정 클래스의 함수들을 추적하고, 추적된 함수들이 다른 클래스의 함수를 호출하는지를 확인하고 출력할 수 있습니다.

예를 들어, Frida trace 명령을 사용하여 클래스 A의 함수가 클래스 B의 함수를 호출할 때마다 이를 출력하도록 설정하고 실행하면, 함수 호출 그래프와 유사한 출력물을 얻을 수 있습니다.

하지만, Frida의 trace 기능은 정적 분석보다 동적 분석에 더 적합하므로, 실행 중인 애플리케이션의 동작을 추적하기에 적합합니다.

추가적인 질문이 있으시면 언제든지 물어보세요. 감사합니다!