Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Ambil stok tutorial tentang menukar kod terbalik JS kepada kod Python

Ambil stok tutorial tentang menukar kod terbalik JS kepada kod Python

WBOY
WBOYke hadapan
2023-04-13 09:46:061356semak imbas

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:

Ambil stok tutorial tentang menukar kod terbalik JS kepada kod Python

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.

Ambil stok tutorial tentang menukar kod terbalik JS kepada kod Python

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)))
}
Mengikut hubungan yang sepadan, hubungan yang sepadan boleh ditulis Kod Python adalah seperti berikut:

 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'])))
Paparan kesan

Jika anda membuat permintaan terus melalui perangkak web, anda tidak akan mendapat alamat yang disulitkan akhir Tidak kira bagaimana anda meminta, anda tidak boleh mendapatkannya, anda hanya boleh mendapatkan data-src, iaitu pembolehubah rentetan yang disebut di atas analisis di atas, dan menjalankan kod, anda boleh mendapatkan alamat permintaan yang sama seperti pada halaman web, seperti yang ditunjukkan di bawah Seperti yang ditunjukkan, sebaliknya berjaya! dalam penyemak imbas, ia boleh dimainkan, dan kemudian membuat permintaan untuk memuat turun dan video boleh dimuat turun.

Ringkasan

Ambil stok tutorial tentang menukar kod terbalik JS kepada kod PythonHelo 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!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam