安卓逆向有两种,一种叫“哦...”,另一种叫“哦?”


第一种,
1.在网上搜索android编程,四大组件学会之,
2.搜索smali语言,学到用smali能写android程序为止。
3.学习c语言,
4.简单学学汇编
4.在IDA用汇编写出c语言写出的东西,就能出师了。

第二种,
1.学习计算机组成原理
2.学习x86和arm汇编,直到熟练为止。
3.学习c语言,直到写出一段c代码,就能脑补出相应的汇编为止。
4.学习数据结构。
5.再学习一下计算机组成原理,把之前没学明白的地方学明白。 
6.学习编译原理,直到了解各种可执行文件的格式,直到明白各种连接,各种编译器是怎么回事为止。
7.学习linux kernel,一提到某功能,知道大概怎么回事就行了,
8.学习java。
9.学习安卓编程,和smali,了解dex结构
10.抱着朝圣的心情学习一下安卓源码,学到一提到某功就能知道怎么回事就好了。
11.如果上面的知识做好了,那么就能很自然的入门jvm,dvm,llvm,四大组件,vmp,各种加固什么的。
12.阅读各种逆向工具的说明文档,对着例子多操作几遍。
13.学习机器学习,要跟上时代的步伐。
14.随便找一家做逆向的公司去装装逼,随便找几个壳脱脱...
15.直到某一天发出了“哦?”的一声。
16.开始开发自己的加密解密工具...自己修改源码,得到自己想要的操作系统..打开看雪装装逼什么的...
17.这期间有的时候还能发现所谓的0day漏洞,就发家了