一招破解混淆后的JavaScript代碼


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

  一、原理:

  JavaScript是解釋性語言,沒有懸念,它嚴重依賴游覽器,尤其是手機小游戲 59600.com 這樣的網站,嚴重地依賴手機瀏覽器。

  不管JavaScript如何混淆,最終瀏覽器都會知道最真實的代碼。

  有朋友提出質疑,混淆方式千千萬萬,你如果知曉它的混淆方式,並制定出反混淆算法?

  如果你這么想,那就陷入了泥潭,為何不另辟蹊徑呢?

  首先,作為成熟的JavaScript產品,混淆是必須的。但是,他必須提供給瀏覽器反混淆算法,因為用戶需要運行。

  而運行這兩個字卻提供給我無限的契機。我不需要知道反混淆算法,我只要知曉一個接口,

  有IE9->F12的幫助,一切都變的很簡單,因為瀏覽器內核中有我迫切想要的東西。

  有朋友提問,我混淆過后,不給你接口或不給瀏覽器反混淆算法。

  在我眼里,運行不起來的代碼,統統都是廢代碼,一無是處,我也懶得去破解。

  二、方案:

  當你需要學習一款JavaScript產品的源碼,卻無情遭到混淆,心情恐怕是糟糕的。

  所以你只能拿到官網例子,然后進一步學習。

  什么?例子?那就好辦了,這不就是我想要的接口么?首先記住,只要JS源碼里含有throw,那咱們就成功了一大步。

  首先找到這個接口,嗯,參數一切正常。正常?可不是咱們想要的,

  咱真正要做的就是讓源代碼拋出異常,讓Eval Code還原出最真實的代碼。

  我故意改一個錯誤的參數傳進去。好吧,源代碼已經展現在我眼前。

  三、源碼保護解決方案:

  1.混淆前,讓變量、方法名不可讀:

  陰招啊,絕對的陰招。當人家破解完后你的代碼,一眼望去,看一眼都覺得損了陽壽。

  不過,這樣做的話,還有一個麻煩,就是你對外開發人員提供的API必須是有意義的,

  要不然誰也讀不懂,這期間的映射工作,也非常的復雜。

  2.瀏覽器廠商配合:

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

  3.杜絕把源碼里存在throw

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


免責聲明!

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



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