Xamarin android如何反编译apk文件
Xamarin android 如何反编译 apk文件
反编译apk文件最简单的一种方法
还是用工具来解决
- apktool:获取资源文件,提取图片文件,布局文件,还有一些XML的资源文件
- dex2jar:将APK反编译成Java源码(将classes.dex转化为jar文件)
- jd-gui:查看2中转换后的jar文件,即查看Java文件为了方便各位读者,这里将三个打包到一起放到云盘中,又需要的可以进行下载:反编译相关的三个工具.zip
解压完压缩包,打开apktool2.2,xamarinGame是我下载好需要反编译的apk文件
单击运行cmd.exe ,输入apktool.bat d xamarinGame.apk,如图运行完之后发现过了个xamarinGame的文件夹
打开文件夹,发现资源文件也到手了,xml也不乱码了,好的。
使用dex2jar将classes.dex转换成jar文件:
把下载好的dex2jar文件夹解压,apk解压后中的classes.dex复制到dex2jar.bat所在的目录下:
打开cmd,来到这个目录下:键入:d2j-dex2jar.bat classes.dex
好的,接着我们可以看到生成了一个jar包
使用jd-gui查看jar包中的Java代码:
打开jd-gui文件夹执行exe文件后,打开我们上一步中转换后的jar包,我们可以看见里面的代码:
大工搞成,现在是不是眼见为实地证明那句真理,xamarin android 开发的是原生app,的确是原生的,转成了java的代码,眼见为实了吧!
作者:张林
标题:Xamarinandroid如何反编译apk文件 原文地址:http://blog.csdn.net/kebi007/article/details/52887570
转载随意注明出处
Xamarin android如何反编译apk文件的更多相关文章
- Android开发学习之反编译APK文件
反编译的目的在于学习一些优秀的Android应用程序代码. 在进行反编译之前,需要准备好下面的软件工具(这些文件都放在同一文件下): 这些工具的下载地址:http://down.51cto.com/d ...
- 反编译APK文件
有时源代码丢失了,这时如果有apk文件的话,是可以对apk文件反编译得到源文件的,本文介绍一下简单的反编译apk文件的过程. 1.工具 反编译apk需要的工具有两个:apk2java和apktool, ...
- Android apktool反编译资源文件为空解决办法(测试天猫、淘宝等apk成功)
1 Exception in thread main brut.androlib.androlibexception multiple resources 解决办法:下载最新的apktool,在goo ...
- Android:反编译apk
一.所需工具 1. apktool (1)作用:获取资源文件,例如图片.布局文件 (2)下载地址:https://bitbucket.org/iBotPeaches/apktool/downloads ...
- 反编译APK文件的三种方法(转)
因为学习Android编程的需要,有时我们需要对网络上发布的应用项目进行学习,可是Android项目一般是通过APK文件进行发布的,我们看不到源代码,嘿嘿,办法总会有的,而且不止一个... ps:对于 ...
- apktool反编译apk文件
1.首先下载apktool文件,可以从我的网盘下载:http://pan.baidu.com/s/1nvPdbVb 2.将你的apk文件和apktool文件放到一个文件夹下,这里就放到D:\study ...
- 使用apktool反编译apk文件
Apktool https://ibotpeaches.github.io/Apktool/install/ 下载地址:Apktool https://bitbucket.org/iBotPeache ...
- Uubuntu 14.04 LTS反编译apk
使用apktool反编译apk 1.安装apktool apktool是Google提供的APK编译工具,能够反编译及回编译apk,需要Java环境的支持(在此不再赘述Java的安装与配置,详见< ...
- [转]Android应用安装包apk文件的反编译与重编译、重签名
背景介绍: 最近在做Robotium自动化测试,使用到solo.takeScreenshot()函数以在测试过程中截图,但此函数需要被测试APP具有<uses-permission androi ...
随机推荐
- python语言 第一个程序
print("hello word!") # for i in range(1, 10):# for j in range(1, 10):# print(j, "x&qu ...
- 关路灯,洛谷dp
题目传送门https://www.luogu.org/problem/show?pid=1220 我们假设 dpij0 为目前最优值是在 i 位置,dpij1 为目前最优值是在 j 位置则 i 到 j ...
- 360提供的php防注入代码
<?php //Code By Safe3 function customError($errno, $errstr, $errfile, $errline) { echo "< ...
- PHP 静态缓存
今天来说说PHP页面的静态缓存. 根据个人理解,由于客户端重复的请求某个页面,导致该页面短时间内被重复请求相同的数据,导致给服务端一定的压力,同时用户访问速度也会变慢.此时如果把这个页面缓存起来,客户 ...
- vue——props的两种常用方法
vue--props的两种常用方法 1.实现父-->子的通信 举例如下: 父组件 parent.vue <children :channel="object1"> ...
- Arrays.asList()生成的List抛UnsupportedOperationException分析
一.背景:使用工具类 Arrays.asList()把数组转换成集合时,使用其修改集合相关的方 法,它的 add/remove/clear 方法会抛出 UnsupportedOperationExce ...
- db2 update 异常
报错: -错误的sql语句:update Persons SET FirstName = 'Fred' WHERE id_P = 1com.ibm.db2.jcc.am.SqlException: O ...
- js----数组处理之splice(有js原始addClass方法哦)
上次写了一个轮播的方法:http://blog.csdn.net/stronglyh/article/details/46833499 由于别人问我的时候,给了我html.于是乎我就看到了页面中引用了 ...
- 设置应用栏(Setting Up the App Bar)
今天星期五,刚从体育场打完球回来,洗了洗脚.明天还要继续上班,也是非常艰难.近期我的小腰有点不舒服,就早点睡觉歇息. 所以今天就简单的翻译一篇Android官方站点上的文章,我会加一些补充. 原文地址 ...
- 苹果新的编程语言 Swift 语言进阶(三)--基本运算和扩展运算
一 基本操作运算 1. 赋值操作 在Swift 中,能够使用赋值操作为一个常量或一个变量赋值,也能够使用多元组一次为多个常量或变量赋值. Swift 的赋值操作与其他语言最大的不同是赋值操作除了可以为 ...