hacktricks/mobile-pentesting/android-app-pentesting/reversing-native-libraries.md

6.5 KiB

네이티브 라이브러리 역공학

htARTE (HackTricks AWS Red Team Expert)로부터 AWS 해킹을 제로부터 전문가로 배우세요 htARTE (HackTricks AWS Red Team Expert)!

HackTricks를 지원하는 다른 방법:

WhiteIntel

WhiteIntel다크 웹을 활용한 검색 엔진으로, 회사나 고객이 스틸러 악성 코드에 의해 침해당했는지 무료로 확인할 수 있는 기능을 제공합니다.

WhiteIntel의 주요 목표는 정보를 도난하는 악성 코드로 인한 계정 탈취 및 랜섬웨어 공격을 막는 것입니다.

그들의 웹사이트를 방문하여 엔진을 무료로 시험해 볼 수 있습니다:

{% embed url="https://whiteintel.io" %}


추가 정보는 여기를 확인하세요: https://maddiestone.github.io/AndroidAppRE/reversing_native_libs.html

Android 앱은 성능이 중요한 작업을 위해 일반적으로 C 또는 C++로 작성된 네이티브 라이브러리를 사용할 수 있습니다. 악성코드 제작자들도 이러한 라이브러리를 사용하며, DEX 바이트 코드보다 역공학이 어려워집니다. 이 섹션은 어셈블리 언어를 가르치는 것보다 Android에 특화된 역공학 기술을 강조합니다. 호환성을 위해 ARM 및 x86 버전의 라이브러리가 제공됩니다.

주요 포인트:

  • Android 앱의 네이티브 라이브러리:
  • 성능이 중요한 작업에 사용됨.
  • C 또는 C++로 작성되어 역공학이 어려움.
  • .so (공유 객체) 형식으로 발견되며, Linux 이진 파일과 유사함.
  • 악성코드 제작자들은 분석을 어렵게 하기 위해 네이티브 코드를 선호함.
  • Java Native Interface (JNI) 및 Android NDK:
  • JNI는 Java 메서드를 네이티브 코드로 구현할 수 있게 함.
  • NDK는 Android에 특화된 네이티브 코드 작성을 위한 도구 모음임.
  • JNI 및 NDK는 Java (또는 Kotlin) 코드를 네이티브 라이브러리와 연결함.
  • 라이브러리 로딩 및 실행:
  • 라이브러리는 System.loadLibrary 또는 System.load를 사용하여 메모리에 로드됨.
  • 라이브러리 로딩 시 JNI_OnLoad가 실행됨.
  • Java에서 선언된 네이티브 메서드는 네이티브 함수에 링크되어 실행됨.
  • Java 메서드를 네이티브 함수에 링크:
  • 동적 링킹: 네이티브 라이브러리의 함수 이름이 특정 패턴과 일치하여 자동 링킹됨.
  • 정적 링킹: 링킹을 위해 RegisterNatives를 사용하며, 함수 이름 및 구조에 대한 유연성을 제공함.
  • 역공학 도구 및 기술:
  • Ghidra 및 IDA Pro와 같은 도구가 네이티브 라이브러리를 분석하는 데 도움을 줌.
  • JNIEnv은 JNI 함수 및 상호 작용을 이해하는 데 중요함.
  • 라이브러리 로드, 메서드 링킹 및 네이티브 함수 식별을 연습할 수 있는 예제가 제공됨.

자료:

WhiteIntel

WhiteIntel다크 웹을 활용한 검색 엔진으로, 회사나 고객이 스틸러 악성 코드에 의해 침해당했는지 무료로 확인할 수 있는 기능을 제공합니다.

WhiteIntel의 주요 목표는 정보를 도난하는 악성 코드로 인한 계정 탈취 및 랜섬웨어 공격을 막는 것입니다.

그들의 웹사이트를 방문하여 엔진을 무료로 시험해 볼 수 있습니다:

{% embed url="https://whiteintel.io" %}

htARTE (HackTricks AWS Red Team Expert)로부터 AWS 해킹을 제로부터 전문가로 배우세요 htARTE (HackTricks AWS Red Team Expert)!

HackTricks를 지원하는 다른 방법: