JAVA逆向与安卓逆向在原理上没区别。在逆向板块大多需要接助工具,通过反编译来查看到java代码,逆向是回溯当时程序员开发的代码,来分析程序员编写代码时候的一些方法并且实现篡改。Android逆向是对已经打包好的APP进行反编译、源码分析了解APP实现逻辑的一门技术。
但在逆向板块,大多需要接助工具,通过反编译来查看到java代码,不过一般程序员在写好一个APP代码后都需要通过开发工具去编译成程序,这是正向编译的一个过程,让代码变成我们用户所使用的界面,逆向则是回溯当时程序员开发的代码,来分析程序员编写代码时候的一些方法并且实现篡改。
Android逆向是对已经打包好的APP进行反编译、源码分析了解APP实现逻辑的一门技术。
通俗理解呢: 就是玩具(app)经过零件组装(源码编译)、加工刷漆(打包、签名)生成成品的逆过程。我们把成品的app,再将它打回零件形态——源码,通过更改它的零件(代码),再进行重组装(重编译),使它可以飞天、遁地等等(改变运行逻辑)
当然,这里的更改零件,指的可不是app的源码,而是经反编译后的smali代码。
而在实际应用中,我们逆向的话,需要用到解密、反编译、解压缩等技术,想要100%还原APK的源码几乎是不可能的,所以在实际进行逆向分析的时候,一般都是根据想实现的目的,分析出APK的部分源码和实现逻辑,然后对这一部分源码进行修改后与原始的APK打包在一起,这样就获得了一个实现自己特定目的的APP。
延伸阅读:
什么是Java
Java具有大部分编程语言所共有的一些特征,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的”形式和感觉”,但它要比C++语言更易于使用,而且在编程时彻底采用了一种”以对象为导向”的方式。使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的服务器端和客户端运行。另外,Java还可以被用来编写容量很小的应用程序模块或者applet,做为网页的一部分使用。applet可使网页使用者和网页之间进行交互式操作。
Java是Sun微系统公司在1995年推出的,推出之后马上给互联网的交互式应用带来了新面貌。最常用的两种互联网浏览器软件中都包括一个Java虚拟机。几乎所有的操作系统中都增添了Java编译程序。
使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的服务器端和客户端运行。另外,Java还可以被用来编写容量很小的应用程序模块或者applet,做为网页的一部分使用。applet可使网页使用者和网页之间进行交互式操作。
文章标题:JAVA逆向与安卓逆向的联系与区别,发布者:小编,转载请注明出处:https://worktile.com/kb/p/37854