news 2026/7/14 15:05:16

windows 加壳工具代码实现01 - 整体项目流程梳理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
windows 加壳工具代码实现01 - 整体项目流程梳理

目录

流程初始化总结

加壳阶段(用户使用加壳器时)

运行阶段(加壳后的程序被执行时)

一句话总结三者的关系

Stub 壳代码

Stub 壳代码

加壳器


流程初始化总结

加壳阶段(用户使用加壳器时)

  1. 12.GrkProDlg.cpp→ 用户点击“文件加壳”按钮 → 调用 Pack(m_ExeFilePath, 0x45)

  2. Pack.cpp 中的 Pack() 函数(核心调度者)

    1. 调用 InitPE() 初始化 PE 信息

    2. 调用 XorCode() 对原程序代码段加密

    3. LoadLibrary(L"Stub.dll") 加载壳模板

    4. 把关键参数(ImageBase、OEP、加密密钥、加密起始地址等)填入 g_stcParam

    5. 提取 Stub.dll 的代码段内容

    6. 调用 FixReloc() 修复壳代码的重定位

    7. 调用 AddSection() 把壳代码写入目标文件新增的区段

    8. 修改 PE 头中的入口点(OEP)指向壳代码

    9. 生成新的加壳文件 xxx_GrkPatk.exe

  • 注意

    • 此时 Stub.dll只是被用来当“代码模板”,并不是让它运行,而是把它的机器码扣出来用。

运行阶段(加壳后的程序被执行时)

  1. 用户运行加壳后的 xxx_GrkPatk.exe

  2. 系统根据修改后的AddressOfEntryPoint,直接跳转到新区段的 Start() 函数(来自 Stub.cpp)

  3. 执行 Stub.cpp 中的 Start():

    1. 动态解析各种 API(LoadLibraryA、VirtualProtect、MessageBoxA 等)

    2. 弹出 “是否解密打开原有程序” 对话框

    3. 用户点“是”后:

      • 对之前被加密的代码段进行异或解密

      • 修改内存保护属性

      • 跳转到原始程序的 OEP

  4. 原程序正常启动运行


一句话总结三者的关系

  • 12.GrkProDlg.cpp界面,用户操作入口,负责调用加壳功能。

  • Stub.cpp壳的灵魂,定义了加壳后程序启动时要执行的保护代码,最终被打包进目标 exe。

  • Stub.dll壳的载体/模板,Pack.cpp 通过加载它来“复制”壳代码,然后注入到被加壳的程序中。

  • 调用逻辑链条界面 (12.GrkProDlg.cpp) → Pack() 函数 → 加载 Stub.dll → 提取 Stub.cpp 编译后的机器码 → 注入目标程序

Stub 壳代码

  • 壳代码解密跳转到原始程序的OEP程序入口点中

    • Stub.h 壳代码头文件生成全局变量并且生成提供给壳的cpp文件使用

    • Stub.cpp 壳代码生成全局结构变量

    • Stub.cpp 壳代码生成对应的函数 Getkernel32.dll GEtProcAddress xor 等函数

    • Stub.cpp Start初始化函数

    • 将生成的Stub.cpp放入到壳代码中

Stub 壳代码

  • MFC 功能按钮增加

  • 加壳器

  • 加壳器主要功能就是加加密壳的功能给原始程序代码块区段进行加密操作

  • 加壳器也就是对PE结构进行代码块的加密操作

    • 初始化PE结构

    • 异或加密 --- > 壳代码加密

    • 获取区段数据

    • 清空绑定导入表

    • 修复重定位

    • 新增区段

    • 加壳打包函数

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 15:05:12

从OpenMV到STM32:激光追踪系统中的视觉识别与PID控制实战解析

1. 激光追踪系统概述激光追踪系统是电子设计竞赛中的经典题目,也是机器视觉与运动控制的完美结合。简单来说,这套系统需要让一个激光点能够自动追踪另一个移动的激光点,或者沿着预设的路径精确移动。听起来像是科幻电影里的场景,但…

作者头像 李华
网站建设 2026/7/14 15:05:05

终极指南:如何安全免费解锁WeMod完整功能

终极指南:如何安全免费解锁WeMod完整功能 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer 还在为WeMod的高级功能限制而烦恼吗&#xff…

作者头像 李华
网站建设 2026/7/14 15:04:07

【目标检测算法】Fast R-CNN:从RoI Pooling到多任务损失的端到端优化

1. Fast R-CNN的核心思想与改进如果你用过早期的R-CNN或SPPNet做目标检测,一定对繁琐的训练流程和蜗牛般的推理速度印象深刻。2015年Ross Girshick提出的Fast R-CNN就像给目标检测领域打了一针强心剂——它用两个关键设计彻底改变了游戏规则:RoI Pooling…

作者头像 李华
网站建设 2026/7/14 15:03:24

终极Dism++系统优化工具:让Windows运行如新的完整指南

终极Dism系统优化工具:让Windows运行如新的完整指南 【免费下载链接】Dism-Multi-language Dism Multi-language Support & BUG Report 项目地址: https://gitcode.com/gh_mirrors/di/Dism-Multi-language 你是否经常遇到Windows系统越来越慢、C盘莫名其…

作者头像 李华
网站建设 2026/7/14 15:03:10

c++口算题本

有没有家长想要孩子做口算题的&#xff1f;话不多说上代码&#xff01;&#xff01;&#xff01;点个赞再复制吧求求了&#xff01;这里要改一下&#xff01;&#xff01;&#xff01;#include<iostream> #include<time.h> #include<stdlib.h> #include<…

作者头像 李华
网站建设 2026/7/14 15:02:29

MetaWRAP终极指南:简单快速的宏基因组数据分析完整解决方案

MetaWRAP终极指南&#xff1a;简单快速的宏基因组数据分析完整解决方案 【免费下载链接】metaWRAP MetaWRAP - a flexible pipeline for genome-resolved metagenomic data analysis 项目地址: https://gitcode.com/gh_mirrors/me/metaWRAP MetaWRAP是一个强大的基因组解…

作者头像 李华