学习反汇编,程序逆向分析等需要掌握哪些知识

学习反汇编,程序逆向分析等需要掌握哪些知识,第1张

需要掌握以下知识

●接口设计。由于互 *** 作性,逆向工程被用来找出系统之间的协作协议。

●军事或商业机密。窃取敌人或竞争对手的最新研究或产品原型。

●改善文档。当原有的文档有不充分处,又当系统被更新而原设计人员不在时,逆向工程被用来获取所需数据,以补充说明或了解系统的最新状态。

●软件升级或更新。出于功能、合规、安全等需求更改,逆向工程被用来了解现有或遗留软件系统,以评估更新或移植系统所需的工作。

●制造没有许可/未授权的副本。

●学术/学习目的。

●去除复制保护和伪装的登录权限。

●文件丢失:采取逆向工程的情况往往是在某一个特殊设备的文件已经丢失了(或者根本就没有),同时又找不到工程的负责人。完整的系统时常需要基于陈旧的系统上进行再设计,这就意味着想要集成原有的功能进行项目的唯一方法,便是采用逆向工程的方法,分析已有的碎片进行再设计。

●产品分析:用于调查产品的运作方式,部件构成,估计预算,识别潜在的侵权行为。

首先,逆向分析是一门技术,也是一门艺术。

其次,安卓逆向同样可细分为应用层APK逆向、安卓设备框架、内核驱动等逆向、基于安卓的硬件产品逆向等。此处假定楼主说的是第一种逆向。

应用层的逆向分析根据需求的不同,又可细分成APK流程逆向与功能逆向。

流程逆向通常是指简单的对APK运行流程进行分析,此类分析通常可以使用将APK置于沙盒环境中运行捕捉并查看运行结果。这种逆向需求通常不是很多,典型的工种有杀软厂商的病毒分析工程师。

功能逆向相比流程逆向则困难得多。但需求比较普遍。实际逆向分析过程中对功能实现的理解,在很大程度上取决于逆向人员相关的软件开发知识。比如,分析Android程序的JAVA代码就需要掌握基本的Android软件开发的知识。分析so库的代码就需要了解C/C++相关的so库开发的知识。除了基本开发相关的能力外,逆向分析人员还需要具备以下知识:

ARM/X86/MIPS汇编语言-分析so库时可能需要阅读大量的反汇编代码。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11824804.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-19
下一篇2023-05-19

发表评论

登录后才能评论

评论列表(0条)

    保存