在windows平台下的底层开发应该有什么样的学习路线

 我来答
就烦条0o
2017-10-07 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46488
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部
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文件出有用的信息
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式