1. 程式人生 > >軟體破解(1)-Java篇

軟體破解(1)-Java篇

初識

最經同學發給我一個java的軟體,讓我幫忙破解一下。經過學習+查詢,終於成功破解。(Java編寫的軟體破解應該是相當簡單的,可以反編譯原始碼,加殼什麼都沒有,只有程式碼混淆),這個軟體作者沒要程式碼混淆。

工具

破解過程

首先,執行軟體,如圖1:
圖1 待破解軟體執行截圖

使用jd-gui開啟目錄下的jar檔案, 圖2:
圖2 軟體原始碼

檢視軟體原始碼可以看到軟體的驗證時通過LicenseValidator來實現的,如上圖紅框圈的部分

右鍵,使用7-zip解壓並開啟artblade.jar這個檔案, 圖3
圖3 解壓後的binary檔案

使用dirtyjoe開啟LicenseValidator.class檔案,啟用tab-methods,圖4
圖4

由圖2原始碼中可以看到驗證的語句在類LicenseValidator的初始化init方法中,故圖4中雙擊開啟init方法的程式碼段,快捷鍵ctrl+f搜尋“Mac Address in license does not match your local machine”圖5:
圖5 二進位制檔案截圖

對比圖2和圖5程式碼對應二進位制,圖6:
這裡寫圖片描述

雙擊ifne pos.00000170,將9A改為99, 雙擊ifeq pos.00000194將99改為9A,儲存, 結果如圖7:
圖7

將儲存後的LicenseValidator.class檔案拖入圖3檔案中覆蓋原檔案。執行結果如圖8, 執行成功:
圖8

結語

此方法同樣可用於破解android軟體的apk檔案,因為apk也是類似jar的zip打包檔案。