sudami和achillis对初学者的建议

简介:

sudami对初学者的一点建议

1. 若对Windows底层开发没有兴趣,不建议继续深究, 若有些兴趣可以继续。

2. 先广泛打基础,比如C/ASM/C++/MFC,再学习Windows核心编程,对R3上的一些开发有所熟悉,再系统的学习《操作系统》等书籍,理解整个系统的原理,构架,实现。

3. 有了以上基础,可以开始阅读一些驱动入门书籍,如《Windows内核情景分析》, 多上Google搜索资料,下一份WRK/ReactOS,没事翻一翻,搭好驱动编译环境后,可以尝试写些小驱动,在蓝屏中摸索总结,从而积累初级的经验。

4. 等成了驱动开发初级工后,可开始学习WindbgIDA的使用,多看源码多F1看帮助文档。

5. 等熟练以上工具后,开始Windbg动态调试,IDA静态逆向其他驱动(包括微软自己的)。 在这一过程中,你又会接触到脚本语言,汇编知识点,Intel手册,加密解密,Vmware等一堆的东西,同样你需要熟悉它们。

6. 等你熟悉以上东西后,可以给自己提些需求,并实现该需求,比如写个小型ARK,在这个过程中,你可以切实感受到开发一个程序是一个系统的东西,你又需要回到R3写界面,重温MFCWTL等设计与使用。当然又要写驱动程序,保证兼容性等问题,这个过程是漫长的,期间你会发现写一小部分功能,你可以扩展收获很多知识点。

7. 等你熟悉以上东西后,已经可以自己独立解决问题了,基本不需要到网上求助。

遇到问题,会利用WRK/Windbg/IDA/Google等方式自行搞定,如网上有现成的解决方法,借用之,取其精华,唾其糟粕。 若网上没有现成的,则需要你IDA系统文件,Load pdbWindbg动态调试内核等手段自行挖掘,若网上只有类似的程序,你可以逆向其关键部分参考之,而后变成自己的东西。

8 .等你经历了以上7个阶段,你可以开始系统的了解Windows的构架,站在产品的角度思考问题,分析问题,解决问题,对自己多提需求,进而再去实现之,这阶段是积累经验的阶段。

9. 基本能够胜任大多数公司的项目需求了。

 


achillis的一点建议

一、充分熟悉Ring3的常用API,熟练系统编程包括各种HOOK技巧等),各种进线程操作、文件操作、内存操作、同步操作等,都可以熟练完成,《Windows系统编程》、《Windows核心编程》是这个时期的最好参考书籍。

二、跟踪Ring3 API的调用过程,熟悉Ring3 APINative API的过程,最佳参考资料是ReactOS源码,或直接用IDA反汇编系统DLL(大部分常用API在Kenel32.dll里),或者直接用调试器跟踪API调用。

三、熟悉Native API,使用Native API编写一定量的程序,熟悉系统调用机制和系统基本架构(所谓的架构简单理解就是调用层次,这个完全可以通过调试跟踪来熟悉),熟悉内核中API的基本调用方法,这是转向驱动编程的一个非常好的过渡,参考资料Windows2000/NT Native API大全。

四、可以开始编写最简单的驱动程序了。楚狂人的驱动入门教程非常适合这时候看。张帆的《Windows驱动程序开发技术详解》,《Rootkits–Windows内核安全防护》也是这个时期的最佳参考书籍。

五、对驱动编程有了一定的熟悉,可以继续分块(进线程比较容易上手,然后再继续文件、内存、注册表等的学习)进一步熟悉系统机制,熟练程序要达到第一阶段熟悉Ring3 API的那个程度,这个阶段可能需要相当长的时间。可参考《Windows Internals》、《Windows内核情景分析》等等。

六、对大部分系统机制比较熟悉,可以开始编写一些功能性的驱动程序。可参考《寒江独钓》。

七、这个时候,你对驱动程序的编写已经随心所欲,所完成的功能仅仅受限于你的想法。

相关文章
|
机器学习/深度学习 人工智能 算法
AI在医疗影像诊断中的应用与未来展望####
本文深入探讨了人工智能(AI)在医疗影像诊断领域的最新进展、当前应用实例及面临的挑战,并展望了其未来的发展趋势。随着深度学习技术的不断成熟,AI正逐步成为辅助医生进行疾病早期筛查、诊断和治疗规划的重要工具。本文旨在为读者提供一个全面的视角,了解AI如何在提高医疗效率、降低成本和改善患者预后方面发挥关键作用。 ####
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第21天】本文探讨了MongoDB Atlas的核心特性、实践应用及对云原生数据库未来的思考。MongoDB Atlas作为MongoDB的云原生版本,提供全球分布式、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了云原生数据库的未来趋势,如架构灵活性、智能化运维和混合云支持,并分享了实施MongoDB Atlas的最佳实践。
|
安全 网络安全 Windows
CVE-2017-0143永恒之蓝复现
CVE-2017-0143永恒之蓝复现
471 0
|
SQL 缓存 关系型数据库
MySQL(三)SQL优化、Buffer pool、Change buffer
MySQL(三)SQL优化、Buffer pool、Change buffer
462 0
|
Prometheus Kubernetes Go
哪些项目使用Go语言开发?
哪些项目使用Go语言开发?
261 0
|
Web App开发 安全 中间件
谷歌Chrome107版停止支持PPAPI插件,iWebOffice2015不能用了,OA、ERP厂商何去何从?
2022年10月25日,谷歌发布Chrome107版浏览器,终止支持所有平台上的NaCL、PNaCL以及PPAPI接口,而一些依赖PPAPI插件接口的一些在线Office产品(如:江西某公司的iWebOffice2015智能文档中间件)也彻底不能在最新Chrome上应用,只能选择在360浏览器或者低版本Chrome上使用,然而低版本浏览器不仅漏洞多,禁止浏览器升级也不是普通计算机小白能做到的。
3181 0
谷歌Chrome107版停止支持PPAPI插件,iWebOffice2015不能用了,OA、ERP厂商何去何从?
|
Python Windows
Python 批量转换视频音频采样率(附代码) | Python工具
Python 批量转换视频音频采样率(附代码) | Python工具
Python 批量转换视频音频采样率(附代码) | Python工具
|
机器学习/深度学习 人工智能 算法
阿里云天池大赛赛题解析——机器学习篇-赛题一(6)
阿里云是国内知名的云计算、大数据、人工智能技术型公司,是阿里巴巴集团最重要的技术部门。阿里云天池是阿里云面向开发者和教育行业的资源输出部门,天池大赛是国内最大规模的人工智能算法赛事,致力于汇聚全球AI精英为企业解决真实问题。自2014年至今已举办数十次行业顶级算法赛事,全球参赛开发者超过30万人。然而对于更广大的普通开发者和大学生群体来说,高规格的算法大赛仍然具有很高的门槛。本书就是针对受众最广泛的新手人群而编写的,精选阿里巴巴最典型的人工智能算法应用案例,邀请天池大赛最顶级的获奖选手联合编撰,公开那些鲜为人知的技术秘籍,力图使每一个涉足数据智能算法技术的开发者从中获益......
阿里云天池大赛赛题解析——机器学习篇-赛题一(6)
|
SQL 关系型数据库 MySQL
Github Star 过万!用这款免费工具代替收费的Navicat,我看行
Github Star 过万!用这款免费工具代替收费的Navicat,我看行
Github Star 过万!用这款免费工具代替收费的Navicat,我看行
|
Java Linux Android开发
这次,我想把内存泄漏讲明白
这次,我想把内存泄漏讲明白
574 0
这次,我想把内存泄漏讲明白

热门文章

最新文章