1. 程式人生 > >利用“Java同包同名類執行順序”取消Java 網站應用程式Licence驗證

利用“Java同包同名類執行順序”取消Java 網站應用程式Licence驗證

如果是在tomcat裡執行,lib目錄下一大堆的JAR包,不同的JAR包裡可能會有相同的包名類名,JRE按照JAR名字的字母順序載入JAR檔案,同名類如果已載入,則後面的同名類會忽略。

公司購買的一款Java web 應用程式 ,當然是有授權碼的,雖然買的全部授權,沒有年限限制,但是是按年授權,包括測試環境也是一樣,挺麻煩的,反編譯看了下程式碼,找到了Licence驗證機制,由於採用的是RSA加密演算法,驗證是是用私鑰生成的簽名和公鑰驗證,這個私鑰是不可能知道的,因此即使知道了License檔案的生成規則,也是無法仿造Licence檔案的,但是利用上面所講的同包同名執行順序的特性,可以仿照寫一同包同名的驗證方法, 這樣就可以使程式在執行時不執行原來的驗證方法,而是執行自已寫的驗證方法,這樣就能達到不驗證Licence的效果。