軟體破解(1)-Java篇
阿新 • • 發佈:2019-01-01
初識
最經同學發給我一個java的軟體,讓我幫忙破解一下。經過學習+查詢,終於成功破解。(Java編寫的軟體破解應該是相當簡單的,可以反編譯原始碼,加殼什麼都沒有,只有程式碼混淆),這個軟體作者沒要程式碼混淆。
工具
破解過程
首先,執行軟體,如圖1:
使用jd-gui開啟目錄下的jar檔案, 圖2:
檢視軟體原始碼可以看到軟體的驗證時通過LicenseValidator來實現的,如上圖紅框圈的部分
右鍵,使用7-zip解壓並開啟artblade.jar這個檔案, 圖3
使用dirtyjoe開啟LicenseValidator.class檔案,啟用tab-methods,圖4
由圖2原始碼中可以看到驗證的語句在類LicenseValidator的初始化init方法中,故圖4中雙擊開啟init方法的程式碼段,快捷鍵ctrl+f搜尋“Mac Address in license does not match your local machine”圖5:
對比圖2和圖5程式碼對應二進位制,圖6:
雙擊ifne pos.00000170,將9A改為99, 雙擊ifeq pos.00000194將99改為9A,儲存, 結果如圖7:
將儲存後的LicenseValidator.class檔案拖入圖3檔案中覆蓋原檔案。執行結果如圖8, 執行成功:
結語
此方法同樣可用於破解android軟體的apk檔案,因為apk也是類似jar的zip打包檔案。