借鉴一下某培训机构的课程安排,作为自己学习方向的一个参考吧。
第二阶段(预计1个半月)
汇编:
1.机器指令
2.汇编指令
3.编码(OPCode)
C语言:
1.预处理
2.库函数:
A.阅读库函数源代码
B.自己写库函数
3.库函数调用引起栈的变化规律
2阶段项目:
反汇编引擎(学习使用数据驱动方式编程)
阅读DT调试器的反汇编引擎
有编程经验的可完成代码乱序变形引擎(有兴趣可单独辅导)
第三阶段(预计2个月)
汇编语言:
1.分段机制(32位)
2.分页机制(32位)
C语言(R3下API):
1.文件操作
2.内存管理
3.进程和线程
4.PE结构
5.对文件的操作
C语言-->C++:
1.MFC
2.C++的语法
3阶段项目:
自定义格式配置文件语法解析(写脚本解释器的基础)
万能注入工具
利用前面所学的知识写壳(纯C写壳不用汇编)
阅读UPX源代码(对壳感兴趣的可以单独辅导深入理解)
第四阶段(预计2个月)
汇编语言:
1.保护模式;
2.分段机制(64位)
3.分页机制(64位)
4.利用前面学的分页知识不调用API进行物理内存访问
操作系统:
1.R3<-->R0的切换(驱动编程环境搭配)
2.R3<-->R0切换的时候栈的变化
3.R0里的进程,线程有关的结构体()
4.线程的切换细节(对照WRK源代码详细解说)
5.驱动编程
6.反汇编WINAPI,对照ntoskrnl.exe参考WRK)详细解说
4阶段项目:
不调用API写个万能dump进程工具
第五阶段(预计1个半月)
汇编语言
1.IEEE754 浮点编码
2.浮点x87指令详细解说
3.多媒体指令
4.复习R3<-->R0的切换,为VT做准备
C语言
1.c语言实现的数据结构
2.TCP/IP协议
第六阶段(预计1个半月)
1.逆向一个工程(softice或VMware根据自己的能力选择一个)
2.VT技术