C#程序加殼的方法(使用Sixxpack)

2010-08-28 10:55:03來(lái)源:西部e網(wǎng)作者:

這幾天在做自己的一個(gè)小程序,因?yàn)槭褂昧?層架構(gòu),運(yùn)行目錄下有很多dll文件,最終發(fā)布時(shí),我打算將dll文件都合并到exe文件中去。微軟發(fā)布的免費(fèi)軟件ILmerge可以完成這項(xiàng)工作,研究了一下,其用法如下:

1、合并file1.dll、file2.dll到destination.dll

ILmerge /ndebug /target:dll /out:C:\destination.dll /log C:\file1.dll C:\file2.dll


2、合并file1.dll、file2.dll以及myApp.exe到newApp.exe

ILmerge /ndebug /target:winexe /out:C:\newApp.exe /log C:\myapp.exe C:\file1.dll C:\file2.dll


注意:合并為exe時(shí),myapp.exe必須寫(xiě)在file1.dll、file2.dll前面

完成之后,就得到了一個(gè)exe文件,如果想做一些邪惡的事情,可以將一些破解軟件的dll合并到你的exe中去。前提是,所有的dll都是托管的,如果嘗試合并C++寫(xiě)的dll,則會(huì)失敗。有一個(gè)工具,叫做mergebin.exe,可以合并托管和非托管dll,用法我還沒(méi)研究出來(lái),似乎比較困難的樣子。這個(gè)工具是ADO.NET 2.0 Data Provider for SQLite的作者寫(xiě)的,他發(fā)布的 System.Data.SQLite.dll可以被dotNet程序引用,還可以直接被C/C++程序調(diào)用,這個(gè)dll就是托管和非托管混合的dll,果然是很牛的!mergebin.exe在其源碼包里,有興趣的朋友可以研究一下。這是其官方網(wǎng)站:http://sqlite.phxsoftware.com

繼續(xù)邪惡的話(huà)題,如果你的exe里面合并有破解的dll,你可能不想讓別人知道,或者你不想讓別人反編譯你的exe文件。混淆軟件都收費(fèi),而且混淆之后方法還是看得見(jiàn)的,只不過(guò)名字毫無(wú)規(guī)則,沒(méi)辦法,用不了。還是加殼來(lái)的直接,我們得找一款很牛的加殼軟件。給大家推薦個(gè)軟件,叫做 Sixxpack,專(zhuān)門(mén)加殼dotNet程序的,目前的最新版本為Sixxpack22,要求機(jī)器上裝有.netframework2.0以上版本。 Sixxpack除了加殼,還使用了壓縮技術(shù),最高壓縮比達(dá)80%。Sixxpack是免費(fèi)軟件,官網(wǎng)是:http://www.reversers.net/

經(jīng)Sixxpack加殼后,用Reflector打開(kāi)exe文件,哈哈,看到的永遠(yuǎn)都只是一個(gè)actmp.dll的信息,其中包含4個(gè)7zip命名空間和1個(gè)Sixxpack命名空間,反編出來(lái)這些東西對(duì)也沒(méi)啥用處。呵呵,原來(lái)是用7zip壓縮的,難怪那么高的壓縮比。

有一個(gè)問(wèn)題是,用Sixxpack處理之后的程序集,版本信息是0.0.0.0,其他信息也不對(duì)。沒(méi)關(guān)系,使用Resource Hacker修改一下就OK了! Resource Hacker也是免費(fèi)軟件,官網(wǎng)是:http://angusj.com/resourcehacker/

我這個(gè)小項(xiàng)目為了美化界面,用了一些邪惡的東西,最終的exe文件5MB左右,用Sixxpack處理之后,體積降到了2MB以?xún)?nèi),運(yùn)行時(shí)幾乎沒(méi)有性能損失。最重要的,很難反編譯,可以放心拿給別人用了。

原文:http://www.cnblogs.com/Daylight/archive/2008/10/03/1302890.html#1331141

關(guān)鍵詞:C#vs.net加殼Sixxpack

贊助商鏈接: