Rumah > hujung hadapan web > tutorial js > Menyahkod JavaScript: Panduan untuk Menyahkeliru

Menyahkod JavaScript: Panduan untuk Menyahkeliru

Susan Sarandon
Lepaskan: 2025-01-05 05:23:41
asal
682 orang telah melayarinya

Decoding JavaScript: A Guide to Deobfuscation

Salah satu perkara paling menarik yang anda pelajari dalam perjalanan awal anda dalam pembangunan web ialah cara untuk meniru tapak web dengan hanya menyalin kod sumber daripada halaman alat pembangun. Ramai pembangun mendapati ini membantu, tetapi ini tidak berlaku dengan pembangun yang membina tapak web ini dan pemilik tapak web.

Pemilik tapak web ini biasanya takut dan bimbang tentang kecurian kod pihak pelanggan mereka (HTML, CSS dan JavaScript). Ini memberikan mereka hanya satu pilihan: untuk mencari penyelesaian untuk menghalang penyalinan tanpa kebenaran atau penyalahgunaan kod sumber mereka.

Satu penyelesaian yang memenuhi keperluan pemilik tapak web ini ialah teknik yang dipanggil JavaScript Obfuscation. Secara ringkasnya, JavaScript obfuscation ialah tindakan menukar kod JavaScript yang boleh dibaca manusia kepada format kompleks yang sukar difahami oleh manusia.

Memandangkan ada dua sisi pada syiling, JavaScript obfuscation turut mempunyai rakan sejawatannya yang dipanggil JavaScript deobfuscation. Daripada namanya, anda sudah boleh mengetahui bahawa ia adalah tindakan yang bertentangan dengan pengeliruan JavaScript, dengan itu menukar kod JavaScript yang telah dikaburkan kepada format yang boleh dibaca manusia.

Nota: Dalam kebanyakan kes, nyahkeliruan JavaScript tidak membawa kod yang dikaburkan kepada bentuk asalnya, walaupun kadangkala anda mendapat bentuk asal. Adalah selamat untuk mengatakan bahawa penyahkeliruan JavaScript tidak menjanjikan anda kod JavaScript asal tetapi kod yang boleh anda baca dan fahami.

Penjelasan Praktikal Penyahkeliruan dan Kekeliruan JavaScript

Kita belajar lebih baik dengan berlatih, jadi mari kita teroka bahagian praktikal semua penjelasan teori dalam bahagian pengenalan panduan ini.

Untuk menguji teknik ini, anda memerlukan kod JavaScript. Dengan itu, mari kita buat kod JavaScript ringkas yang mentakrifkan pembolehubah dan mengeluarkan rentetan berdasarkan bilangan kali gelung for dijalankan.

const no_loop_cycle = 5

for (let i = 0; i < no_loop_cycle; i++) {
    console.log("String ", i)
}
Salin selepas log masuk
Salin selepas log masuk

Sekarang anda mempunyai kod JavaScript untuk ujian pergi ke Alat Obfuscator JavaScript, alat percuma untuk mengelirukan kod JavaScript.

Tampal contoh kod JavaScript ke dalam alat dan klik butang Obfuscate.

Berikut ialah perkara yang anda akan dapat sebagai output:

function _0xb78f(_0x2224cc,_0x217706){const _0x44095f=_0x4409();return _0xb78f=function(_0xb78f5c,_0x2ff516){_0xb78f5c=_0xb78f5c-0xd3;let _0x60ee28=_0x44095f[_0xb78f5c];return _0x60ee28;},_0xb78f(_0x2224cc,_0x217706);}const _0x5f75f2=_0xb78f;(function(_0x2c5162,_0x14873c){const _0x4e4ef7=_0xb78f,_0x5a8a62=_0x2c5162();while(!![]){try{const _0x1b7f08=parseInt(_0x4e4ef7(0xdb))/0x1*(-parseInt(_0x4e4ef7(0xdc))/0x2)+parseInt(_0x4e4ef7(0xdd))/0x3+-parseInt(_0x4e4ef7(0xd9))/0x4*(parseInt(_0x4e4ef7(0xd4))/0x5)+-parseInt(_0x4e4ef7(0xde))/0x6+parseInt(_0x4e4ef7(0xd6))/0x7*(-parseInt(_0x4e4ef7(0xd3))/0x8)+parseInt(_0x4e4ef7(0xd5))/0x9+parseInt(_0x4e4ef7(0xd7))/0xa;if(_0x1b7f08===_0x14873c)break;else _0x5a8a62['push'](_0x5a8a62['shift']());}catch(_0x153236){_0x5a8a62['push'](_0x5a8a62['shift']());}}}(_0x4409,0x71eba));const no_loop_cycle=0x5;for(let i=0x0;i<no_loop_cycle;i++){console[_0x5f75f2(0xda)](_0x5f75f2(0xd8),i);}function _0x4409(){const _0x5189f4=['2031897OhIMeN','15423690UOVACr','String\x20','1326068tySTtA','log','1CErZVM','245842QiNqEk','1819539wUQmJB','4133556arqvkn','16ZAFmnL','10OzrKck','3358431pZHaXs'];_0x4409=function(){return _0x5189f4;};return _0x4409();}
Salin selepas log masuk

