qingfro9님의 블로그 입니다.

[정보보안][tool]Frida #1 본문

정보보안/TOOL

[정보보안][tool]Frida #1

qingfro9 2020. 2. 20. 23:09
어떤거지?
  • 프리다는 Ole가 개발한 DBI(동적 바이너리 인스트 루먼테이션) 프레임 워크로 스크립트와 함께 사용하여 실행 중인 프로그램 동작을 모니터링과 수정 및 기록할 수 있다.
  • 프리다는 애플리케이션에 Hook(연결)하고, 메모리와 기능에 대해 연결하고 있는 동안 임의로 만든 자바스크 립트를 삽입할 수 있다.
  • 윈도우, 맥OS, GNU/Linux, iOS, Android 및 QNX에서 자바스크립트 또는 자신의 라이브러리리의 스니펫을 네이티브 앱에 삽 입할 수 있다.
  • 파이썬 기반 프로그램으로 파이썬 라이브러리를 많 이 사용한다. 프리다는 자바스크립트, C, Swift 등 여러 API를 지원한다.
 
주요 기능
  • AppMon과 Needle 등의 도구에서 프리다를 기반으로 사용
  • 함수 후킹 관점 으로 특정 함수에 연결하여 반환 값을 변경
  • 함수 추적 관점으로 실행 중인 애플리케이션 에 디버깅을 수행 / 실행 중인 앱 내부 의 함수를 재작성 가능
  • 힙 메모리 내 객 체 인스턴스를 검색하거나 사용 가능
  • 실시간으로 트래픽을 스니핑 또는 암호해독 가능
  • 탈옥 또는 루팅 되지 않은 단말기에서 도 사용
 
프리다 설치
 
$ pip install frida-tools
 
안드로이드 분석
  • 분석을 위해서는 프리다와 안드리오드 에뮬레이터가 통신하기 위한 프리다 서버 실행 작업이 필요하다.(안드로이드 내에서 frida 서버를 실행)
  • /data/local/tmp 폴더
  • 실행 : $ ./frida-server &
 
프리다 명령어
 
$ frida-ps -U #안드로이드에 실행 중인 프로세스 정보 확인
 
#자바스크립트로 페이로드 작성
Java.perform(function(){        #기본 페이로드 syntax
/*
    ...
    do sth
    ...
*/
})
 
#앱에서 사용하는 클래스와 연동되는 myClass 정의
var myClass = Java.use(com.mypackage.name.class)
 
#myClass를 통해 객체 인스턴스 생성 및 정의
var myClassInstance = myClass.$new()
 
#클래스의 메소드와 속성을 액세스
var result = myClassInstance.myMethod(“param”)
 
#앱에서 정의된 메소드의 구현 내용을 재작성
myClass.myMethod.implementation = function(param){
    //    do sth
}
 
 
좋은 정보들만 정리한 자료

 

 

 

'정보보안 > TOOL' 카테고리의 다른 글

[정보보안][tool]msticpy  (0) 2020.02.28
homebrew 2020 top tool 정리  (0) 2020.02.25
[정보보안][Tool]Cerbero Suite 도구 관련된 내용  (0) 2020.01.23
[TOOL]hwpscan 버전체크 문제  (0) 2018.07.29
[TOOL]hwp parser 조사  (0) 2018.07.29
Comments