对于软件开发人员来说,保护代码安全也是比较重要的因素之一,不过目前来说Google Android
平台选择了Java Dalvik VM的方式使其程序很容易破解和被修改,首先APK文件其实就是一个MIME为ZIP的压缩包,我们修改ZIP后缀名方式可以看到内部的文件结构,类似Sun JavaMe的Jar压缩格式一样。
不过比较区别的是Android
上的二进制代码被编译成为Dex的字节码,所有的Java文件最终会编译进该文件中去,作为托管代码既然虚拟机可以识别,那么我们就可以很轻松的反编译
。所有的类调用、涉及到的方法都在里面体现到,至于逻辑的执行可以通过实时调试的方法来查看,当然这需要借助一些我们自己编写的跟踪程序。Google最然在Android
Market上设置了权限保护app-private文件夹的安全,但是最终我们使用修改定值的系统仍然可以获取到需要的文件。
总结反编译
主要的目的在于学习。利用反编译
进行相关的汉化或修改,还是尽量不要吧,毕竟人家写个程序不容易啊!
具体方法如下:
一:所需工具(点击各自连接进入下载页面):
AXMLPrinter2.jar
dex2jar:
查看Jar包的GUI工具
二,开始行动
1.用AXMLPrinter2.jar查看apk中的布局xml文件:
将apk文件(为了方便起见放到tools目录里)用WinRAR等工具打开,将res/layout/main.xml解压出来(也还是放在tools目录里哦)
打开main.xml文件,内容如下(一堆天文):
这时候AXMLPrinter2.jar派上用场了,打开cmd终端,一直进入到tools目录下,输入如下命令:
java -jar AXMLPrinter2.jar main.xml > main.txt. (如下图所示)
打开main.txt代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android
="http://schemas.android
.com/apk/res/android
"
android
:orientation="1"
android
:layout_width="-1"
android
:layout_height="-1"
>
<WebView
android
:id="@7F050000"
android
:layout_width="-1"
android
:layout_height="-2"
>
</WebView>
</LinearLayout>
为了比对打开源程序中的main.xml代码如下(大家比对一下吧):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android
="http://schemas.android
.com/apk/res/android
"
android
:orientation="vertical"
android
:layout_width="fill_parent"
android
:layout_height="fill_parent"
>
<WebView
android
:id="@+id/apk_web"
android
:layout_height="wrap_content"
android
:layout_width="fill_parent"
/>
</LinearLayout>
2:通过dex2jar工具进行反编译
。
把apk中的class.dex拷贝到dex2jar.bat所在目录。运行dex2jar.bat class.dex,将会在其文件夹下生成classes.dex.dex2jar.jar。
3、可以将jar文件重新命名后拷贝到GUI文件夹下,运行JD-GUI工具(它是绿色无须安装的),打开上面的jar文件,即可看到源代码。
分享到:
相关推荐
安卓android apk 反编译步骤 。亲自实现总结,决不是粘贴复制
自己总结的android反编译流程,里面详细介绍如何反编译,平且给出了相关的例子,很详细!!!
总结反编译主要的目的在于学习。利用反编译进行相关的汉化或修改,都是不道德的! 大家都知道,将apk文件解压后有两部分文件需要处理,一种是xml文件,另一种一个dex文件(.dex),我们可以从.dex文件中得到.class...
今天就来总结一下Android反编译和二次打包的一些知识。首先声明本文的目的是为了通过例子讲解反编译和二次打包的原理和方法,继而作为后续讲解防止二次打包和App安全的依据,并不是鼓励大家去重新打包别人的App,...
对于软件开发人员来说,保护代码安全也是比较重要的因素之一,不过目前来说Google Android平台选择了... 总结反编译主要的目的在于学习。利用反编译进行相关的汉化或修改,还是尽量不要吧,毕竟人家写个程序不容易啊!
主要总结了Android源码的下载和编译,其中,编译和制作镜像通过shell脚本实现。
第二种方式是android直接连接数据库,这种方式非常耗手机内存,而且容易被反编译造成安全隐患,所以在实际项目中不推荐使用。 1.加载外部jar包 在Android工程中要使用jdbc的话,要导入jdbc的外部jar包,因为在Java的...
收集的一些关于Android的学习...Android之Adapter用法总结,Android中图片的处理,BaseExpandableListAdapter的使用,反编译android app,详解 Android 的 Activity 组件,需要的朋友可以下载查看(直接双击html文件查看即可)
网上收集和自己总结的一些android使用资料,比较基础的知识,对全面了解一些知识很不错的 android ListView美化.docx androidshape.docx android_textview....反编译Apk得到Java源代码总结.docx
代码混淆、Android、反编译、文档、详解;有自我总结的详细文档。现来分享。
Android如何防止apk程序被反编译 Android 之 AIDL 和远程 Service 调用 Android 相对布局技巧 android开发环境之Logcat(日志)教程实例汇总 android网络通信之socket教程实例汇总 AsyncTask进度条加载网站数据到...
apk包反编译工具,是跟据前人的经验总结出来的,希望能帮到大家
总结反编译apk的方法和工具, 有工具的下载地址和图片解说。
目录 1.坐标传递到google Map 2 2.获得联系人 5 3.监听短信内容 6 4.3D魔方 7 5.Android 界面刷新 16 6.Cursor 17 ...1.APK反编译工具.rar 60 2.APK安装工具.rar 60 47.Google Maps 的应用 60
一、android安全保护办法总结 二、破解脱壳知识 三、xposed源码学习 四、androidManifest.xml保护修AndroidManifest.xml导致不能反编译
自己总结的安卓反编译工具,可以看一些大神们的写作逻辑
总结了安卓的编译和反编译的基本流程和逻辑。整理了加密和解密,反编译,加固,脱壳等相关的工具和技术。典型的反编译流程包括,如何从apk反编译得到java源代码,如何从apk转换出dex文件,如何从dex文件转换出jar...
分分钟上手小程序源码反编译 最近在做微信小程序开发,看到一些做的比较有意思的小程序,想看一看他们的源码,于是研究了一下小程序源码反编译相关的技术。结合本次经历,总结如下。 手机root 要拿到小程序在手机上...
反编译各种资源,文档都有,详细了一批,只有你看了以后你就能弄出来,很简单的,都总结的头头是到,你打开下载就能用了。
总结反编译主要的目的在于学习。利用反编译进行相关的汉化或修改,都是不道德的! 将apk 反编译资源/dex/以及方便查看的jar 文件