Tampal kod yang dikelirukan ini ke dalam editor kod anda dan jalankan untuk mengesahkan ketepatannya. Anda akan melihat bahawa ia memberikan output yang sama seperti kod asal.

Sekarang anda telah melihat pengeliruan JavaScript sedang beraksi, ia akan menjadi sama menggembirakan untuk mencuba nyahkeliruan JavaScript. Salin kod yang dikaburkan di atas dan tampalkannya ke dalam alat yang dikaburkan percuma ini.

Menggunakan alat deobfuscator itu akan memberi anda kod berikut:

const no_loop_cycle = 5

for (let i = 0; i < no_loop_cycle; i++) {
    console.log("String ", i)
}
Salin selepas log masuk
Salin selepas log masuk

Kod yang dikembalikan selepas dinyahkelirukan adalah serupa dengan kod JavaScript asal tetapi dengan hanya sedikit perbezaan. Ini mengesahkan bahawa anda biasanya tidak mendapat kod JavaScript sebenar tetapi kod dalam format yang boleh dibaca yang anda boleh fahami.

Mengapakah Penyahkeliruan JavaScript Penting?

Kebanyakan tapak web sangat bergantung pada membenamkan teknik mereka untuk menghalang pengguna yang tidak dibenarkan, terutamanya dalam kod JavaScript kerana ia bertanggungjawab untuk interaksi pengguna asas (kebanyakan perkara yang memerlukan anda berinteraksi dengan tapak web dilaksanakan menggunakan JavaScript).

Teknik ini kebanyakannya adalah penyimpangan JavaScript, di mana penyahkeliruan JavaScript dimainkan. Ia membantu menangani kejadian sedemikian, terutamanya apabila mengikis web.

Penyahkeliruan JavaScript membantu menjadikan kod lebih mudah dibaca, membolehkan anda memahami skrip dengan lebih baik, mensimulasikan interaksi anda dan mengikis data yang dijangkakan dengan betul.

Kekeliruan JavaScript malah menimbulkan lebih banyak mekanisme anti-mengikis, seperti sekuriti anti-bot, bilik menunggu Cloudflare dan satu siri teka-teki CAPTCHA. Walaupun terdapat cabaran ini, penyahkeliruan JavaScript masih diteruskan kerana ia membantu memintas dan merekayasa balik cabaran ini.

Bagaimana Penyahkeliruan JavaScript Berfungsi

Penyahkeliruan JavaScript mengambil proses berikut:

  1. Mengenal pasti kekeliruan JavaScript: Untuk mengenal pasti perkara itu, anda perlu mengenali beberapa corak seperti penamaan semula pembolehubah, pengurangan aliran kawalan, nilai perenambelasan, rentetan yang dikodkan dan sebagainya. Sambil anda terus mengkajinya, anda akan menemui lebih banyak corak.
  2. Mengakses kod yang dikaburkan: Memandangkan anda telah melihat kod yang dikaburkan, proses seterusnya ialah mengakses kod menggunakan alat pembangun Chrome untuk analisis yang lebih baik. Anda juga boleh menyimpan fail selepas anda menemuinya.
  3. Formatkan kod: Alat seperti Prettier atau kecantikan JavaScript boleh memformat kod yang dikelirukan.
  4. Laksanakan kod untuk mengesahkan jika ia bebas ralat.
  5. Akhir sekali, logik berfungsi (kod untuk penjanaan kandungan tersembunyi atau pengesahan token) diekstrak.

Penyelesaian untuk Penyahkeliruan JavaScript

Penyelesaian yang sempurna untuk nyahkeliruan JavaScript ialah gabungan kemahiran menyelesaikan masalah anda, keupayaan anda untuk mengecam corak dalam kod yang dikelirukan dan penggunaan alatan teknikal.

Jika anda mempunyai alatan yang diperlukan untuk memformatkan kod anda, Chrome DevTools untuk mengakses dan menganalisis kod yang dikelirukan, pustaka pihak ketiga luaran seperti uglify-js untuk menghuraikan dan meminimumkan kod serta alatan penyahpepijatan, anda boleh melihat melalui mana-mana contoh pengeliruan JavaScript .

Untuk mempercepatkan perkara, anda boleh menggunakan mana-mana alat deobfuscator JavaScript atau yang digunakan dalam panduan ini.

Atas ialah kandungan terperinci Menyahkod JavaScript: Panduan untuk Menyahkeliru. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan