羽夏壳世界——序
写在前面
此系列是本人一个字一个字码出来的,包括代码实现和效果截图。 如有好的建议,欢迎反馈。码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作。如想转载,请把我的转载信息附在文章后面,并声明我的个人信息和本人博客地址即可,但必须事先通知我。
前言
在学逆向分析的时候,你常常会听到或者遇到被称之为给程序加壳这个东西。那么壳是什么?它的实现原理是啥?加壳的目的是什么?
在Win
系统上,PE
结构是逆向的基础,也是实现加壳的理论基础,那么PE
结构是啥?它和逆向相关的细节有啥?它们又有啥联系?
对于以上疑问,本系列教程将会逐个解答。
知识储备
学习本教程需要一些的基础储备和热情毅力,毕竟这个是自学,没有人来监督你。需要的基础和能力要求如下:
- 一门编程语言(由于实现会使用
PE
结构体,这些在C/C++
头文件之中,并且有大量的指针内存操作,故会在实现篇用C++
) - Intel 汇编基础
- 具有看
汇编
如C语言
,看C语言
如汇编
的能力 - 对于
位(bit)
具有明确的认识 - 一定的毅力和时间
- Intel 硬编码的基础(最好会,否则在某些篇章理解可能稍微有点困难)
如果想具有看汇编
如C语言
,看C语言
如汇编
的能力,可以参考我的 羽夏看C语言系列教程 ,也可以看别的教程,否则后面的学习可能十分痛苦。因为在实现篇里面用到了大量汇编的知识。
付费部分
本教程含有付费内容,只要打赏 15 元即可解锁所有,当然如果你有钻研的精神的话,也可不用付费自行研究。该付费一是对分析代码比较困难的同志提供的参考,二是让某些网站不能够随意转载我的完整教程内容。按照我的老风格,我只对比较难的部分实现进行设置为付费,基础部分仍是免费的,与本教程配套的代码也是免费的。
目录
从入门到入土
- 羽夏壳世界——序(本篇将会介绍)
基础篇
- 羽夏壳世界——基础篇
实现篇
- 羽夏壳世界——实现篇
完结撒花
可参考资料
- 《加密与解密》第十四章 ,段钢著
- 本人博客园博文: 羽夏笔记——PE结构(不包含.Net)
- 博客园博文: PE文件结构解析 , 作者:诸子流
- CSDN 博文: PE文件结构 ,作者:洋葱汪
有关该项目源码
本教程相关项目使用AGPL-3.0
协议将代码开源在GitHub
和Gitee
上。也就是说,任何人不得使用里面的任何代码进行商用。如果有人在我的代码基础上继续实现一些功能,也必须使用该协议开源。该代码有近2500
行,代码注释占了一小部分,主要是汇编生成的逻辑占了一大部分,其次是PE
文件的解析,学习的时候请耐心阅读,最好重写一份该项目,夯实自己的学习成果。本项目花了本人相当的精力,如果有闲钱的话,欢迎支持。
如下是开源项目地址:
托管平台 | 链接 |
---|---|
https://gitee.com/wingsummer/WingProtect | |
https://github.com/Wing-summer/WingProtecter |
下一篇
羽夏壳世界——基础篇
本文来自博客园,作者:寂静的羽夏 ,一个热爱计算机技术的菜鸟
转载请注明原文链接:https://www.cnblogs.com/wingsummer/p/16110106.html