加殼上碰到的問題

最近由于公司項目原因,開始學(xué)習(xí)入手C++的加殼技術(shù)殼的編寫,參考文獻oBuYiSeng的博客里面詳細的介紹了加殼的原理和開發(fā)步驟。
個人在開發(fā)的時候碰到了一些問題,總結(jié)一下,希望對在做加殼的朋友有幫助,如果有不足的地方,望大家指出
個人的開發(fā)環(huán)境:vs2015

  • 問題一
    在構(gòu)建項目加殼代碼Stub.DLL的時候出現(xiàn)LNK2001:無法解析外部符號 __free 和LNK2001:無法解析外部符號 __memove 等錯誤的問題
    原因:在構(gòu)建dll項目的時候選擇win32的時候選擇了支持MFC,當時構(gòu)建項目是基于mfc的項目,所以勾選了MFC的支持


    圖一.png

    解決:在構(gòu)建的時候默認不要添加支持MFC的支持

  • 問題二:
    在解決問題一后,構(gòu)建項目后,實現(xiàn)加殼代碼后,添加了指定程序入口函數(shù)

#pragma comment(linker, "/entry:\"StubEntryPoint\"") // 指定程序入口函數(shù)為StubEntryPoint()
#pragma comment(linker, "/merge:.data=.text")        // 將.data合并到.text
#pragma comment(linker, "/merge:.rdata=.text")       // 將.rdata合并到.text
#pragma comment(linker, "/section:.text,RWE")        // 將.text段的屬性設(shè)置為可讀、可寫、可執(zhí)行

這個時候編譯,會報錯誤,如下:


圖二.png

原因:因為在各種嘗試后,最后在切換編譯SDK版本的時候發(fā)現(xiàn)可以編輯過,因為在VS2015不支持該參數(shù)
命令
解決:目前的解決方案是將平臺的工具集切換到2012的,編譯正常通過,個人試過了2013也是可以編譯通過


image.png

以上問題,目前還沒有發(fā)現(xiàn)其他的解決方法,如果有哪位大神有其他解決方案,歡迎下方留言指導(dǎo)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容