阻止函數源碼在控制台輸出


這是一個很賤的技能,我在谷歌控制台源碼里看到的。
相信大家都知道,在控制台里只輸入函數名,不輸入 () 然后按回車,就可以輸出源碼。

都不會陌生吧,這也有助於我們調試,是個很棒的技巧。
不過系統內置的就會輸出  function alert() { [native code] } 

比如這個。

不過當我們輸入 dir 的時候卻看到:

WTF,Command Line API ?
難道也是系統的?
以前我以為是,后來發現其實不是,而是一個js處理輸出的,防止輸出源碼的方法。

讓我們來找到他的源代碼吧。
在控制台輸入 debugger 然后按回車鍵,然后按2F11,好,我們進入到了控制台運行環境了。
在第 1253-1273 行,就是這個函數了。有興趣的可以仔細研究下,這里就不深入分析了,我們進入下一個環節。

其實我們一句話就可以阻止任何函數輸出源碼了。

Function.prototype.toString = function toString(){
    return "function " + (this.name || "anonymous") + "() { [native code] }";
}

是不是簡單方便,一次性根除所有麻煩。
這只是個障眼法而已,只是忽悠小菜用的,沒任何實際用途。
當然,你可以讓它隨機輸出一個招聘信息,或者圖文信息,裝裝逼還是不錯的。

好了,今天分享完畢,一個小東西,玩玩而已。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM