Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
kavanoz — 일반적인 안드로이드 뱅커 악성코드를 정적으로 언패킹합니다. | Kitploit
도구/GitHubGitHub/eybisi/kavanoz
Android SecurityStatic AnalysisEncryption/Decryption ToolsReverse EngineeringMalware AnalysisMobile SecurityArchived
GitHubeybisi/kavanoz

kavanoz

일반적인 안드로이드 뱅커 악성코드를 정적으로 언패킹합니다.

저장소 보기
159201년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

🫙 kavanoz 🫙

Kavanoz (터키어로 항아리)는 일반적인 Android 뱅커 악성코드를 정적으로 언패킹하는 도구입니다. 패킹된 악성코드에서 안드로이드 에뮬레이터를 실행하지 않고 페이로드를 가져오고 싶었던 적이 있나요? 저도 그런 적 없습니다 :) 하지만 어쨌든 도구가 여기 있습니다.

👀 설치

root@kitploit:~
pip install kavanoz

소스에서 설치하려면 저장소를 클론하고 -e 옵션으로 편집 가능(editable) 설치를 하세요. 즉, 프로젝트에서 플러그인을 편집하거나 새로 추가하면 재설치 없이 사용됩니다.

root@kitploit:~
git clone https://github.com/eybisi/kavanoz.git
cd kavanoz
pip install -e .

⚡ 사용법

명령줄에서

root@kitploit:~
kavanoz /tmp/filepath

-vvv 매개변수를 사용하여 상세 로그를 출력할 수 있습니다. (플러그인 디버깅에 유용합니다)

Python 라이브러리로 사용

root@kitploit:~
from kavanoz.core import Kavanoz
from kavanoz import utils

utils.set_log("DEBUG")
k = Kavanoz(apk_path="tests/test_apk/coper.apk")
for plugin_result in k.get_plugin_results():
    if plugin_result["status"] == "success":
        print("Unpacked")
        print(plugin_result)
        break

🐍 스크립트:

  • rc4.py 범용 rc4 암호화 asset 파일. 스크립트는 여러 버전을 다룹니다.
  • old_rc4.py 또 다른 범용 rc4 암호화 asset 파일.
  • subapp.py Manifest 파일의 ProtectKey 변수에서 파생된 키로 파일 복호화
  • multidex.py 압축 해제된(inflated) 패킹 파일이 있는 Multidex 유사 로더. (zlib 압축)
  • coper.py 에뮬레이션(AndroidNativeEmu)으로 네이티브 라이브러리에서 rc4 키 추출
  • moqhao.py moqhau 언패킹을 위한 에뮬레이션.
  • sesdex.py
  • simple_aes.py
  • simple_xor.py
  • simple_xor2.py
  • simple_xor_zlib.py
  • subapp.py 패키지 이름으로 asset 복호화

⚙️ 개발

kavanoz를 편집 가능한(-e) 방식으로 설치했는지 확인하세요. 새 플러그인을 추가하려면 loader 폴더에 새 파일을 만드세요. unpack_plugin.py 파일의 Unpacker 클래스를 확장하세요. 구현 내용으로 start_decrypt 함수를 정의하세요.

root@kitploit:~
def start_decrypt(self, apk_object: APK, dexes: "list[DEX]"):

플러그인에서 조기 종료하려면 다음 함수를 추가하세요.

root@kitploit:~
def lazy_check(self,apk_object:APK, dexes: "list[DEX]"):

추출에 성공하면 추출된 파일 경로를 self.decrypted_payload_path에 할당하세요. unpacker 클래스의 헬퍼 함수를 사용할 수 있습니다:

  • get_array_data
  • get_smali
  • find_method(class_name,method_name,descriptor="")
  • check_and_write_file(file_data) : 파일에 dex, zip, zlib 헤더가 있는지 확인하고 "external-{m[:8]}.dex" 이름으로 언패킹된 dex를 작성합니다.

PR을 열기 전에 python -m unittest를 실행하세요. 테스트 apk 파일을 얻으려면 git lfs pull 명령을 사용하세요.

📖 팁

  • self.dexes는 dex 객체를 보관합니다. dex.get_class(smali_annotation_of_class)로 클래스를 얻을 수 있습니다.
  • get_smali 함수를 사용하고 대상 메서드 객체를 전달하면 대상 메서드의 smali 표현을 얻을 수 있습니다. 그런 다음 정규식을 적용하여 smali에서 데이터를 얻을 수 있습니다. smali_regexes.py 파일에 조회할 수 있는 정규식이 많이 정의되어 있습니다.
  • 대부분의 경우 패커는 asset 폴더의 파일을 사용합니다. self.apk_object.get_files()로 파일을 얻을 수 있습니다.
  • 대부분의 경우 패커는 Application 클래스를 사용하여 언패킹 시퀀스를 시작합니다. 매니페스트 파일에 정의된 애플리케이션 클래스를 얻으려면 application = self.apk_object.get_attribute_value("application", "name")을 사용하세요.

감사:

작업할 수 있는 고유한 샘플을 제공한 apkdetect.com에게 감사드립니다.

도구 다운로드