Merekayasa Balik VM TikTok yang Diobfuscasi
(github.com/LukasOgunfeitimi)- TikTok menggunakan mesin virtual (VM) untuk memperkuat lapisan keamanan dan obfuscation
- Proyek ini merekayasa balik mesin virtual (VM) berbasis web tersebut untuk menganalisis cara bypass keamanan dan pembuatan tanda tangan permintaan
- Target utamanya adalah
webmssdk.js, yang berisi kode VM yang terlibat dalam pembuatan X-Bogus dan _signature - Proyek ini membongkar obfuscation JavaScript, lalu menganalisis dan mendekompilasi bytecode VM TikTok untuk memulihkannya ke tingkat fungsi yang bermakna
- Dengan ini, pembuatan
_signatureyang diperlukan untuk permintaan yang memerlukan autentikasi (misalnya menulis komentar) juga menjadi memungkinkan - VM ini dirancang dengan canggih dan memiliki struktur bytecode tingkat lanjut seperti loop, penanganan pengecualian, dan manajemen scope
Gambaran umum proyek reverse engineering VM TikTok
- TikTok menggunakan mesin virtual (VM) terobfuscasi berbasis JavaScript untuk menghasilkan tanda tangan permintaan klien, melindungi data, dan mencegah bypass keamanan
- Proyek ini bertujuan memulihkan algoritme penandatanganan (X-Bogus, _signature) melalui deobfuscation dan dekompilasi file
webmssdk.js
Analisis fitur inti dan struktur
Deobfuscation
-
TikTok melakukan obfuscation string dengan mengindeksnya melalui array dan notasi bracket
r[Gb[301]](Gb[57], e) -
Dekripsi array
Gbditangani dengan substitusi menggunakan tabel string tetap -
Setelah semua pola terkait didekode, hasilnya diubah ke notasi titik (dot notation) yang lebih mudah dibaca
Menghapus obfuscation pemanggilan fungsi
-
Fungsi-fungsi disimpan dalam array
Abdan dipanggil melalui indeksAb[31](args) → Ab31(args) -
Dengan memanfaatkan parser AST, fungsi-fungsi ini dipisahkan menjadi fungsi individual, diberi nama, lalu cara pemanggilannya juga diperbaiki
Dekripsi bytecode
-
Bytecode disusun secara kompleks dengan enkripsi base64 + gzip + leb128 + XOR
r = perhitungan kunci XOR dekompresi dan decoding leb128 untuk merekonstruksi set instruksi -
Setiap fungsi dibangun berbasis bytecode, lalu struktur fungsinya dipulihkan melalui proses dekompilasi
Karakteristik VM TikTok
- Lebih canggih daripada VM biasa, dengan fungsi bertingkat, manajemen scope, penanganan pengecualian, dan percabangan kondisional
- Setiap instruksi disamarkan dalam struktur
if-else, bukanswitch→ lalu dipulihkan ke bentuk switch case
Dekompilasi dan debugging
- Setiap fungsi bytecode didekompilasi hingga setara fungsi JS biasa dan disimpan dalam bentuk VMxxx.js
- Contoh: VM223 adalah generator karakter acak
- Debugging dilakukan dengan mengganti JS asli menggunakan file hasil dekompilasi melalui Tampermonkey + ekstensi bypass CSP di Chrome
Analisis penandatanganan (Signing)
Struktur header permintaan
- Saat meminta ke server, ada 3 header tambahan yang disertakan
msToken: diterbitkan oleh server dan dibuat ulang pada setiap permintaanX-Bogus: dibuat diwebmssdk.jsberdasarkan permintaan_signature: digunakan pada permintaan yang memerlukan autentikasi, dibuat olehwebmssdk.js
- Permintaan umum seperti melihat pengguna hanya memerlukan
X-Bogus - Permintaan autentikasi seperti menulis komentar juga memerlukan
_signature
Alur fungsi VM
- VM86: titik masuk untuk seluruh pembuatan tanda tangan
- VM113: pembuatan
X-Bogus - VM189: pembuatan
_signature - Alur ini direproduksi melalui signer.js sehingga URL dapat ditandatangani
Mekanisme perlindungan tambahan
- Pelacakan mouse: VM120
- Pemeriksaan lingkungan: VM265
- Namun semuanya adalah perlindungan sisi klien tanpa komunikasi dengan server → dapat diabaikan untuk pembuatan tanda tangan
Catatan dan pemeliharaan
- VM TikTok terus diperbarui → jika strukturnya berubah, dekompilasi baru diperlukan
- Proyek ini terutama cocok untuk analisis keamanan, riset teknologi anti-bot, dan tujuan pendidikan
1 komentar
Komentar Hacker News
Saya menggunakan situs web streaming yang sering terputus dan menampilkan pesan kesalahan. Saya menganalisis kode JavaScript untuk mencari solusinya, dan asisten AI sangat membantu dalam memahami kode yang diobfuskasi
Anda dapat menggunakan TikTok secara normal dengan mengganti file JavaScript yang berjalan di web dengan file yang sudah dideobfuskasi
Tampaknya banyak upaya dilakukan untuk menyembunyikan kode. Ini dapat menghambat optimasi program, menambah kompleksitas, dan berpotensi menyebabkan lebih banyak kesalahan
Menemukan contoh rekayasa balik TikTok VM di bookmark
Selalu senang membaca tulisan tentang upaya rekayasa balik, dan tulisan kali ini mudah diikuti
Tidak ada alasan yang sah bagi platform media sosial untuk menggunakan obfuskasi sampai sejauh ini
Pertanyaan tentang apa itu VM
Pertanyaan apakah ini VM yang terkait dengan Lynx
Pertanyaan apakah aplikasi iOS juga memiliki VM
Pernah mengerjakan bot TikTok sebentar, dan itu sangat sulit