国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

JavaScript奇技淫巧:Eval的未公開(kāi)用法

2023-03-02 13:48 作者:w2sft  | 我要投稿

JavaScript奇技淫巧:Eval的未公開(kāi)用法

作者:JShaman.com w2sft,轉(zhuǎn)載請(qǐng)保留此信息

很多人都知道,Eval是用來(lái)執(zhí)行JS代碼的,可以執(zhí)行運(yùn)算、可以輸出結(jié)果。

但它還有一種未公開(kāi)的用途,想必很少有人用過(guò)。

例:

var a = eval(['g', 'o', 'l', '.', 'e', 'l', 'o', 's', 'n', 'o', 'c'].reverse().join(""));

var b = ['m', 'o', 'c', '.', 'n', 'a', 'm', 'a', 'h', 's', 'j'].reverse().join("");

a(b);

這段JS代碼,如果單看語(yǔ)法,是否能知道a(b)調(diào)用會(huì)輸出什么?答案是很難想到的,它的輸出如下:

能有這樣的輸出,依靠的便是eval的未公開(kāi)用法:可以將字符串轉(zhuǎn)為語(yǔ)法關(guān)鍵字。

上面的eval語(yǔ)句,簡(jiǎn)化后等于:

eval("console.log")

用reverse、join是為了隱藏console.log明文。

這個(gè)方法用于JS代碼加密,效果很不錯(cuò)。

因?yàn)閷?duì)JS代碼混淆加密時(shí),語(yǔ)法關(guān)鍵字是很難隱藏的,就如console.log,一般情況下可能變化為:console[“l(fā)og”],或者console[“\x6c\x6f\x67”],log字符可以變化,但console作為語(yǔ)法關(guān)鍵字,是不可變的,這就容易被識(shí)別。

而eval的這種未公開(kāi)用法,恰好可以解決這一問(wèn)題??梢噪[藏很多語(yǔ)法關(guān)鍵字。



JavaScript奇技淫巧:Eval的未公開(kāi)用法的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
广饶县| 四平市| 繁昌县| 行唐县| 高邮市| 石城县| 通城县| 涟源市| 湘阴县| 新乡县| 白沙| 龙岩市| 宝山区| 朔州市| 阜城县| 张北县| 忻州市| 恭城| 梁山县| 日照市| 平阳县| 扎兰屯市| 精河县| 鱼台县| 深水埗区| 荔浦县| 磐安县| 陕西省| 剑河县| 涟源市| 弥勒县| 濮阳市| 孝昌县| 湖南省| 岳阳市| 来凤县| 民勤县| 城口县| 南雄市| 乐安县| 武山县|