Penganalisis Constant Pool Java
Unggah file .class Java untuk mengekstrak dan menganalisis semua konstanta dari constant pool. Lihat string, referensi kelas, tanda tangan metode, referensi field, dan konstanta numerik yang diatur berdasarkan kategori dengan deskripsi rinci dan data hex mentah. Semua pemrosesan bersifat lokal dan privat.
Upload a Java .class file
Drag and drop or click to browse. All processing is local and private.
Mengapa Menggunakan Penganalisis Constant Pool Java Kami?
- Ekstraksi Constant Pool Lengkap: penganalisis constant pool Java mengurai semua entri constant pool dari file .class mana pun: string UTF-8, referensi kelas, referensi metode, referensi field, referensi metode antarmuka, deskriptor name and type, konstanta integer, float, long, dan double, method handle, jenis metode, entri invoke dynamic, dan info modul/paket.
- Analisis Hierarki Kelas & Metode: identifikasi secara instan kelas ini dan kelas super dengan nama yang sepenuhnya memenuhi syarat dalam format internal (com/example/MyClass) dan Java (com.example.MyClass). Lihat semua kelas yang direferensikan, tanda tangan metode, tanda tangan field, dan literal string yang diekstrak dari constant pool.
- Penyaringan & Pencarian Cerdas: filter entri constant pool berdasarkan kategori: string, kelas, referensi (metode/field/antarmuka), konstanta numerik, dan deskriptor tipe. Cari di semua entri berdasarkan indeks, nama tag, atau teks deskripsi. Penganalisis constant pool memudahkan menemukan persis apa yang Anda butuhkan dalam file dengan ratusan entri.
- 100% Privat - Tanpa Unggahan Data: semua analisis file kelas terjadi secara lokal di browser Anda menggunakan JavaScript. File .class Anda tidak pernah meninggalkan perangkat Anda. Tanpa perlu akun, tanpa pelacakan, tanpa data yang disimpan di mana pun. Ekspor tabel constant pool sebagai TSV untuk analisis lebih lanjut di spreadsheet.
Kasus Penggunaan Umum Penganalisis Constant Pool Java
- Rekayasa Balik & Analisis Malware: peneliti keamanan menggunakan analisis constant pool untuk memahami aplikasi Java yang terobfuskasi atau terlindungi. Ekstrak semua literal string, nama kelas, dan referensi metode dari file .class yang tidak dikenal untuk merekonstruksi struktur aplikasi dan mengidentifikasi panggilan API atau penggunaan pustaka yang mencurigakan.
- Deteksi & Analisis Obfuskasi: alat obfuskasi Java mengganti nama kelas, metode, dan field menjadi nama tanpa arti. Penganalisis constant pool mengungkap pengenal yang diganti nama ini dan menunjukkan pemetaan lengkap referensinya. ProGuard, DashO, dan upaya obfuskasi lain terlihat melalui pola penamaan yang tidak biasa di constant pool.
- Men-debug Konflik Dependensi: saat men-debug konflik classpath atau pengecualian NoSuchMethodError, penganalisis constant pool kami membantu mengidentifikasi terhadap versi pustaka mana sebuah file .class dikompilasi. Tanda tangan metode dan referensi field di constant pool mengungkap permukaan API tepat yang diharapkan oleh kode yang dikompilasi.
- Validasi & Kompatibilitas File Kelas: verifikasi bahwa file .class terbentuk dengan benar dan periksa kompatibilitas versi Java-nya. Penganalisis constant pool memvalidasi magic number (0xCAFEBABE), mengurai info versi, dan membaca semua entri constant pool secara struktural. Deteksi file kelas yang rusak atau dimanipulasi sebelum penerapan.
- Mempelajari Format File Kelas Java: mahasiswa ilmu komputer dan pengembang Java menggunakan penganalisis constant pool untuk memahami format file kelas Java. Lihat bagaimana JVM menyimpan kelas, metode, field, dan konstanta string. Jelajahi struktur constant pool secara interaktif untuk membangun intuisi tentang bytecode dan pemuatan kelas.
- Ekstraksi String & Sumber Daya: ekstrak semua string yang di-hardcode dari file kelas Java yang dikompilasi tanpa memerlukan dekompilator penuh. Penganalisis constant pool menampilkan semua literal string, nama kelas, dan deskriptor tipe - sangat berharga untuk analisis cepat kode yang dikompilasi, string lokalisasi, atau konstanta konfigurasi yang tertanam di file .class.
Apa Itu Constant Pool Java?
Constant pool adalah struktur data penting di setiap file .class Java. Ini berfungsi sebagai tabel simbol yang berisi semua konstanta, nama kelas, nama metode, nama field, deskriptor tipe, dan literal string yang direferensikan oleh bytecode. Terletak tepat setelah header versi file kelas, constant pool diindeks mulai dari 1 dan direferensikan di seluruh sisa file kelas. JVM menggunakan pool ini selama pemuatan kelas dan eksekusi bytecode untuk menyelesaikan referensi simbolik menjadi nilai runtime sebenarnya. Penganalisis constant pool kami membuat semua ini terlihat dan dapat dicari.
Cara Kerja Penganalisis Constant Pool Java Kami
- Unggah file .class: cukup unggah file kelas Java yang telah dikompilasi. Penganalisis membaca byte mentah dan memvalidasi magic number (0xCAFEBABE) serta header versi untuk mengonfirmasi bahwa ini adalah format file kelas Java yang valid.
- Penguraian constant pool otomatis: penganalisis menelusuri semua entri constant pool, mendekode setiap entri sesuai jenis tagnya. Setiap entri dikategorikan sebagai string, referensi kelas, referensi metode/field, deskriptor tipe, konstanta numerik, atau jenis entri lainnya. Semua entri diindeks dengan data hex mentahnya untuk verifikasi.
- Jelajahi dan filter hasil: telusuri tabel constant pool lengkap dengan penyaringan cerdas berdasarkan kategori. Cari di semua entri, lihat statistik ringkasan termasuk jumlah entri per jenis, kelas yang direferensikan, tanda tangan metode, dan literal string yang diekstrak. Salin tabel untuk analisis lebih lanjut.
Jenis Entri Constant Pool Dijelaskan
- Utf8 (CONSTANT_Utf8): jenis entri paling umum, mewakili string terenkode UTF-8 yang digunakan untuk nama kelas, nama metode, nama field, dan deskriptor tipe. Ini membentuk blok bangunan dari semua jenis referensi lain di constant pool.
- Referensi Kelas & String: entri Class menunjuk ke string Utf8 yang berisi nama kelas internal (misalnya, java/lang/Object). Entri String mereferensikan string Utf8 yang mewakili konstanta string literal yang digunakan dalam bytecode.
- Referensi Metode, Field & Metode Antarmuka: entri dengan indeks tiga ini menggabungkan referensi Class, deskriptor NameAndType, dan jenis tag untuk mengkualifikasi sepenuhnya akses anggota. MethodRef mewakili pemanggilan metode virtual, sedangkan InterfaceMethodRef mewakili pengiriman antarmuka.
- NameAndType: memasangkan nama anggota (misalnya, "toString") dengan deskriptor tipenya (misalnya, "()Ljava/lang/String;") untuk mengidentifikasi field atau metode secara unik tanpa menentukan kelas pemiliknya. Ini direferensikan oleh entri Fieldref, Methodref, dan InterfaceMethodref.
Privasi, Keamanan & Catatan Penggunaan
Penganalisis constant pool Java memproses semua data sepenuhnya di browser Anda menggunakan JavaScript. Tidak ada file .class yang pernah diunggah ke server mana pun, disimpan di basis data mana pun, atau dibagikan kepada pihak ketiga mana pun. Tidak ada batas ukuran file selain memori browser Anda yang tersedia. File kelas dengan ukuran berapa pun dapat dianalisis secara instan. Alat ini sepenuhnya gratis tanpa pendaftaran, tanpa batas penggunaan, dan tanpa tingkat premium. Gunakan untuk tujuan apa pun - pribadi, komersial, pendidikan, atau riset keamanan - tanpa biaya.
Pertanyaan yang Sering Diajukan
Constant pool adalah tabel konstanta, referensi simbolik, dan literal string yang tersimpan di setiap file .class Java. Ini berfungsi sebagai tabel simbol runtime untuk JVM, berisi nama kelas, nama metode, nama field, deskriptor tipe, konstanta string, dan konstanta numerik. Semua instruksi bytecode mereferensikan entri di constant pool berdasarkan indeksnya, menjadikannya struktur data terpenting dalam format file kelas.
Penganalisis mengekstrak semua jenis entri constant pool: string UTF-8 (nama kelas, nama metode, deskriptor), referensi kelas, referensi metode, referensi field, referensi metode antarmuka, deskriptor name and type, konstanta numerik int/float/long/double, method handle, jenis metode, entri invoke dynamic, dan referensi modul/paket. Setiap entri menyertakan indeks, jenis tag, deskripsi yang dapat dibaca manusia, dan data hex mentah.
Tidak, penganalisis constant pool bukan dekompilator. Alat ini mengekstrak tabel simbol dari file kelas, menunjukkan semua nilai konstanta, referensi kelas, dan tanda tangan metode. Alat ini tidak merekonstruksi instruksi bytecode atau mendekompilasi isi metode. Untuk dekompilasi penuh, Anda memerlukan alat seperti CFR, Procyon, atau JD-GUI.
0xCAFEBABE adalah magic number yang mengidentifikasi file kelas Java yang valid. Setiap file .class harus dimulai dengan empat byte ini. Jika file tidak dimulai dengan 0xCAFEBABE, itu bukan file kelas Java yang valid. Penganalisis constant pool memeriksa magic number ini terlebih dahulu dan melaporkan error jika tidak ada, mencegah analisis file non-kelas atau data yang rusak.
Nama kelas internal menggunakan garis miring sebagai pemisah paket (misalnya, java/lang/String), sedangkan kode sumber Java menggunakan titik (java.lang.String). Constant pool menyimpan nama kelas dalam format internal. Penganalisis kami menampilkan kedua format: nama internal mentah di tabel dan format Java dengan titik di ringkasan info kelas.
Dalam format file kelas Java, entri CONSTANT_Long dan CONSTANT_Double menempati dua indeks constant pool yang berurutan. Ini adalah desain warisan dari spesifikasi JVM awal untuk selaras dengan kebutuhan penyimpanan 8 byte. Ketika Anda melihat celah dalam penomoran indeks constant pool, kemungkinan karena entri Long atau Double telah dibaca, menempati dua slot.
Tentu saja. Penganalisis constant pool Java memproses semuanya secara lokal di browser Anda menggunakan JavaScript. File .class Anda tidak pernah diunggah ke server mana pun, disimpan di basis data mana pun, atau dikirim melalui jaringan. Semua penguraian terjadi di perangkat Anda untuk privasi penuh. Ini membuatnya aman untuk menganalisis kode proprietari, pustaka rahasia, atau aplikasi terobfuskasi.
Ya - 100% gratis tanpa pendaftaran, tanpa akun, dan tanpa batas penggunaan. Analisis sebanyak apa pun file .class yang Anda butuhkan, sesering yang Anda mau. Tidak ada tingkat premium, biaya tersembunyi, atau batas laju. Alat ini berjalan sepenuhnya di browser Anda - file Anda tidak pernah meninggalkan perangkat Anda.