Windows平台PE格式与脱壳基础教程

需积分: 10 13 下载量 10 浏览量 更新于2024-07-28 1 收藏 707KB PDF 举报
"脱壳入门初级教学" 这是一篇关于计算机安全和逆向工程领域的初级教程,主要关注如何理解和处理程序的“脱壳”技术。脱壳是指解除对可执行文件的保护层,通常是为了分析其内部工作原理或者绕过反调试机制。教程由kanxue撰写,日期为2006年1月14日,发布在pediy.com论坛上,旨在教授个人用户基础的脱壳知识,但禁止商业用途。 教程分为十一课,涵盖了从基础到进阶的多个主题: 1. **PE格式**:学习脱壳的第一步是理解PE(Portable Executable)格式,这是Windows平台上可执行文件的标准格式。通过阅读Microsoft Visual C++的WINNT.H头文件和相关文档,以及利用十六进制编辑器如HexWorkshop或WinHex,以及辅助工具Stud_PEv来深入学习。重点在于理解输入表(Import Table)。 2. **SEH技术**:结构化异常处理(SEH)是Windows系统中处理程序错误和异常的方式,它在壳程序中广泛应用。理解SEH有助于分析被壳保护的代码。 3. **认识壳**:探讨不同类型的壳,包括压缩壳和加密壳,它们用于保护程序不被轻易反编译或调试。 4. **文件类型分析**:学习如何识别和分析不同类型的文件,以确定是否包含壳。 5. **寻找OEP**:找到Original Entry Point(原始入口点),这是脱壳过程中的关键步骤。 6. **Dump内存映像**:学习如何将程序的内存状态导出为文件,以便离线分析。 7. **重建输入表**:恢复被壳改变的输入表,使其功能恢复正常。 8. **手动确定IAT的地址与大小**:IAT(Import Address Table)是PE文件中的一部分,用于存储对外部函数的引用。确定其地址和大小是脱壳过程中的重要环节。 9. **DLL文件脱壳**:处理动态链接库(DLL)文件的脱壳问题。 10. **优化与自校验去除**:了解如何处理代码优化和自校验机制,这些可能会阻止脱壳过程。 每一课都提供了相关的资源链接,如ah007和qduwg翻译的PE文件格式文档,以及Iczelion's和微软官方的PE格式资料,还有zhzhtst翻译的深入解析PE格式的书籍。 这个初级教程为那些希望进入逆向工程和软件安全领域的人提供了一个良好的起点,通过学习这些基础知识,读者能够逐步掌握如何分析和处理被保护的程序。