[建议] 安卓逆向到底应该怎么学?
个人的安卓逆向之路
坑坑洼洼的路也走了一个又一个,坑呢也踩完了又踩,虽然我坚信踩坑肯定不是坏事,因为至少你知道什么可取,什么不可取.
也只有真正踩过很多坑,才能走进大佬的世界.
但是有些不必要的坑,只会浪费时间,所以从自己以及很多大佬的经验中,我也总结了一篇根据自身经历闯荡摸索出来的学习法门.
逆向对抗到底在对抗什么?
本人是从C语言开始入门编程行业的,之前有个大佬说如果你不会开发,你就不能说你会逆向,顶多你就是个工具侠. 现在感同身受,只有真正了解编程的原理,才能让你在逆向的道路越走越远.
而只有了解操作系统的原理才能让你在逆向的道路游刃有余,在PE时代,大佬们称其为降维打击. R3解决不了的就用R0干,比的就是知识点,比的就是知识储备. 在现在的安卓逆向领域,亦是如此. 风控团队与逆向人员比的就是知识储备,谁对安卓系统更加了解,谁能拿到未公开的漏洞加以运用谁就更胜一筹.
1.学习基础
当然针对很多刚入坑的小伙伴们,我想说的一句话就是,得耐得住寂寞,你得付出比平常人多得多的时间精力去疯狂的吸收那些已经公开的基础知识点,你玩安卓逆向,你总得会Java吧,你总得写出一个Hello World的APK吧!
但是有时间,我强烈你学习一下C跟C++,了解一下指针的魅力,了解一下仅仅只有MOV,LEA两条指令构成的指针到底是如何让C语言经久不衰.
2.学会使用工具
工具是为了让人做出更有价值的东西,所以每一个让各个大佬都在使用的工具你也一定要会,不要重复造轮子,要学会站在巨人的肩膀上.
Xposed,Frida,IDA,Ghidra,Jadx,Charles ....
3.枯燥无味的文件结构
对于常人来说,它是真的枯燥,并且付出的时间成本比任何东西都要多,但是为了你飞的更高,能与更高层次的人对抗,你必须要学 ELF文件结构,APK文件结构,Android源码
当然现在书籍很多,已经有大量的前人为你铺路,你所需要做的就是跟着他们的步伐,书籍特别多,后续我会整理几本.
4.借鉴别人的工具思考
现在大部分工具都是开源的,如果你的时间充裕的话,不放也看一看别人的想法,每一个让人所熟知的工具都有其特别之处.如果你能悟到其精髓,何尝不是一件好事.
5.学会放弃一些东西以换取一些东西
如果金钱能买来技术的话,我一定会买,因为一个人的时间往往是最宝贵的.我不是打广告,看雪3w2w班,肉丝的课程. 它们的存在都有它们的道理.
技术这个东西更新迭代太快,如果你跟不上时代,那么你就会错过时代!
6.找些志同道合的小伙伴
有一群小伙伴,无论是心理的压力还是社会上的压力都能大大减少,毕竟人类是群居动物嘛.
一个人研究永远是闭门造车,无法真正的融入大流. 大家一起进步,一起努力,一起解决问题才是真正重要的.