现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

windows平台下的底层开发之学习路线

2020-08-21 08:37 工业·编程 ⁄ 共 899字 ⁄ 字号 暂无评论

1.语言C/C++(参考书籍:<<C/C++ Primer>> ,<<C和指针>>,<<数据结构C语言描述>>)),汇编(王爽的汇编语言,作为入门,参考Intel手册,之后参考看雪的<<加密与解密>>,了解PE文件的格式,加壳脱壳和病毒感染的手法,如果是开发的话,只需要了解即可,能用反汇编调试工具去做简单的CrackMe即可),这个阶段大约是大一大二的时间,除去老师上课教的C语言基础,80x86汇编语言以为,很多知识都是自己去扩展。

2.windows api(win32sdk) 参考书籍(《Windows程序设计》,《Windows核心编程》,MFC之类的需要使用的时候在参考即可,不必花费太多精力,主要是去了解程序的消息机制,事件等等,应该把主要的精力比如线程注入,Ring3的各种HOOK等。这个阶段是大二下学期的时间,说实话,我这个方面看的太少了,花了好多时间在一些没有意义的事情上,导致到大三的时候参加信息安全比赛做驱动的时候经验严重不足,所以基础太重要了)

3.然后就是winows驱动内核的开发(参考书籍,寒江独钓,张帆的Windows驱动开发技术详解,WDK上的各种示例代码) 熟悉各种过滤驱动框架(文件过滤驱动,文件微过滤驱动,tdi,ndis协议,ndis中间层,ndis小端口等等)。
然后就是各种系统底层的原理,进程创建的流程,文件创建的流程,进程间通信的过程,用各种调试,反汇编工具(od,ida,windbg)去跟踪分析,可以写一些Rootkit/Anti-Rootkit工具,比如对于进程隐藏和保护,有SSDT HOOK OpenProcess,摘除进程链表等等,这样有助于对系统底层机制的理解

4.后期就是经验和内功了,什么《深入解析Windows操作系统》,《TCP/IP》卷123,《Windows内核原理与实现》等等,说白了,个人认为,底层开发对于调试的功力要求很高,能从蓝屏的dump文件出有用的信息

然后是各种论坛:看雪,52破解,驱网,MSDN,卡饭,暗组等。

也可以加入一些开发者的群,里面有一些大牛会友情解释小白的问题,前提是这个问题真的是经过自己研究,思考总结出来的。

给我留言

留言无头像?