Pengalaman compile ulang kode dari `jadx`
Malam ini saya sedang mencoba mengetahui cara kerja crack/keygen/loader burp suite [lagi](/?q=burpsuite). Secara spesifik, saya sedang mencoba memahami [loader yang ini](https://github.com/h3110w0r1d-y/BurpLoaderKeygen).
Kode hasil decompile `jadx` lumayan bagus. Setelah saya ubah beberapa hal, saya akhirnya bisa compile sendiri. Tapi, entah kenapa, dan ini membuat saya curiga, hasil build saya malah tidak jalan.
Alhasil, setelah menelusuri berbagai kemungkinan penyebabnya (termasuk dengan mencoba mengganti file `.class` hasil saya dengan versi h3110w0r1d), saya ketemu sebabnya. Loader yang saya build bisa jalan jika menggunakan `Filter.class` versi aslinya. Artinya, kode class `Filter` yang saya compile kemungkinan berbeda (secara fungsi) dari yang aslinya. Pada kenyataannya, memang berbeda:
Berikut potongan hasil dekompilasi jadx yang saya compile.
String str = new String(decrypt);
String[] strs = str.split("��");
Berikut adalah versi smali-nya.
.line 36
new java/lang/String
dup
aload 3
invokespecial java/lang/String ([B)V
astore 4
.local 4 "str" Ljava/lang/String;
.line 37
aload 4
ldc "\u0000"
invokevirtual java/lang/String split (Ljava/lang/String;)[Ljava/lang/String;
astore 5
.local 5 "strs" [Ljava/lang/String;
Perhatikan bahwa `"��"` tidak sama dengan `"\u0000"`. Hadeh.. tapi setidaknya saya belajar output decompile jadx, atau any decompiler, tidak bisa sepenuhnya diandalkan.
Created: 2026-02-06 18:40:44, Updated: 2026-02-06 18:40:44, ID: 1cba2ae0-ae31-4962-8fbe-0c876890826e