https://taesun1114.tistory.com/entry/%EC%95%B1-%EC%8B%A4%ED%96%89-%EC%A4%91-%EB%A1%9C%EB%93%9C%ED%95%98%EB%8A%94-%ED%81%B4%EB%9E%98%EC%8A%A4-%ED%99%95%EC%9D%B8?category=729990 

 

Frida를 이용한 앱 실행 중 로드하는 클래스 확인

앱 실행시 어떤 class가 로드되는지 앱 진단 중 필요해서 뒤적이다가 Java.enumerateLoadedClasses라는 함수를 발견했습니다. 아래 내용은 프리다 공홈에서 가져왔습니다. Java.enumerateLoadedClasses를 이용한..

taesun1114.tistory.com

 

앱 실행시 어떤 class가 로드되는지 앱 진단 중 필요해서 뒤적이다가 

Java.enumerateLoadedClasses라는 함수를 발견했습니다.

 

아래 내용은 프리다 공홈에서 가져왔습니다.

 

 

Java.enumerateLoadedClasses를 이용한 앱 실행 중 로드되는 클래스를 출력하는 함수입니다.

 

Usage : python <하단소스저장파일이름>.py <패키지이름>

 

import sys
import frida

def on_message(message,data):
    print "[%s] -> %s" % (message, data)


PACKAGE_NAME = sys.argv[1]

jscode = """
Java.perform(function(){
    Java.enumerateLoadedClasses(
    {
      onMatch: function(className)
      {
        send(className);
      },
      onComplete:function(){}
    });

});
"""
   
try:
    device = frida.get_usb_device(timeout=10)
    pid = device.spawn([PACKAGE_NAME]) 
    print("App is starting ... pid : {}".format(pid))
    process = device.attach(pid)
    device.resume(pid)
    script = process.create_script(jscode)
    script.on('message',on_message)
    print('[*] Running Frida')
    script.load()
    sys.stdin.read()
except Exception as e:
    print(e)

 

 

 

 

코드 실행 시 화면이며, 안드로이드 내장 클래스까지 출력되어 상당히 지저분합니다.

 

시간 날때 실행 패키지의 클래스만 출력되도록 다듬도록 하겠습니다.

 

 

================================= 18.01.08 추가 ========================================================

 

난독화되어 있는 앱으로 확인한 결과, 실행시 난독화가 풀리는게 아니고 난독화가 진행되면 앱에서 해당 클래스 및 함수의 이름이 바뀌어서 저장되는 것 같습다.

 

실행 시 클래스 로드 할때도 변경된 함수로 로드하네요.

 

솔루션을 이용하는 앱의 경우 솔루션이 .dex의 헤더를 망가트려 디컴파일이 안되게 하는데 이를 믿고 난독화를 안하는 앱이 대다수입니다.

 

이런 앱들은 해당 스크립트로 함수 내부 클래스 네임을 불러올 수 있으므로 난독화는 필수로 해야 할 듯 하네요

 

 

출처: https://taesun1114.tistory.com/entry/앱-실행-중-로드하는-클래스-확인?category=729990 [:티스토리]

'경로 및 정보' 카테고리의 다른 글

Space X bug crowd  (0) 2022.08.25
GooFuzz - The Power of Google Dorks  (0) 2022.08.17
Web Browser 0-day Hunting  (0) 2022.07.05
Elastic 경로  (0) 2022.07.01
Postgresql Injection  (0) 2022.06.17
블로그 이미지

wtdsoul

,