Manual DeObfuscation

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법:

**수동 해독 기법

소프트웨어 보안 영역에서 암호화된 코드를 이해 가능한 형태로 만드는 프로세스인 해독은 중요합니다. 이 가이드는 정적 분석 기법과 암호화 패턴 인식에 초점을 맞춘 다양한 해독 전략을 다룹니다. 또한 실제 응용 및 더 고급 주제를 탐구하려는 사람들을 위한 추가 자료를 제공합니다.

정적 해독을 위한 전략

암호화된 코드를 다룰 때, 암호화의 성격에 따라 여러 전략을 사용할 수 있습니다:

  • DEX 바이트 코드 (Java): 효과적인 접근 방법 중 하나는 응용 프로그램의 해독 방법을 식별한 다음 이러한 방법을 Java 파일에 복제하는 것입니다. 이 파일은 대상 요소의 암호화를 되돌리기 위해 실행됩니다.

  • Java 및 Native Code: 다른 방법은 해독 알고리즘을 Python과 같은 스크립팅 언어로 변환하는 것입니다. 이 전략은 주요 목표가 알고리즘을 완전히 이해하는 것이 아니라 효과적으로 실행하는 것임을 강조합니다.

암호화 인식

암호화된 코드를 인식하는 것은 해독 프로세스의 첫 번째 단계입니다. 주요 지표는 다음과 같습니다:

  • Java 및 Android에서 문자열의 부재 또는 섞임은 문자열 암호화를 시사할 수 있습니다.

  • 에셋 디렉토리에 바이너리 파일의 존재 또는 DexClassLoader 호출은 코드 해제 및 동적 로딩을 시사합니다.

  • 식별할 수 없는 JNI 함수와 함께 사용되는 네이티브 라이브러리의 사용은 네이티브 메서드의 암호화를 시사합니다.

해독에서의 동적 분석

제어된 환경에서 코드를 실행함으로써 동적 분석은 암호화된 코드의 실시간 동작을 관찰할 수 있게 합니다. 이 방법은 코드의 진정한 의도를 숨기기 위해 설계된 복잡한 암호화 패턴의 내부 작동을 효과적으로 발견하는 데 특히 효과적입니다.

동적 분석의 응용

  • 런타임 복호화: 많은 암호화 기법은 런타임에서만 복호화되는 문자열이나 코드 세그먼트를 암호화합니다. 동적 분석을 통해 이러한 암호화된 요소를 복호화하는 순간에 포착하여 진정한 형태를 확인할 수 있습니다.

  • 암호화 기법 식별: 응용 프로그램의 동작을 모니터링함으로써 동적 분석은 코드 가상화, 패커 또는 동적 코드 생성과 같은 특정 암호화 기법을 식별하는 데 도움이 될 수 있습니다.

  • 숨겨진 기능 발견: 암호화된 코드에는 정적 분석만으로는 알아차리기 어려운 숨겨진 기능이 포함될 수 있습니다. 동적 분석을 통해 조건에 따라 실행되는 모든 코드 경로를 관찰하여 이러한 숨겨진 기능을 발견할 수 있습니다.

참고 자료 및 추가 독서

  • BlackHat USA 2018: “Unpacking the Packed Unpacker: Reverse Engineering an Android Anti-Analysis Library” [video]

  • 이 발표에서는 Android 애플리케이션에서 사용되는 가장 복잡한 안티 분석 네이티브 라이브러리 중 하나를 역공학하는 과정을 다룹니다. 이는 주로 네이티브 코드에서의 암호화 기법을 다룹니다.

  • REcon 2019: “The Path to the Payload: Android Edition” [video]

  • 이 발표에서는 Java 코드만을 사용한 일련의 암호화 기법을 다루며, Android 봇넷이 동작을 숨기기 위해 사용한 기법입니다.

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법:

Last updated