一招破解混淆後的JavaScript代碼

來源:互聯網
上載者:User

JavaScript不是很給力,想怎麼破解就怎麼破解!此文章教你的不僅僅是破解方案,還有源碼保護意識!

一、原理:

  JavaScript是解釋性語言,沒有懸念,它嚴重依賴遊覽器。不管JavaScript如何混淆,最終瀏覽器都會知道最真實的代碼。有朋友提出質疑,混淆方式千千萬萬,你如果知曉它的混淆方式,並制定出反混淆演算法?如果你這麼想,那就陷入了泥潭,為何不另闢蹊徑呢?首先,作為成熟的JavaScript產品,混淆是必須的。但是,他必須提供給瀏覽器反混淆演算法,因為使用者需要運行。而運行這兩個字卻提供給我無限的契機。我不需要知道反混淆演算法,我只要知曉一個介面,有IE9->F12的協助,一切都變的很簡單,因為瀏覽器核心中有我迫切想要的東西。有朋友提問,我混淆過後,不給你介面或不給瀏覽器反混淆演算法。我給出的答案永遠是:運行不起來的代碼,統統都是廢代碼,一無是處,我也懶得去破解。

二、方案:

  當你需要學習一款JavaScript產品的源碼,卻無情遭到混淆,心情恐怕是糟糕的。所以你只能拿到官網例子,然後進一步學習。什嗎?例子?那就好辦了,這不就是我想要的介面嗎?首先記住,只要JS源碼裡含有throw,那咱們就成功了一大步。首先找到這個介面,嗯,參數一切正常。正常?可不是咱們想要的,咱真正要做的就是讓原始碼拋出異常,讓Eval Code還原出最真實的代碼。我故意改一個錯誤的參數傳進去。好吧,原始碼已經展現在我眼前。

三、源碼保護解決方案:

  ①混淆前,讓變數、方法名不可讀:

  陰招啊,絕對的陰招。當人家破解完後你的代碼,一眼望去,看一眼都覺得損了陽壽。不過,這樣做的話,還有一個麻煩,就是你對外開發人員提供的API必須是有意義的,要不然誰也讀不懂,這期間的映射工作,也非常的複雜。

  ②瀏覽器廠商配合:

  真正的實現JS源碼保護,非瀏覽器廠商參與不可,妄圖用JS全程實現源碼保護是不現實的。

  ③杜絕源碼裡存在throw

  如果諸位用JQuery或ExtJS,那麼盡量throw錯誤讓這些類庫拋出,避免讓瀏覽器從源碼檔案拋出異常。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.