前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >加壳上碰到的问题

加壳上碰到的问题

作者头像
包子388321
发布2020-06-16 18:33:21
9320
发布2020-06-16 18:33:21
举报
文章被收录于专栏:包子的书架包子的书架

最近由于公司项目原因,开始学习入手C++的加壳技术壳的编写,参考文献oBuYiSeng的博客里面详细的介绍了加壳的原理和开发步骤。 个人在开发的时候碰到了一些问题,总结一下,希望对在做加壳的朋友有帮助,如果有不足的地方,望大家指出 个人的开发环境:vs2015

  • 问题一 在构建项目加壳代码Stub.DLL的时候出现LNK2001:无法解析外部符号 __free 和LNK2001:无法解析外部符号 __memove 等错误的问题 原因:在构建dll项目的时候选择win32的时候选择了支持MFC,当时构建项目是基于mfc的项目,所以勾选了MFC的支持

图一.png 解决:在构建的时候默认不要添加支持MFC的支持

  • 问题二: 在解决问题一后,构建项目后,实现加壳代码后,添加了指定程序入口函数
代码语言:javascript
复制
#pragma comment(linker, "/entry:\"StubEntryPoint\"") // 指定程序入口函数为StubEntryPoint()
#pragma comment(linker, "/merge:.data=.text")        // 将.data合并到.text
#pragma comment(linker, "/merge:.rdata=.text")       // 将.rdata合并到.text
#pragma comment(linker, "/section:.text,RWE")        // 将.text段的属性设置为可读、可写、可执行

这个时候编译,会报错误,如下:

图二.png

原因:因为在各种尝试后,最后在切换编译SDK版本的时候发现可以编辑过,因为在VS2015不支持该参数 命令 解决:目前的解决方案是将平台的工具集切换到2012的,编译正常通过,个人试过了2013也是可以编译通过

image.png

以上问题,目前还没有发现其他的解决方法,如果有哪位大神有其他解决方案,欢迎下方留言指导

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档