Lompat ke konten
dokumentasi.id
Commit dd5271a
v2
Star6,4 rb

Kamu membaca versi lama. Halaman ini hanya bisa dibaca.

1

Ringkasan Proyek

APKLeaks adalah perkakas command line yang memindai berkas APK untuk menemukan URI, endpoint, dan secret di dalamnya (README.md:5). Perkakas ini membongkar APK memakai disassembler jadx, lalu mencocokkan isi hasil decompile terhadap sekumpulan pola regex (README.md:53). Paket Python-nya bernama apkleaks, mensyaratkan requires-python = ">=3.8", dan mendaftarkan entry point apkleaks = "apkleaks.cli:main" (pyproject.toml:1-17). Versi yang didokumentasikan di sini adalah v2.6.3 (VERSION:1-1), dengan lisensi Apache License 2.0 (LICENSE:1-4).

Alur Kerja Satu Pemindaian

main() menjalankan urutan tetap: header(), argument(), pembuatan objek APKLeaks(args), lalu init.integrity(), init.decompile(), dan init.scanning(). Pemanggilan init.cleanup() diletakkan di blok finally, sehingga tetap dieksekusi meski langkah sebelumnya gagal (apkleaks/cli.py:32-41).

graph TD
  APK["berkas .apk"] --> INTEG["APKLeaks.integrity()"]
  INTEG -->|"jadx tidak ada"| DL["APKLeaks.dependencies()"]
  DL --> DEC["APKLeaks.decompile()"]
  INTEG -->|"jadx tersedia"| DEC
  DEC --> TMP["tempdir hasil decompile"]
  RULES["config/regexes.json"] --> SCAN["APKLeaks.scanning()"]
  TMP --> SCAN
  SCAN --> FIND["util.finder(pola, path)"]
  FIND --> EXT["APKLeaks.extract(nama, matches)"]
  EXT --> OUT["berkas .txt atau .json"]
  OUT --> CLEAN["APKLeaks.cleanup()"]
  CLEAN --> RM["shutil.rmtree(tempdir)"]
  style APK fill:#8b5cf6,color:#fff
  style TMP fill:#8b5cf6,color:#fff
  style RULES fill:#f59e0b,color:#000
  style INTEG fill:#f59e0b,color:#000
  style DL fill:#f59e0b,color:#000
  style DEC fill:#336791,color:#fff
  style SCAN fill:#2d7d46,color:#fff
  style FIND fill:#2d7d46,color:#fff
  style EXT fill:#2d7d46,color:#fff
  style OUT fill:#2d7d46,color:#fff
  style CLEAN fill:#dc2626,color:#fff
  style RM fill:#dc2626,color:#fff
%% fig: Alur satu kali pemindaian APKLeaks
%% desc: integrity memastikan jadx tersedia, decompile membongkar APK ke tempdir, scanning mencocokkan pola, lalu extract menulis hasil dan cleanup menghapus tempdir.
Fig. 1: Alur satu kali pemindaian APKLeaksintegrity memastikan jadx tersedia, decompile membongkar APK ke tempdir, scanning mencocokkan pola, lalu extract menulis hasil dan cleanup menghapus tempdir.

Konstruktor APKLeaks menyiapkan seluruh keadaan awal: tempdir dari tempfile.mkdtemp, berkas output acak bila -o tidak diberikan, dan pattern yang menunjuk ke config/regexes.json bila -p tidak diberikan (apkleaks/apkleaks.py:25-39). integrity() mencari binary jadx beserta menawarkan unduhan, sedangkan dependencies() menarik arsip jadx-1.2.0.zip (apkleaks/apkleaks.py:44-57).

decompile() menyusun daftar argumen [self.jadx, self.file, "-d", self.tempdir], menambahkan -a/--args dari pengguna, lalu menjalankannya lewat os.system (apkleaks/apkleaks.py:89-98). Setelah itu scanning() membaca berkas pattern JSON dan menjalankan satu threading.Thread per pola yang menargetkan extract (apkleaks/apkleaks.py:117-138). Inti pencocokan berada di util.finder, yang mengompilasi pola dengan re.compile dan menelusuri setiap berkas hasil decompile dengan os.walk (apkleaks/utils.py:17-31). extract() mencetak setiap temuan, menulis ke berkas hasil, dan mengisi out_json["results"] (apkleaks/apkleaks.py:100-115). Cetakan berwarna berasal dari kelas color dengan atribut HEADER, OKBLUE, OKGREEN, WARNING, FAIL, dan ENDC (apkleaks/colors.py:3-11).

