[英]Attaching source for some classes in a jar
對於我們的項目,我們正在進行逆向工程。 為此,我們必須調試第三方jar。
我嘗試用DJ,JAD反編譯該jar,但輸出是帶有編譯時錯誤的源代碼(例如,方法原型中的返回類型為boolean,但返回int,為循環中斷等)。
現在,在這個損壞的源代碼中,有幾個.java文件,我想調試。 我想在jar中附加這幾個文件的源代碼和相應的類。
我用谷歌搜索,但沒有發現任何有用的東西。 ????
阻止程序是反編譯器很可能無法使用正確的行號重寫源文件。 因此,即使已編譯的庫具有適當的行號信息,也不能使用開箱即用的反編譯輸出。
您可以在方法中設置斷點(只要編譯的類文件中有行號信息),即使沒有源代碼也是如此。 您甚至可以讀取局部變量的值(同樣,如果已經使用調試信息編譯了類),但是您必須查看反編譯器輸出並希望最好,反編譯方法足夠接近真實的代碼。
這不是不可能,但需要一些“手動”工作。
要在java代碼中附加類的源代碼:
右鍵單擊所需的類
轉到公開聲明[F3]
類文件編輯器將打開單擊Attach Source按鈕
瀏覽具有源代碼的jar
單擊<確定>
完成上述步驟后,打開聲明將打開具有源代碼的.class文件。
您沒有提到您用於調試的IDE。 如果嘗試調試僅在類窗體中可用的類,Eclipse會詢問源代碼。 主要問題是Andreas_D已經提到了不匹配的行號。
我會嘗試以下方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.