我的逆向学习之路

目录

逆向学习

第一阶段——基础语法

第二阶段——开发阶段

第三阶段——逆向阶段

第四阶段——Andriod逆向

游戏开发


最近正在学习逆向编程,但感觉学的很杂,没有章法,学习的游戏外挂编写既不懂得原理,遇到新的游戏有时候也会无从下手。

为了能够全面的提升自己,我决定给我自己划定一条既定的路线,循序渐进,游戏开发和正向学习齐头并进,如果还有精力就学习一下操作系统,这一块非常有用,例如线程和进程的实现,网络套接字在底层的实现,并在CSDN上分享自己的学习过程与心得。

如果有更好的教程欢迎推荐!

逆向学习

逆向的能力与正向息息相关。

这里我参考科锐的学习路线,再寻找相关的资料辅助学习。

 

第一阶段——基础语法

 "勿在浮沙筑高台"。在初级阶段我们有的放矢地给学员教授必须掌握的基本知识。在以后的阶段中,学员会发现后面的知识其实就是第一阶段知识的变化和利用,所以非常重要,不可不学。

课程一计算机基础
课程二C语言程序设计
课程三阶段项目
学校信息管理系统.每个学生必须独立完成对学生信息的增删改查,以及对学生成绩的维护.
课程四C++语言程序设计
课程五数据结构
课程六阶段项目
C++完成数据库引擎仿真.
面向对象的思想设计,内外存中合理的数据表示,大规模数据的高效操作。在项目中不允许使用STL, 和其他任何三方代码。
课程七考试和讲解

这一个阶段,之前打CSP和NOIP已经麻了,应该没有什么问题。

第二阶段——开发阶段

  该阶段重点介绍了VC开发环境、Win32程序设计和MFC/QT的体系结构. 首先我们来了解一下数据库的基础知识,在学习过程中我们以SQL Server为载体去了解数据的管理和数据关系的建模。注意了,数据关系是重点,在以后对Windows的学习中,你会发现,在Windows内部的各种数据表隐含了对各种数据关系的处理,理解了数据关系建模的思想后,在下面的学习过程中你就会时常找到“顿悟”的感觉。通过MFC/QT入手Windows程序框架设计,掌握MFC/QT的基本使用,熟悉Windows的消息驱动机制;然后就有必要去了解一下微软的COM技术,我们从C++一步步发展到COM,先教大家不依赖ATL去手工实现一个COM,而且能成功在其他开发平台(如VB)上工作,了解原理后就可以很得心应手地使用ATL为我们搭建的COM程序框架;最后带领大家了解微软最新推出的VS。

课程一SDK编程
课程二MFC/QT程序设计
课程三windows编程/网络编程
课程四SQL Server数据库
课程五COM原理
课程六阶段项目使用MFC/QT和socket知识,设计实现三层架构的管理系统.
(1). 要求:三层结构,UDP模拟TCP(后发先至,出错重发,校验和),行级粒度多端缓存设计,线程池设计,连接池设计.
(2). 设计一个简单CAD,完成图形绘制,图元选取,图元设置,移动旋转,文件保存读取,图元自定义, 撤消重做.
以上项目鼓励使用STL, 可以使用第三方UI类库.
学校信息管理系统不允许使用第三方中间件。
CAD系统不允许使用第三方产品的二次开发接口。

SDK编程/MFC编程

VC驿站《C/C++ Windows 程序设计》_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Bb411e7av?spm_id_from=333.999.0.0【SDK开发】《Windows程序设计》_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1us411A7UE?spm_id_from=333.999.0.0其实这里我认为孙鑫老师的VC++应该是最好的教程,只是个人感觉较为枯燥。

【MFC】孙鑫C++讲解MFC 高清画质_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Ht41157vk?from=search&seid=11627455959087400852&spm_id_from=333.337.0.0

QT程序设计

2021版QT图形框架编程开发(层层到肉)_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Wf4y1Y7uh?from=search&seid=14998210582123787087&spm_id_from=333.337.0.0黑马程序员Qt(第一部分)_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1XW411x7NU?from=search&seid=14998210582123787087&spm_id_from=333.337.0.0

Qt 快速入门系列教程 · Qt 快速入门系列教程 (jb51.net)http://shouce.jb51.net/qt-beginning/

Windows编程/网络编程

并发网络通信-套接字通信(C/C++ 多线程)_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1F64y1U7A2?from=search&seid=16036748219326179985&spm_id_from=333.337.0.0

SQL:这个我没有学,但是可以看看别的大佬的文章

(60条消息) 肝通宵写了三万字把SQL数据库的所有命令,函数,运算符讲得明明白白讲解,内容实在丰富,建议收藏+三连好评!_川川菜鸟的博客-CSDN博客icon-default.png?t=M3K6https://blog.csdn.net/weixin_46211269/article/details/119814777?utm_source=app&app_version=4.13.0&code=app_1562916241&uLinkId=usr1mkqgl919blenCOM原理

这个东西全网找不到什么资料,孙鑫老师的VC++里有讲这部分的内容。

COM的最核心的思想,说白了就是要做个跨语言的 “class” “object” “function” 。

COM本质论 中文 高清 pdf-精品电子书籍-【资源共享】-VC驿站 (cctry.com)icon-default.png?t=M3K6https://www.cctry.com/forum.php?mod=viewthread&tid=207&highlight=com

第三阶段——逆向阶段

