C++开发方向之windows驱动开发

1.为什么要写这篇文章?

最近浏览招聘网站看到关于windows驱动开发的岗位,前几天一个C++客户端工作岗位,猎头也问我是否有了解windows内核。

所以,调研了一下C++的开发方向:windows驱动开发。

先来看看招聘网上,关于windows驱动开发的岗位要求:

1.深圳的C++客户端高级岗

C++开发方向之windows驱动开发_第1张图片

C++开发方向之windows驱动开发_第2张图片

2.四川成都的windows驱动开发岗

C++开发方向之windows驱动开发_第3张图片

2.如何学习windows驱动开发

windows驱动开发学习路径主要分三个阶段:

第一阶段:C/C++语言

第二阶段:windows程序实现机制

第三个阶段:windows内核

C++开发方向之windows驱动开发_第4张图片

windows驱动编程学习路径
    内核驱动编程定义
        按照系统的API和框架去做代码
        驱动程序提供更接近于底层的功能
        在某些情况下对程序的框架更加有利于效率
    基本学习路线
        C/C++语言
            算法
                框架机制&windows程序设计
                    系统内核实现
    前提:不断去写代码,调试代码
        看了书叫你做,做不出来就是没学懂
    第一阶段:C/C++语言
        《C++ Primer》
            《深入探索C++对象模型》
        c语言
        计算机基础课程
    第二阶段:熟悉windows程序实现机制
        《windows程序设计》
            《windows核心编程》
                《Windows2000Secrets》
        《深入浅出MFC》/《VC技术内幕》
        《WINDOWS驱动开发详解》
    第三阶段:内核相关
        谭文《windows内核安全编程》
        谭文《从汇编语言到windows内核编程》
        《rootkit》
        《WINDWOS内核的安全防护主题》 

C++开发方向之windows驱动开发_第5张图片

windows内核学习内容进阶
    1.内核驱动入门
        1.1驱动级hello world
        1.2驱动框架理解
    2.内核开发基础
        2.1驱动级文件与注册表操作
        2.2中断运行级别
        2.3同步与多线程
        2.4内核数据结构
        2.5应用程序与驱动通信与弹窗
    3.内核高级技术
        3.1DKOM
        3.2HOOK/DKOH
        3.3回调(进程、线程、模块、注册表等)
        3.4文件系统(sfilter/minifilter)
        3.5网络驱动(tdi/ndis/wfp)
        3.6PE文件结构/汇编与逆向(ida/ollydbg)
    4.内核编程综合应用
        4.1主防(HIPS)
        4.2沙盘(sandbox)
        4.3防火墙(TDI/NDIS/WFP)
        4.4ARK/基于MBR和BIOS的bookkit技术分析与查杀
        4.5程序逆/向病毒分析 


 

3.学习windows驱动开发有前途吗?

薪资还是不错的,门槛比较高,方向有点窄,相比互联网方向要低点,也可以进入互联网行业

C++开发方向之windows驱动开发_第6张图片

windows驱动开发前途
    驱动开发涉及行业
        过滤驱动
            内网安全
                透明加解密,虚拟磁盘,外设控制
            网吧安全
                主要实现无盘还原、其他业务
            互联网安全
                用过滤驱动实现主防、沙盒等
            云共享、虚拟网卡、多用户操作
            游戏反外挂
        设备驱动
            主要集中在芯片厂商、器件厂商
    职业发展
        圈子比较小,职业发展比较窄
        学习曲线比较陡,调试驱动需要极大耐心和毅力,对底层知识要求大
    薪资
        初期薪资略高
        后期学习成本越来越高,薪资上升空间小
        很多人停留在中级
        薪资比不上互联网公司同级别职位 

c++开发有哪些开发方向,每个方向该如何学习,学习什么内容学习难度如何,选择哪个方向?想了解更多C++开发文章,欢迎关注公众号:“疯狂的极致主义”。

参考文献:

https://www.zhihu.com/question/23827302

你可能感兴趣的:(程序员的工具和书,驱动开发,windows,c++)