64-github 0x01 项目名称:64位加壳框架 功能:可以对64位加壳保护,兼容32位 编译器:vs2019 和 intel XE 2020 编写语言:C++ win32(开发模式:单例模式) 解决方案:一个解决方案,两个项目(“加壳框架”窗口程序和“Stub”动态库) 0x02 需要注意的一些问题: 1、编译64位时,请用intel编译器,intel编译器支持x64内联汇编,如果不想使用intel编译器,那么源码中用到的x64内联汇编就要自行处理掉,或者变换为C/C++,或者使用64位纯汇编,或者使用shellcode来替代。 2、编译Stub.dll时,要编译成发布版(Release),关掉SDL检查,关掉安全检查。想要调试程序,Stub.dll也要编译成发布版,调试时候可以把“加壳框架”中的“Stub"引用去掉,然后把Stub项目移除,”加壳框架“只需要加载Stub.dll的发布版即可。 3、Stub的运行库要和加壳框架的运行库一致。 4、字符集可以使用unicode和多字符集,最好使用unicode,使用多字符集的话有些地方需要改动。 5、支持对发布版的exe加密,不支持调试版的exe加密。 0x03 加壳流程: 外壳引导段放到Stub动态库中,负责加壳的功能模块由加壳框架的Pack类来承担。 其他说明: 这个加壳框架实现了IAT加密,有几个反调试的功能和实现了一个反虚拟的功能。具体参考代码。