二进制学习路线(暂定)

时间:2024-05-19 12:37:19

这个是 我们学校团队要求,,,, 让写一个二进制 (pwn/re)的学习路线,, 然后让大一 大二的学弟学妹们看看,,

我直接写到我博客里面 有什么错误或者问题还请各位指教

逆向学习路线

PC逆向方面

入门PC逆向,C语言必须要学的扎实,指针、链表一定要理解透彻,这是学习逆向的一个最基本要求。

所以要求要搞一个  链表实现的 学生管理系统

这方面学好之后,可以看一些OD(win32下的动态调试工具)以及IDA(著名的多架构跨平台静态反编译工具)的入门教程,可以对逆向进行一些初步了解。

入门了这两款逆向工具之后,这里是一个转折点,如果进行CTF方面的逆向,则推荐学习数据结构、算法方面的知识,CTF方面的逆向主要考察算法逆向,对于逆向实战考察的却不是很多。如果要进行真·逆向,则推荐看滴水逆向三期初级班视频,这个课程涵盖了很多很多知识面,基本上学完这套课程,逆向就算是入门了。

然后 中期就是做一个 软件的壳 压缩壳 保护壳 都可以

ps(如果想真正了解一样东西 就必须 自己做一个

比如想了解调试器  那么就可以 自己写一个简单的dos 调试器  根据网上的资料 还有 《软件调试》等等书

如果想了解壳 那么就自己做一个壳)

  建议大一一年搞定这些东西 

大二的话 就是根据自己的兴趣来搞  ,

如果想搞 CTF就可以 刷各大CTF网站的题目

参考 :为了CTF比赛,如何学习逆向和反汇编

 

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

如果以后想搞接近逆向职位的实战 个人建议就是多学习 word 的那些文件病毒/漏洞的研究 然后C++还有 windows 内核开发一定要跟上,要多学习一些加壳 脱壳 反调试的东西   这是pc的基本功 然后多看看网上的视频  浸泡各大学习论坛

 

 

安卓逆向方面

安卓逆向入门容易,前期看一些*****之类的就可以入门了,主要是学会一些工具的使用,如Android Killer、APK改之理、JEB、GDA等、熟悉adb interface工具、适当学习一些java语法、Android开发,熟悉脱壳加壳、熟悉proguard反混淆、HOOK框架Xposed、Cydia、Frida等,JNI 混合编程也要有涉猎,对native层的逆向也是很重要的一部分,CTF中安卓逆向多是native层逆向,实战中native层逆向也很常见。

 

二进制漏洞:

二进制的话 的话  还是建议打两年的CTF 这样会对各种漏洞都会很有研究

pwn的基本功其实是 汇编+c   个人私心认为 pwn 和re 分不太开 

汇编的话 熟悉汇编架构 然后传参之类的  搞明白

C的话  也是需要 懂指针+链表 要求要搞一个  链表实现的 学生管理系统 这方面搞定就可以和  逆向分开学习了

然后pwn的路线的话

个人建议入手先看 i春秋的

https://bbs.ichunqiu.com/forum.php?mod=viewthread&tid=42239&highlight=Linux%2Bpwn%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B

这个只有栈部分的内容 但是对新手比较友好

然后就是CTF wiki  https://wiki.x10sec.org/

CTF wiki  pwn这部分 讲的真的很不错

堆这方面可以 去看看 源码或者  看一下 翻译的 glibc内存管理ptmalloc源代码分析 这个pdf

然后就是各种刷题了

pwn这方面 前期就是多刷 多看wp 

学pwn 需要一个良好的心态 = =

然后如果 不像 All In CTF 的话

可以 看看windows 下的漏洞  (0day+漏洞战争)

也可以用看看 iot 比如(家用路由器漏洞)

 

 

最后   就是 坚持,,,       然后的话 前期一定不要浮躁   建议前期 闭门造车

 

有了一定基础  刷题  或者学习路上提升的时候   一定要多和学长 还有圈内大师傅们多交流

还有一定要学会提问的艺术  (谷歌 百度 思考了 好久都没有出结果的时候 = = )

 

最后推荐几个 不错的学习网站 还有两个不错的图片

二进制学习路线(暂定)

 

二进制学习路线(暂定) 

看雪论坛 吾爱** 先知社区 freebuf  i春秋