|
大家都知道ILDasm是。NET程序的反編譯工具,它是由Microsoft提供的反編譯工具。
它可以直接把。NET程序反編譯爲IL文件及資源文件,這樣即可以非常容易的讓黑客進行修改,刪除強命名,修改註冊碼算法等等。。。並且Ilasm再次編譯,得到一個正確的,可發佈的程序集 並且,這個功能是其它反編譯器所不能替代的功能,因爲ILDasm真的太重要了。也許有的朋友能理解,有的朋友不能理解,但沒關係,我們今天的重點並不是這個。 這是一件不可思議的事,讓軟件沒有了安全保障。幸虧有了XenoCode,它有一項功能即是 Anti ILDasm 。這是一個非常棒的功能,但它是怎麼做到的呢? 其實,這是ILDasm的一個限制,當你在程序中製造某個標誌後,那麼程序集將不可以再被ILDasm反編譯,ILDasm會提示您,這個程序集已經是一個被有版權的程序集,您不可能對其反編譯。呵呵,我們最可愛的ILDasm會罷工? 我曾經找過相關資料,不過沒有找到有什麼最簡單的方法讓自己的程序集變成已有版權的程序集,XenoCode有這樣做,不過我不想去分析它。如果有知道的朋友,請與我交流一下 那麼我們今天的任務是什麼呢?就是把罷工的ILDasm拉回來,讓它繼續爲我們工作。 OK,分析一下吧:經過短暫的分析,讓我出了一身汗。。。這樣的版權保護有還不如無,一定誤導了很多朋友。 爲什麼我這樣說呢?因爲我發現,想讓ILDasm再次工作,比想象中的簡單很多,這根本就檔不住任何東西。請看下面我跟蹤的代碼: 10042B4BD E8 8AFCFDFF CALL ildasmCr.0040B14C //報錯函數 2 3 400415FC6 E8 12470100 CALL ildasm.0042A6DD //進入的主函數 5 6 70042AABD FF51 0C CALL DWORD PTR DS:[ECX+C] //判斷函數 80042AAC0 3BF7 CMP ESI,EDI 90042AAC2 75 0F JNZ SHORT ildasm.0042AAD3 //關鍵跳轉地址,改爲JMP即可 100042AAC4 68 96010000 PUSH 196 110042AAC9 E8 8964FFFF CALL ildasm.00420F57 120042AACE E9 E3090000 JMP ildasm.0042B4B6 13 這已經很明顯了,ILDasm只用了一個標誌去阻止"已有版權"的程序集,而您只需要修改一個機器指令就可以暢通無阻的反編譯任何程序集,並修改其內容再次編譯 以上代碼您可以自己修改,如果您不會,也可以到 http://www.cnblogs.com/Files/Aiasted/ildasm.rar 下載一個已經修改好的版本。 XenoCode配合強命名的做法,可能從此將會消失 (注:我沒有從事過任何.NET程序集的破解,僅僅是看過在ILDasm反編譯出來的程序集可以去掉強命名一文,如果有對之處,請指正) 轉載:http://blog.csdn.net/stereohomology/article/details/5671212
|