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

來源:互聯網
上載者:User

這幾天在做自己的一個小程式,因為使用了3層架構,運行目錄下有很多dll檔案,最終發布時,我打算將dll檔案都合并到exe檔案中去。微軟發布的免費軟體ILmerge可以完成這項工作,研究了一下,其用法如下:

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時,myapp.exe必須寫在file1.dll、file2.dll前面

完成之後,就得到了一個exe檔案,如果想做一些邪惡的事情,可以將一些破解軟體的dll合并到你的exe中去。前提是,所有的dll都是託管的,如果嘗試合并C++寫的dll,則會失敗。有一個工具,叫做mergebin.exe,可以合并託管和非託管dll,用法我還沒研究出來,似乎比較困難的樣子。這個工具是ADO.NET 2.0 Data Provider for SQLite的作者寫的,他發布的System.Data.SQLite.dll可以被dotNet程式引用,還可以直接被C/C++程式調用,這個dll就是託管和非託管混合的dll,果然是很牛的!mergebin.exe在其源碼包裡,有興趣的朋友可以研究一下。這是其官方網站:http://sqlite.phxsoftware.com

繼續邪惡的話題,如果你的exe裡面合并有破解的dll,你可能不想讓別人知道,或者你不想讓別人反編譯你的exe檔案。混淆軟體都收費,而且混淆之後方法還是看得見的,只不過名字毫無規則,沒辦法,用不了。還是加殼來的直接,我們得找一款很牛的加殼軟體。給大家推薦個軟體,叫做Sixxpack,專門加殼dotNet程式的,目前的最新版本為Sixxpack22,要求機器上裝有.netframework2.0以上版本。Sixxpack除了加殼,還使用了壓縮技術,最高壓縮比達80%。Sixxpack是免費軟體,官網是:http://www.reversers.net/

經Sixxpack加殼後,用Reflector開啟exe檔案,哈哈,看到的永遠都只是一個actmp.dll的資訊,其中包含4個7zip命名空間和1個Sixxpack命名空間,反編出來這些東西對也沒啥用處。呵呵,原來是用7zip壓縮的,難怪那麼高的壓縮比。

有一個問題是,用Sixxpack處理之後的程式集,版本資訊是0.0.0.0,其他資訊也不對。沒關係,使用Resource Hacker修改一下就OK了! Resource Hacker也是免費軟體,官網是:http://angusj.com/resourcehacker/

我這個小項目為了美化介面,用了一些邪惡的東西,最終的exe檔案5MB左右,用Sixxpack處理之後,體積降到了2MB以內,運行時幾乎沒有效能損失。最重要的,很難反編譯,可以放心拿給別人用了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.