Xamarin android 如何反编译 apk文件

这里推荐一款XamarinAndroid开发的小游戏,撸棍英雄,游戏很简单,的确的是有点大。等一下我们来翻翻译这个Xamarin Android 开发的小游戏
游戏虽然简单,但是用到的东西还是蛮多的,有时间的话可以反编译下去研究一下别人怎么写的,,说来也巧,这个游戏是群里的以为xamarin 开发者做的,感觉挺意思的,所以
打算写篇文章介绍一下,他的网址 www.xamarin8.com  域名很容易记,目前xamarin 开发的android的确不多见,大家多多关注支持一下。
游戏效果图:

反编译apk文件最简单的一种方法

将apk文件后缀名改为zip,然后解压。如图:



打开res文件夹,只有一些mp3和图片文件



如果是Xml文件乱码的。并且假如我们想看APK程序的Java代码,也是行不通的,因为他们都打被打包到classes.dex文件中!但是反编译可以解决你的需要~另外,切勿拿反编译来做违法的事,比如把人家的APK重新打包后使用自己的签名然后发布到相关市场...另外,我们是参考别人的代码,而不是完全拷贝!!!切记!!

还是用工具来解决

下载好打包好的以下三个工具:反编译相关的三个工具.zip
  1. apktool:获取资源文件,提取图片文件,布局文件,还有一些XML的资源文件
  2. dex2jar:将APK反编译成Java源码(将classes.dex转化为jar文件)
  3. 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文件的更多相关文章

  1. Android开发学习之反编译APK文件

    反编译的目的在于学习一些优秀的Android应用程序代码. 在进行反编译之前,需要准备好下面的软件工具(这些文件都放在同一文件下): 这些工具的下载地址:http://down.51cto.com/d ...

  2. 反编译APK文件

    有时源代码丢失了,这时如果有apk文件的话,是可以对apk文件反编译得到源文件的,本文介绍一下简单的反编译apk文件的过程. 1.工具 反编译apk需要的工具有两个:apk2java和apktool, ...

  3. Android apktool反编译资源文件为空解决办法(测试天猫、淘宝等apk成功)

    1 Exception in thread main brut.androlib.androlibexception multiple resources 解决办法:下载最新的apktool,在goo ...

  4. Android:反编译apk

    一.所需工具 1. apktool (1)作用:获取资源文件,例如图片.布局文件 (2)下载地址:https://bitbucket.org/iBotPeaches/apktool/downloads ...

  5. 反编译APK文件的三种方法(转)

    因为学习Android编程的需要,有时我们需要对网络上发布的应用项目进行学习,可是Android项目一般是通过APK文件进行发布的,我们看不到源代码,嘿嘿,办法总会有的,而且不止一个... ps:对于 ...

  6. apktool反编译apk文件

    1.首先下载apktool文件,可以从我的网盘下载:http://pan.baidu.com/s/1nvPdbVb 2.将你的apk文件和apktool文件放到一个文件夹下,这里就放到D:\study ...

  7. 使用apktool反编译apk文件

    Apktool https://ibotpeaches.github.io/Apktool/install/ 下载地址:Apktool https://bitbucket.org/iBotPeache ...

  8. Uubuntu 14.04 LTS反编译apk

    使用apktool反编译apk 1.安装apktool apktool是Google提供的APK编译工具,能够反编译及回编译apk,需要Java环境的支持(在此不再赘述Java的安装与配置,详见< ...

  9. [转]Android应用安装包apk文件的反编译与重编译、重签名

    背景介绍: 最近在做Robotium自动化测试,使用到solo.takeScreenshot()函数以在测试过程中截图,但此函数需要被测试APP具有<uses-permission androi ...

随机推荐

  1. python语言 第一个程序

    print("hello word!") # for i in range(1, 10):# for j in range(1, 10):# print(j, "x&qu ...

  2. 关路灯,洛谷dp

    题目传送门https://www.luogu.org/problem/show?pid=1220 我们假设 dpij0 为目前最优值是在 i 位置,dpij1 为目前最优值是在 j 位置则 i 到 j ...

  3. 360提供的php防注入代码

    <?php //Code By Safe3 function customError($errno, $errstr, $errfile, $errline) { echo "< ...

  4. PHP 静态缓存

    今天来说说PHP页面的静态缓存. 根据个人理解,由于客户端重复的请求某个页面,导致该页面短时间内被重复请求相同的数据,导致给服务端一定的压力,同时用户访问速度也会变慢.此时如果把这个页面缓存起来,客户 ...

  5. vue——props的两种常用方法

    vue--props的两种常用方法 1.实现父-->子的通信 举例如下: 父组件 parent.vue <children :channel="object1"> ...

  6. Arrays.asList()生成的List抛UnsupportedOperationException分析

    一.背景:使用工具类 Arrays.asList()把数组转换成集合时,使用其修改集合相关的方 法,它的 add/remove/clear 方法会抛出 UnsupportedOperationExce ...

  7. db2 update 异常

    报错: -错误的sql语句:update Persons SET FirstName = 'Fred' WHERE id_P = 1com.ibm.db2.jcc.am.SqlException: O ...

  8. js----数组处理之splice(有js原始addClass方法哦)

    上次写了一个轮播的方法:http://blog.csdn.net/stronglyh/article/details/46833499 由于别人问我的时候,给了我html.于是乎我就看到了页面中引用了 ...

  9. 设置应用栏(Setting Up the App Bar)

    今天星期五,刚从体育场打完球回来,洗了洗脚.明天还要继续上班,也是非常艰难.近期我的小腰有点不舒服,就早点睡觉歇息. 所以今天就简单的翻译一篇Android官方站点上的文章,我会加一些补充. 原文地址 ...

  10. 苹果新的编程语言 Swift 语言进阶(三)--基本运算和扩展运算

    一 基本操作运算 1. 赋值操作 在Swift 中,能够使用赋值操作为一个常量或一个变量赋值,也能够使用多元组一次为多个常量或变量赋值. Swift 的赋值操作与其他语言最大的不同是赋值操作除了可以为 ...