发布网友
共2个回答
热心网友
首先,逆向分析是一门技术,也是一门艺术。
其次,安卓逆向同样可细分为应用层APK逆向、安卓设备框架、内核驱动等逆向、基于安卓的硬件产品逆向等。此处假定楼主说的是第一种逆向。
应用层的逆向分析根据需求的不同,又可细分成APK流程逆向与功能逆向。
流程逆向通常是指简单的对APK运行流程进行分析,此类分析通常可以使用将APK置于沙盒环境中运行捕捉并查看运行结果。这种逆向需求通常不是很多,典型的工种有杀软厂商的病毒分析工程师。
功能逆向相比流程逆向则困难得多。但需求比较普遍。实际逆向分析过程中对功能实现的理解,在很大程度上取决于逆向人员相关的软件开发知识。比如,分析Android程序的JAVA代码就需要掌握基本的Android软件开发的知识。分析so库的代码就需要了解C/C++相关的so库开发的知识。除了基本开发相关的能力外,逆向分析人员还需要具备以下知识:
ARM/X86/MIPS汇编语言-分析so库时可能需要阅读大量的反汇编代码。
常见逆向分析工具的使用-JDGUI/IDA PRO/APKTOOL/JEB/DEX2JAR
常用的安卓程序调试与反调试手段-调试器检测与反检测/脱壳/反混淆
常用的加密与解密算法-好的逆向分析人员需要有快速识别常见加密解密算法的能力
最后,就是多动手,多动手练习是掌握逆向分析技术最好的方法。
热心网友
你应该指的是软件程序的逆向和web安全里的渗透测试方向。这不用问肯定是逆向更好就业。我们本身就是做这方面培训的,叫飞郁网络,对这方面比较了解。针对这两个方向给你分析一下:
1、逆向更偏重于技术,逆向在学习的过程中需要涉及编程语言,安全知识,Windows原理方方面面,工具使用,核心操作分析等众多方面。是一个技术含量,入门门槛都很高的技术岗位。而web安全主要方向是渗透测试,前端漏洞挖掘。它侧重的是工具脚本的使用。对个人的思维和手段能力要求较高,对技术的要求性不高。
2、逆向能涉及到系统的底层、原理层方面的知识。web安全更多的是表层,应用层。你衡量一下哪一个含金量更高。工作的含金量直接体现在未来的发展和薪资待遇上。
3、全国的web安全人员众多,水平也参差不齐,圈层略显浮躁。而逆向人员仅数以千计(这不包括在民间的高手,只统计在职岗位)。在人才的供需上看,你觉得哪一个更有前景,浮躁只是暂时的,真才实用才能稳扎稳打。
4、安全的趋势在向技术方面推进,现在的web安全,也不像前几年了。这几年用人单位对web安全人员的不仅需要你能做基本的工作,还要你能分析它,归纳总结他。而这也要依托于技术问题。web安全的局限性可见一斑。
所以就当下来说选逆向更靠谱一些,当然还有一种更靠谱的状态就是web安全,逆向一起耍。