二进制的学习起初是很枯燥和无聊的,还有对很多人来说很难,主要是兴趣吧。下面的只是我关于学习二进制的一些路线总结,也不一定非要照着我下面一步一步的走,可以同时进行。比如你学习完一遍C语言了,你这个时候不可能马上去学第二遍吧,然后你就可以去学习下一步。然后发现不懂,又回来学习,或者下一步的学习能给你答案。我给的只是大致的路线,因人而异。不要固执的非要照着我写的这个顺序来,但是都是要学习的。
第一步:
一定要学C语言。不要说C语言难学怎么着。想学习二进制这方向必须的学好C语言,一遍学不好两遍,两遍学不好三遍。我个人就学习了三遍,每一遍都有新收获。还有一点,C语言不是只听听就完事了,一定动手写,跟着老师写,写完之后自己再写一遍,写完写作业,做笔记写领悟(建议在有道云笔记上面写)。
推荐学习时长:每遍两周。可以每遍缩短时长,根据个人情况。
推荐课程:
小甲鱼 带你学C带你飞:https://www.bilibili.com/video/av27744141?from=search&seid=15059827262621129435
中国大学MOOC 苏小红讲授的C语言:https://www.icourse163.org/course/HIT-69005
周哥教IT C语言深学活用:https://ke.qq.com/course/242707?taid=1573117671748627
第二步:
这个时候就可以开始学习使用IDA和OllyDBG,IDA的使用一般网上都有人写一些基础用法,这个时候就不要想视频了,没有视频,看大佬博客,使被动学习转换为主动学习。ollydbg的使用可以看小甲鱼的视频,相信你们也看到了小甲鱼出的一些相关视频。学完这些,新生这个时候就可以开始做一些CTF中的Reverse方向的题来提升自己的信心。随便对C语言的又一次巩固。改天看我心情吧,我写一个IDA的用法。
小甲鱼 OD的使用:https://www.bilibili.com/video/av28046265?from=search&seid=4879553389483862689
推荐CTF网站(一时间只能想起来这几个了):
bugku:https://ctf.bugku.com/login?next=challenges
攻防世界(有梯度):https://adworld.xctf.org.cn/task
BUUCTF:http://buuoj.cn/
第三步:
汇编学习,但是我们学习汇编的目的不是想学习C语言一样去写一个东西出来。我们是需要能看懂汇编指令,这个时候你们做过Reverse的题之后,你们就会发现,一打开IDA的那些指令是啥了。
推荐视频:
小甲鱼 8086汇编指令:https://www.bilibili.com/video/av28132657
第四步
可以开始学习PWN了。如果这个时候能学到这里的话,基本上进实验室的水平是有了。到时候我教你们怎么学吧。太多了,我写累了,我不想写了。