亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Js逆向教程作用域和自執(zhí)行函數(shù)介紹

 更新時間:2023年01月19日 10:36:08   作者:虛壞叔叔  
這篇文章主要介紹了Js逆向教程作用域和自執(zhí)行函數(shù)介紹,本文章內(nèi)容詳細(xì),具有很好的參考價值,希望對大家有所幫助,需要的朋友可以參考下

Js逆向教程24-作用域和自執(zhí)行函數(shù)

變量作用域

局部變量

function jb()
{
	var a="我是局部變量"
	return a;
}

全局變量

var a="我是全局變量"
function jb()
{
	console.log(a)
}
console.log(a)

自執(zhí)行函數(shù)

在加載的時候 這個自執(zhí)行函數(shù)就能自己運(yùn)行

!(function()
{
	console.log(2)
}
)()

!表示運(yùn)行成功

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-OsYCquRS-1673098150122)(02 - 副本.assets/image-20230107205816596.png)]

拆解只執(zhí)行函數(shù)的過程

對于這樣一個函數(shù) 直接運(yùn)行:

function()
{
	console.log(2)
}

除非前面有個var 否則會報錯

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-zFkXXpEe-1673098150123)(02 - 副本.assets/image-20230107210015165.png)]

var a =function()
{
	console.log(2)
}

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-SdIiQnNj-1673098150123)(02 - 副本.assets/image-20230107210128558.png)]

用括號括起來 也不會報錯,因為括起來之后就是一個整體,你可以將它理解為一個沒有方法名稱的方法、也就是閉包。

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-wx4vlDez-1673098150124)(02 - 副本.assets/image-20230107210241014.png)]

在括號后面再加一個括號就表示執(zhí)行這個函數(shù)

(function()
{
	console.log(2)
}
)()

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-Kvp8w9tF-1673098150124)(02 - 副本.assets/image-20230107210352958.png)]

再js逆向中,通過這種方式 可以將一個函數(shù)的執(zhí)行傳給另一個函數(shù)執(zhí)行 從而實現(xiàn)逆向。

內(nèi)部函數(shù)如何外部調(diào)用

!(function()
{
    function jm()
    {
        console.log(2)
    }
    jm()
}
)()

可以看到內(nèi)部函數(shù)也可以被掉喲個

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-QrkXOLMa-1673098150125)(02 - 副本.assets/image-20230107210628006.png)]

如果將內(nèi)部函數(shù)放到外部調(diào)用:

!(function()
{
    function jm()
    {
        console.log(2)
    }
}
)()
jm()

就會報錯

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-hy3eddco-1673098150126)(02 - 副本.assets/image-20230107210759134.png)]

要解決這個問題 可以在外部定義一個變量,然后將內(nèi)部的jm賦值給這個變量

var jm_;
!(function()
{
    function jm()
    {
        console.log(2)
    }
    jm_ = jm;
}
)()
jm_()

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-EfhXfnNC-1673098150126)(02 - 副本.assets/image-20230107211022534.png)]

這里就非常方便我們進(jìn)行js逆向

因為一個網(wǎng)站的加密就1個或者幾個函數(shù),

大概流程是這樣

用戶輸入明文的數(shù)據(jù) -> 方法1 -》 發(fā)包函數(shù) 。。。 -》 加密函數(shù)

我們只需要將加密函數(shù)拿出來,用python或者易語言去模擬發(fā)包,執(zhí)行這個js的加密函數(shù),

這個加密函數(shù)可能嵌套再里面 這個時候 就可以用全局變量的方式 將它拿到外面。

變量類型的轉(zhuǎn)換

所有類型的變量 加上字符串 就會變成字符串

變量+字符串=字符串

比如一個方法 加上字符串,就會變成字符串

var jm_;
!(function()
{
    function jm()
    {
        console.log(2)
    }
    jm_ = jm;
}
)()
jm_+""

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-Dphyt04n-1673098150127)(02 - 副本.assets/image-20230107212111686.png)]

JS BOM

https://www.runoob.com/js/js-window.html

它是一種瀏覽器環(huán)境,脫離了瀏覽器在外部不能直接調(diào)用的就是BOM

到此這篇關(guān)于Js逆向教程作用域和自執(zhí)行函數(shù)介紹的文章就介紹到這了,更多相關(guān)作用域和自執(zhí)行函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論