羽夏壳世界——实现篇


写在前面

??此系列是本人一个字一个字码出来的,包括代码实现和效果截图。 如有好的建议,欢迎反馈。码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作。如想转载,请把我的转载信息附在文章后面,并声明我的个人信息和本人博客地址即可,但必须事先通知我

你如果是从中间插过来看的,请仔细阅读 ,方便学习本教程。

简述

??既然是实现篇了,我就再提一提与本教程配套的代码:

托管平台 链接
https://gitee.com/wingsummer/WingProtect
https://github.com/Wing-summer/WingProtecter

??注意,本教程并不会从零开始教你利用PE结构的知识写一个壳,但我会告诉你我是怎样做的。在开始进入下一篇实现篇正题,我们需要准备一下工具:VS2022(根据你自己喜欢的IDE来,我会使用它作为开发环境)、ASMJIT编译好的开发包,其他的就没啥了。
??ASMJIT是一个生成机器码的C++库,也就是所谓的汇编,它的 GitHub 地址在此,点击即可到它的源码仓库。在开发之前建议看它的 文档 ,不过看起来比较难受,很多功能我并没有看懂多少,不过看懂如何生成汇编并导出十六进制数据就足够了。如果你对ASMJIT的提供的函数使用有疑问,不要问我,我也不会。
??编译ASMJIT对于某些小白可能又是一个新问题,尤其是严重依赖VS的。但是,这个项目有CMakeLists.txt,说明我们可以用CMake将该项目转为VS项目,然后进行编译。至于怎么转成VS项目,怎么编译成功并使用,这个并不是我们实现篇的关注点。
??由于静态库我编译成功但无法让使用它的项目编译成功,故使用了动态链接库的方式进行使用。在托管平台上我提供的代码并没有该DLL,故需要自行编译该动态链接库,然后拷贝到调试目录下,才能够正常运行。
??如下是我的代码实现的一个节区的内存结构,如果感兴趣的话可以自行研究,后面的教程将会介绍每一处的实现细节:

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"}">

??有关实现篇的注意事项大概就这么多,下一篇就正式进入实现篇正题。

下一篇