软件开发的能力一看设计能力,二看调试水平。一般来说大师级的程序员,对软件逆向分析技术都有很深入的理解,在他们编写高级语言代码的时候,在心里同时浮现出对应的汇编代码,在他们写程序的时候很了解自己的产品真正的模样,达到了人机合一之境界,所以在调试Bug的时候显得游刃有余。逆向技术也重在代码的调试和分析,如果你本来就是个不错的程序员,而且又掌握了前面两个阶段的知识,那么这个阶段就是对“内功心法”的锻炼了, 对本阶段的学习绝对可以让你彻底了解C/C++特性的底层机制,深入学习MFC/QT的体系结构,做到知其然而知其所以然。本章以C/C++语法为导向,以VC++6.0为例,解析每个C/C++知识点的汇编表现形式,整理其反汇编代码,体现其流程脉络。照此精修,可望到达看反汇编代码如同看武侠小说之境界。本阶段重在方法,授人以渔,不重剑招,但重剑意。

课程一16位汇编程序设计/win32汇编程序设计
课程二PE文件格式/调试器
课程三完成控制台下的调试器工具
实现文件加载,分析PE信息,将包含代码的节内容反汇编显示出来。
运用进程调试知识,显示目标程序所运行的指令序列,并解析显示指令信息中对应API名称。
实现INT3断点、多内存断点、硬件断点等功能。
运行程序,并将执行代码断在程序入口处。
单步进入、单步步过、跳出当前所在函数
课程四win32逆向
课程五考试和讲解
课程六X64汇编与逆向
课程七深入MFC/QT框架结构
课程八内核及驱动
课程九shellcode/加壳与脱壳
课程十毕业设计

 第三阶段我认为是一个相对自由的阶段,这个阶段应该是要靠大量的实例积累而来。

16位汇编程序设计/win32汇编程序设计

【Win32汇编】《Win32汇编语言程序设计》_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1os411c7Sh?spm_id_from=333.999.0.0

PE文件格式/调试器

【系统篇】《解密系列》_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1us411P7nL?from=search&seid=9399883226960751819&spm_id_from=333.337.0.0【调试篇】《解密系列》(OD使用教程)_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1gs411P7A1?spm_id_from=333.999.0.0

(13条消息) 系统安全与恶意代码分析_杨秀璋的专栏-CSDN博客https://blog.csdn.net/eastmount/category_9193519.html

第四阶段——Andriod逆向

  紧跟时代潮流,聚焦移动安全,根据来自一线安全工作人员的反馈,设计并推出Android逆向课程。本课程重点培养Android逆向人才,从上层的软件开发到底层的软件运行原理,讲师会在课堂上敲写每一行示例代码,并详细讲解每个实例的原理和实现,完成课程的学员,会对Android软件整体架构了然于胸,分析Android程序,便如庖丁解牛般游刃有余,可以胜任病毒分析,间谍软件机原理分析,Android行为拦截等相关工作岗位。

(特别说明:由于很多学员学完前面三个阶段的课程后能够独立找到工作,所以第四阶段课程免费提供试听3天,3天后决定参与学习的,一旦交费后任何原因都不退学费,请大家慎重考虑清楚后再交费。)

课程一Android java开发
课程二NDK C/C++编程
课程三Android开发设计项目
课程四Smali语法
课程五ARM编程
课程六ARM C/C++逆向
课程七DEX文件格式
课程八ELF文件格式
课程九Android内核

游戏开发

我选择的引擎是Unity,个人认为还是要多实践。

选修计算机图形学。GAMES101: 现代计算机图形学入门 (ucsb.edu)

GAMES101-现代计算机图形学入门-闫令琪_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1X7411F744?from=search&seid=8095953789381642306&spm_id_from=333.337.0.0Unity 10分钟快速入门 #U3D #Unity3D_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1PL4y1e7hy

OpenGL——理解底层的函数

最好的OpenGL教程之一_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1MJ411u7Bc?from=search&seid=12651086664220466310&spm_id_from=333.337.0.0LearnOpenGL-CNhttps://learnopengl-cn.readthedocs.io/zh/latest/

------------------持续更新中------------------ 

  • 15
    点赞
  • 166
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
嗨!对于逆向学习汇编语言的学习笔记,我可以给你一些基本的指导。首先,汇编语言是一种低级语言,它与计算机的底层硬件密切相关。逆向工程则是通过分析和理解已编译的程序来获取程序的内部信息。 以下是一些学习汇编语言和逆向工程的建议: 1. 学习基础知识:了解计算机体系结构、寄存器、内存和指令集等基础概念是必要的。可以先阅读相关的书籍或在线教程,掌握这些基本概念。 2. 掌握汇编语言的语法和指令集:每种计算机体系结构都有自己的汇编语言语法和指令集。选择一种你感兴趣的体系结构(如x86、ARM等),并学习它的汇编语言。 3. 练习编写和调试汇编代码:通过编写简单的汇编代码来熟悉语法和指令集。使用调试器来单步执行代码并观察寄存器和内存的变化。 4. 分析已编译程序:选择一个目标程序进行逆向分析。使用反汇编器将程序转换为汇编代码,并分析代码的逻辑和功能。这有助于理解程序的结构和运行过程。 5. 使用调试器进行动态分析:通过调试器来动态地执行程序,并观察程序在运行时的行为。使用断点、内存查看器和寄存器查看器等工具来分析程序的状态和数据。 6. 学习逆向工程工具和技术:了解常用的逆向工程工具和技术,如IDA Pro、OllyDbg、Ghidra等。掌握这些工具的使用可以提高你的逆向分析能力。 7. 参考优秀资源:阅读与逆向工程和汇编语言相关的书籍、论文和博客,关注相关的社区和论坛。与其他逆向工程师交流经验也是很有帮助的。 记住,逆向工程是一个需要耐心和实践的过程。持续学习和实践将帮助你提高逆向分析的技能。祝你在学习汇编语言和逆向工程的过程中取得好成果!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值