⚠️ cleanup() selalu menghapus direktori kerja tempdir dengan shutil.rmtree (apkleaks/apkleaks.py:140-141). Bila tidak ada satu pun pola yang cocok, berkas output ikut dihapus lewat os.remove dan pesan ** Done with nothing. ¯\_(ツ)_/¯ dicetak (apkleaks/apkleaks.py:146-149).

Fakta Ringkas

AspekNilaiRujukan
Nama paketapkleakspyproject.toml:1-3
DeskripsiScanning APK file for URIs, endpoints & secrets.pyproject.toml:1-3
Versiv2.6.3VERSION:1-1
LisensiApache License 2.0LICENSE:1-4
Python minimum3.8pyproject.toml:13
Entry pointapkleaks = "apkleaks.cli:main"pyproject.toml:16-17
DisassemblerjadxREADME.md:53
Sumber unduhan jadxjadx-1.2.0.zipapkleaks/apkleaks.py:44-53
Pola defaultconfig/regexes.jsonapkleaks/apkleaks.py:35
Isi pola default53 kunci polaconfig/regexes.json:1-62

Berkas config/regexes.json memuat 53 kunci pola, dari Amazon_AWS_Access_Key_ID sampai Twitter_Secret_Key, termasuk LinkFinder yang dipakai untuk menemukan URI dan endpoint (config/regexes.json:1-62). Di samping itu, repository menyimpan config/notkeyhacks.json berisi pola spesifik SDK seperti Sentry_DSN dan Intercom_API_Key, yang tidak dimuat sebagai pola default (config/notkeyhacks.json:1-14). Rincian masing-masing pola dibahas di Kumpulan Pola Pencarian, dan cara menambah pola sendiri di Kustomisasi Pola Sendiri.

Peta Cakupan Dokumentasi

Dokumentasi ini dibagi menjadi tujuh bagian. Bagian arsitektur membedah eksekusi CLI, siklus hidup kelas APKLeaks, dan mesin pencarian regex; bagian pemakaian menjelaskan opsi CLI serta format keluaran.

graph TD
  P1["1 Ringkasan Proyek"]
  P2["2 Arsitektur"]
  P21["2.1 Alur Eksekusi CLI"]
  P22["2.2 Siklus Hidup Kelas APKLeaks"]
  P23["2.3 Mesin Pencarian Regex dan Keluaran Warna"]
  P3["3 Instalasi dan Dependensi"]
  P4["4 Penggunaan CLI"]
  P41["4.1 Opsi CLI dan Argumen Disassembler"]
  P42["4.2 Format Keluaran Hasil Pemindaian"]
  P5["5 Kumpulan Pola Pencarian"]
  P51["5.1 Kustomisasi Pola Sendiri"]
  P6["6 Build, Rilis, dan Publikasi"]
  P7["7 Kebijakan Keamanan dan Pelaporan Kerentanan"]
  P1 --> P2
  P2 --> P21
  P2 --> P22
  P2 --> P23
  P1 --> P3
  P1 --> P4
  P4 --> P41
  P4 --> P42
  P1 --> P5
  P5 --> P51
  P1 --> P6
  P1 --> P7
  style P1 fill:#336791,color:#fff
  style P2 fill:#2d7d46,color:#fff
  style P21 fill:#2d7d46,color:#fff
  style P22 fill:#2d7d46,color:#fff
  style P23 fill:#2d7d46,color:#fff
  style P5 fill:#f59e0b,color:#000
  style P51 fill:#f59e0b,color:#000
  style P3 fill:#8b5cf6,color:#fff
  style P6 fill:#8b5cf6,color:#fff
  style P7 fill:#dc2626,color:#fff
%% fig: Peta cakupan dokumentasi APKLeaks
%% desc: Tujuh bagian dokumentasi dengan arsitektur, pemakaian CLI, kumpulan pola, build, dan kebijakan keamanan sebagai cabang utama.
Fig. 2: Peta cakupan dokumentasi APKLeaksTujuh bagian dokumentasi dengan arsitektur, pemakaian CLI, kumpulan pola, build, dan kebijakan keamanan sebagai cabang utama.

Halaman Arsitektur menjadi rujukan bila kamu ingin memahami bagaimana integrity, decompile, scanning, dan cleanup saling berhubungan. Untuk mulai memakai perkakas, lanjutkan ke Instalasi dan Dependensi lalu Penggunaan CLI.