C 中將dll匯入exe z

2021-09-06 22:10:31 字數 1149 閱讀 9966

用了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

完成之後,就得到了乙個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在其原始碼包裡,有興趣的朋友可以研究一下。

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

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

有乙個問題是,用sixxpack處理之後的程式集,版本資訊是0.0.0.0,其他資訊也不對。沒關係,使用resource hacker修改一下就ok了! resource hacker也是免費軟體,官網是:

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

C 中將dll匯入exe,並加殼

這幾天使用了3層架構,執行目錄下有很多dll檔案,最終發布時,我打算將dll檔案都合併到exe檔案中去。微軟發布的免費軟體ilmerge可以完成這項工作,研究了一下,其用法如下 1 合併file1.dll file2.dll到destination.dll ilmerge ndebug target...

dll打包進需要發布的exe z

我們需要發布的exe檔案很多時候都可能會依賴於一堆鬆散的dll,如果想在發布 的時候只提供exe檔案,而不想把一大堆dll一起放在和exe同乙個資料夾下,是有方法的,該方法由clr via c 作者提出,我在實踐的過程中遇到的幾點問題,現在記錄下總體的流程和該注意的事項。1.開啟vs,新建類庫,使用...

DLL相互匯入

dll相互匯入的問題參見以下為vs2010中的解決方法。一 設定dlla專案的屬性 1.常規 配置型別 靜態庫 lib 2.庫管理器 命令列 其他選項 def 以便生成dlla.exp 二 設定dllb專案的屬性 1.常規 配置型別 動態庫 dll 2.自定義生成步驟 命令列 link.exe er...