


Ambil stok tutorial tentang menukar kod terbalik JS kepada kod Python
Kata Pengantar
Beberapa hari lalu dalam kumpulan pertukaran Python Star Yao dan The Strongest King, beberapa orang bertanya tentang video kejuruteraan terbalik JS dan kod yang berkaitan bahawa mereka semua saya belajar pengetahuan lanjutan dan saya benar-benar tidak boleh cukup dengannya. Kebetulan saya telah membaca beberapa bahan pembelajaran JS hari ini dan melihat kes yang cukup bagus, saya akan berkongsi dengan anda di sini dan merekodkannya juga.
Kod JS
Berkenaan mencari kod JS, agak sukar untuk menulis artikel untuk menerangkannya. Adalah lebih baik untuk merakam penjelasan video Di sini, kod JS yang sudah siap disusun secara langsung. Agak sukar untuk mencari kod penyulitan JS ini pada mulanya Anda perlu sentiasa memecahkan mata, mencari peraturan penyulitan, dan mengupas lapisan bawang demi lapisan untuk mengetahui. Kod penyulitan JS yang digunakan dalam artikel ini berasal dari tapak web video kecil Fungsi penyulitan yang dipaparkan pada halaman web adalah seperti yang ditunjukkan di bawah:
Kaedah penyulitan tidak terlalu sukar. , antaranya decodeMp4 Kod teras bagi fungsi penyulitan decode() adalah seperti berikut.
define("tool", function(a, b, c) { var d = a("jquery") , e = a("support") , f = a("constants") , g = a("base64") , h = "substring" , i = "split" , j = "replace" , k = "substr"; b.decodeMp4 = { getHex: function(a) { return { str: a[h](4), hex: a[h](0, 4)[i]("").reverse().join("") } }, getDec: function(a) { var b = parseInt(a, 16).toString();# 对应Python中的str(int(a, 16)) return { pre: b[h](0, 2)[i](""), tail: b[h](2)[i]("") } }, substr: function(a, b) { var c = a[h](0, b[0]) , d = a[k](b[0], b[1]); return c + a[h](b[0])[j](d, "") }, getPos: function(a, b) { return b[0] = a.length - b[0] - b[1], b }, decode: function(a) { var b = this.getHex(a) , c = this.getDec(b.hex) , d = this[k](b.str, c.pre); return g.atob(this[k](d, this.getPos(d, c.tail))) } };
Anda boleh melihat bahawa fungsi decode() dalam decodeMp4 dipanggil dan fungsi decode() memanggil getHex(a), getDec(b.hex), g.atob(), getPos( d, c.tail) dan fungsi lain, dan apa yang perlu kita lakukan ialah menukar fungsi ini kepada tulisan Python, kemudian bina kaedah penyulitan yang sepadan, dapatkan hasil yang disulitkan, dan kemudian lengkapkan kesan terbalik.
Proses penukaran
Pembolehubah a di sini ialah rentetan panjang melalui titik putus Di sini, pembolehubah berikut digunakan sebagai contoh.
a = "c0b1Ly9tdnPflQ3cQpPZpZGVvMTAubWVpdHVkYXRhLmNvbS82MWM0NDNlOGI1MmFmMTYzMi5tcDkBOyQ"
Mari kita susun secara ringkas fungsi yang akan digunakan nanti lebih awal, supaya lebih mudah untuk semua orang menyemak nanti.
Mari pecahkan setiap fungsi mengikut giliran, seperti berikut:
1 fungsi getHex(a)
var h = "substring",i = "split"; getHex: function(a) { return { str: a[h](4), hex: a[h](0, 4)[i]("").reverse().join("") } },
Di atas ialah kod JS yang sepadan bagi fungsi getHex() Anda boleh melihat bahawa kamus dikembalikan secara langsung. Kekunci kamus masing-masing adalah str dan hex daripada h ialah subrentetan. Maksud fungsi ini ialah rentetan mengambil nilai daripada subskrip yang ditentukan sehingga ia mencapai penghujung rentetan Terjemahan di sini ialah a.substring(4), iaitu rentetan a bermula daripada subskrip 4 dan berakhir; a[h]( 0, 4)[i]("").reverse().join("") Ini adalah sedikit lebih rumit untuk difahami Pertama, nilai rentetan diambil. dan kedudukannya adalah dari 0 hingga 4. Kemudian fungsi i dipanggil, iaitu, split Fungsi dipisahkan oleh ruang (""), panggil fungsi reverse() untuk mengisih dalam urutan terbalik, dan kemudian panggil join("") untuk menyambung rentetan Selepas pembongkaran, ia adalah lebih mudah. Langkah seterusnya ialah membina kod Python Selepas menulis perbandingan, ia akan kelihatan seperti ini:
def getHex(a): return { "str": a[4:],# JS中的substring(4)指的是从4开始取值到字符串末尾 "hex": "".join(list(a[0:4])[::-1])# [::-1]代表的是反向取值 }
Adakah ia kelihatan sama dengan kod JS di atas.
2. Kod JS fungsi getDec(a)
adalah seperti berikut:
getDec: function(a) { var b = parseInt(a, 16).toString(); return { pre: b[h](0, 2)[i](""), tail: b[h](2)[i]("") } },
Mengikut hubungan yang sepadan, kod Python yang sepadan boleh ditulis sebagai berikut:
def getDec(a): b = str(int(a, 16)) print(b) return { "pre": list(b[:2]), "tail": list(b[2:]) }
3. Kod JS bagi fungsi substr(a, b)
adalah seperti berikut:
substr: function(a, b) { var c = a[h](0, b[0]) , d = a[k](b[0], b[1]); return c + a[h](b[0])[j](d, "") },
Mengikut hubungan yang sepadan, kod Python yang sepadan boleh ditulis seperti berikut :
def substr(a, b): c = a[0: int(b[0])] print(c) d = a[int(b[0]):int(b[0])+int(b[1])] print(d) return c + a[int(b[0]):].replace(d, '')
4 Kod JS bagi fungsi getPos(a, b)
adalah seperti berikut:
getPos: function(a, b) { return b[0] = a.length - b[0] - b[1], b },
Mengikut perhubungan yang sepadan, kod Python yang sepadan boleh ditulis Seperti yang ditunjukkan di bawah:
def getPos(a, b): b[0] = len(a) - int(b[0]) - int(b[1]) print(b[0]) return b
5 Fungsi nyahkod(a, b)
mempunyai kod JS berikut: <🎜. >
decode: function(a) { var b = this.getHex(a) , c = this.getDec(b.hex) , d = this[k](b.str, c.pre); return g.atob(this[k](d, this.getPos(d, c.tail))) }
b = getHex(a) # print(b) c = getDec(b['hex']) print(c) # d = k(str(b), c.pre) d = substr(b['str'], c['pre']) # print(d) return base64.b64decode(substr(d, getPos(d, c['tail'])))
Helo semua, saya pengguna lanjutan Python. Artikel ini terutamanya berdasarkan masalah terbalik JS dalam perangkak web Python dan membuat penjelasan kes. Jika halaman web dimuatkan dengan JS, jika anda memintanya terus melalui perangkak web, anda tidak akan dapat mendapatkan alamat yang disulitkan terakhir Untuk menangani masalah terbalik ini, kami telah membuat proses pelaksanaan contoh terbalik yang mudah.
Atas ialah kandungan terperinci Ambil stok tutorial tentang menukar kod terbalik JS kepada kod Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Penyelesaian kepada Isu Kebenaran Semasa Melihat Versi Python di Terminal Linux Apabila anda cuba melihat versi Python di Terminal Linux, masukkan Python ...

Apabila menggunakan Perpustakaan Pandas Python, bagaimana untuk menyalin seluruh lajur antara dua data data dengan struktur yang berbeza adalah masalah biasa. Katakan kita mempunyai dua DAT ...

Bermula dengan Python: Lukisan Grafik Hourglass dan Pengesahan Input Artikel ini akan menyelesaikan masalah definisi berubah -ubah yang dihadapi oleh pemula python dalam program lukisan grafik Hourglass. Kod ...

Pilihan Perpustakaan Pembangunan Aplikasi Desktop Python Python Banyak pemaju Python ingin membangunkan aplikasi desktop yang boleh dijalankan pada kedua-dua sistem Windows dan Linux ...

Ramai pemaju bergantung kepada PYPI (PythonPackageIndex) ...

Penukaran dan Statistik Data: Pemprosesan yang cekap bagi set data besar Artikel ini akan memperkenalkan secara terperinci bagaimana untuk menukar senarai data yang mengandungi maklumat produk kepada yang lain yang mengandungi ...

Bagaimana untuk mengendalikan imej resolusi tinggi di Python untuk mencari kawasan putih? Memproses gambar resolusi tinggi 9000x7000 piksel, bagaimana untuk mencari dua gambar dengan tepat ...

Apabila menggunakan Python untuk menyambung ke pelayan FTP, anda mungkin menghadapi masalah pengekodan apabila mendapatkan fail dalam direktori yang ditentukan dan memuat turunnya, terutamanya teks pada pelayan FTP ...
