mac反编译
‘壹’ Android-Mac电脑怎么进行APK反编译
第一步:下载反编译工具集,apktool、dex2jar、jd-gui,最后我会上传这些工具,解压后如下图:
下面那个弹出框是JD-GUI的,用来将字节码反编译成java源文件用的
第二步,工具集准备好之后还不能进行反编译,你在命令窗口下执行输入apktool 会提示命令不存在,需要配置一下环境变量
,怎么配置呢,如下命令:
1.打开命令窗口,cd /usr/local/bin下,可能有的mac电脑不存在bin这个目录,直接在创建一个就好了,命令是:sudo mkdir bin,执行后会让你输入root权限密码,输入完后执行ls命令查看,bin目录就存在了,如图:
2.将你解压后的apktool文件夹下的三个文件aapt、apktool、apktool.jar 复制到/usr/local/bin/目录下,怎么复制呢,当然用命令cp了,如下图:
复制多个文件用空格隔开,android-workspace/APK/apktool/目录是源目录,存放的是我们要复制的那三个文件,执行命令后,提示输入密码,输完密码后就复制成功了,ls查看一下,这三个文件已经存在了。
这时候就已经配置好环境变量PATH了,什么,我怎么没看到和PATH有关的任何命令,其实,/usr/local/bin本来就在PATH下,不信我执行命令你看:
这也是我们把apktool3个文件放在/usr/local/bin下的原因,现在你再输入apktool命令试试:
输出这样的命令就代表环境配置好了
第三步:开始进行反编译了,其实用到的命令也很简单,我们随便拿一个apk来,例如:
我们要对dz-android.apk进行反编译,命令行进入这个目录 cd /Users/hailonghan/android-workspace/APK,到这个目录后,
执行命令apktool d dz-android.apk,如下图:
执行成功后,会在当前目录下生成一个da-android文件夹,点击去就看到相关apk的资源文件了,选中AndroidManifest.xml,然后空格键,就可以看到反编译后的内容了:
第四步:反编译java源文件
这就用到dex2jar和jd-gui了,将dz-android.apk重命名改成dz-android.zip,然后利用解压缩软件解压,得到一个dz-android目录,我们要拿到里面的classes.dex文件,
将其复制到dex2jar-0.0.9.15目录下,
然后执行命令:sh dex2jar.sh classes.dex,
执行成功后会生成一个classes_dex2jar.jar文件,
最后,用jd-gui工具打开这个jar包就可以看到java源代码了,
‘贰’ 如何在Mac上进行Android反编译
这恐怕不是学习之用了。。。呵呵。。。。。楼主打消自己的念头吧。。。已经把变量名A改成B了,怎么知道B以前是A还是C还是D呢。。。
‘叁’ mac怎么打开apk文件
MAC下修改apk后缀为ZIP即可解压打开了,反编译的话用apktool、dex2jar、jd-gui,
要在MAC下运行apk的话就用android 模拟器例如MuMu等总之,MAC版的android 模拟器还有很多自己搜一下
‘肆’ mac上反编译用的jd-gui,强大的网友们能不能提供一下,急需😣
我可以给你一份希望可以帮助你
点击下载jd-gui
jd-gui怎么用
1、在本站下载好压缩包,解压缩,双击运行“jd-gui.exe”程序;
2、打开软件主界面,在软件正上方功能栏中选择“File”,弹出的下拉框中选择“open file”打开文件,或者直接点击工具栏打开文件图标,选择要反编译的类;
3、选择好想要的.class类后,会看到jd-gui会将相关的类都进行反编译,不仅包括我们我们刚刚选择的类,还包括其他相关的类;
4、同时我们可以选择某个编译好的类,保存单个Java文件;
5、当我们想查询某个构造函数、类名、函数名时,我们可以使用其查询功能(search)针对不同的条件进行查询;
‘伍’ 如何吧class文件反编译为java文件
项目WAR文件不含java源文件,只有.class文件,如何将WAR项目导入到MyEclipse中去??
我的做法:将WAR中的.class文件反编译成.java文件,反编译软件我用的是Java Decompiler", 由 Pavel
Kouznetsov开发,目前最新版本为0.2.5.它由 C++开发,并且官方可以下载 windows、linux和苹果Mac
Os三个平台的可执行程序。
如何将现有的web程序导入到myeclipse环境中去
如果要将别人发布的war包,导入到自己的eclipse环境中进行再开发,最快的方法如下:
1、新建一个myeclipse的web project。
2、右键该工程,myeclipse/add struts capability,设置成struts开发环境。
3、将war包解压,全目录覆盖新工程的WebRoot(包括其中的web-inf/meta-inf目录),相应的scr目录(或者对应的包含java文件的目录)覆盖eclipse的src目录。myeclipse会自动将WEB-INF\lib下的jar包作为放到classpath中的。
4、refresh该工程,over。
‘陆’ 怎么反编译mac os x 文件
CPU不兼容。在bios里面开启CPU虚拟化来支持更多命令。如果不行的话吧 VMware 重装。
‘柒’ 苹果机安装软件要dmg格式的,如何找到dmg的pps软件呢
1、mac好用吗?它较windows好在哪儿?
mac系统是基于UNIX的系统,windows系统是基于DOS/NT的系统,系统架构完全不同。MAC相对更稳定,更节省资源。而且在当今的大型服务器上,几乎所有的系统全是基于UNIX的。
具体到使用,MAC系统更绚丽,速度更快,并且所有的软件部分32位或者64位,全部通用。相反windows,资源占用较多,而且目前来看,绝大多数软件只支持32位系统。但是32位系统有瓶颈,因为它最多只支持到3.25GB的内存。所以也就是说,如果你一般买的windows(一般没人买64位的),你内存在大,最多也就显示到3GB.
但是MAC也有个缺陷,就是硬盘占用很多。这个是系统架构所决定的。所以买MAC时候一定买大的硬盘。
另外就是文档什么的备份很方便,整个操作系统整合性很好。
2、关于兼容问题,大家都知道现在市面上大部分机器的操作系统还是windows的,所以我很担心如果mac不能兼容那会很麻烦,比如说我在windows上进行了一些文字输入或是自我创作的东西,传输到mac上能否正常使用并且修改,修改之后又能否再回到windows上使用和修改?
绝大多数都有响应的替代软件。并且很多大的软件现在都是MAC版本,WINDOWS版本一起发售。比如office 2007对应的MAC版本是OFFCIE 2008。目前我所知道的,必须要求用windows的软件有:国内大多数的银行的网上银行(美国的都可以),qq的视频功能(一般聊天,传文件可以),PPS在线电视。
PS.我没有用ms office2008,用的是open office,是开源的,因为我在国外查盗版太严。
3、mac自带的系统可否安装windows的一些软件?
不可以直接安装在mac下,可以借助虚拟机或者Bootcamp构造的双系统。
4、mac自带的系统和windows同时安装之后用起来如何?
协作性很好,运行效率很好。并且即使使用虚拟机调用bootcamp里面的windows系统,在我的4GB PRO下也可以十分流畅的运行。(虚拟机下不支持部分网银,比如招行专业版,但是大众版支持。)
5、有没有人买了mac装的是windows的系统?感觉如何?
如果mac下使用windows,不是不可以,但是完全失去了mac的优势。我在买之前也担心mac不好,当时只是为了mac pro好看才买。用过mac才发现,它要比windows友好的多,也高效的多。距离来说,我做一份photo merge,在windows xp下需要8小时以上,而mac只需要2小时左右。
6.同时安装苹果自带系统和windows会不会占用很大资源,以至于运行速度变慢?
不会。两个系统在不打开另外一个的时候,是绝对独立的,你不会感到另外一个系统的存在。如果你从mac里用虚拟机调用windows的话,速度没有直接开windows快,但是也没有明显的延迟。同时,虚拟机下,两个系统可以实现很好的交互。
7.为什么苹果自带系统没有病毒呢?它的杀毒软件是什么?另外,大家都知道网上有很多资源是免费的,下载之后就可以安装了,那么苹果上所提供的软件是不是都需要交钱啊?
苹果系统没有病毒?错。只是目前没有。因为windows用户占到75%以上的市场,所以大多数病毒制造者都会针对windows制作病毒,以获得更好的传播效果。因为mac系统和windows从内核上就不一样,连应用应用程序都无法使用一样的,病毒自然也不能够运行(病毒也是一种应用程序)。但是,这只是时间问题。苹果电脑在美国市场占有率3年来翻了将近2倍,很多广告甚至打出“pc is also a fashion (用PC其实也是很潮的)”的标语。随着苹果用户的增多,mac系统的病毒“指日可待”。
至于免费软件,只有很少一部分免费,大多数并不是的。但是可以从网上找到X版资源。mac系统的软件要比windows的好破解的多,因为它大多数没有繁琐的安装程式。破解mac的软件一般只是一个算号系统的反编译过程。
8.bootcamp和虚拟机是什么?他们之间有什么联系和区别吗,如果装双系统的话选择bootcamp或是虚拟机各有什么好处和坏处?
bootcamp是一种“硬件”虚拟机。它是在mac电脑的硬件环境下,构造出一个模拟的硬件环境,从而让windows可以安装在它上面。(因为win和mac系统所需要的硬件结构也是不同的,比如win支持intel酷睿,而mac支持inter universal和power pc,唯一的办法就是模拟一个假的硬件环境来装win)。
而虚拟机,实际上是“软件”上的概念。它是在已经打开的mac系统下,安装一个软件,从开启的mac系统下“把win当作一个一般的应用程序来打开”,而win里面的所有软件就好比插件一样。
bootcamp和虚拟机各有好处:
bootcamp:提供更稳定的完全真实可靠的windows环境,独立的ip地址可以运行网络银行(虚拟机是虚拟ip),运行效率更高(因为所有硬件资源只为windows服务)
虚拟机:可以在开启mac系统的同时使用windows的程序,减少重新启动切换操作系统的麻烦,能够时间多系统协作,比如这边编辑好的文档可以马上从win里调用进行进一步编辑,不爽在回mac继续来。但是运行效率相对低一些,并且一些对安全性要求极高的软件(比如专业版网银),无法使用。
现在很好,你只需要通过bootcamp装个windows,再在mac里装parallels这个虚拟机,就可以既正常使用Bootcamp的“标准windows”,也可以在Mac里通过虚拟机的形式调用bootcamp里面的windows。这样装一个windows,两种方式都可以运行,非常方便。
‘捌’ 如何在Mac上面进行AndroidApk反编译
最新的反编译不用此方法, 有最新的一键自动反编译工具:
这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。
在此郑重声明,贴出来的目的不是为了去破解人家的软件,完全是一种学习的态度,不过好像通过这种方式也可以去汉化一些外国软件。
注:本Android反编译教程,在Windows7-Ultimate-64bit操作系统上,测试通过!
下述所需的反编译工具包 下载
一、反编译Apk得到Java源代码
首先要下载两个工具:dex2jar和JD-GUI
前者dex2jar是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源代码。以下是下载地址:
dex2jar:
JD-GUI:
具体步骤:
首先将apk文件,将后缀改为zip,解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的;
解压下载的dex2jar,将classes.dex复制到dex2jar.bat所在目录。在命令行下定位到dex2jar.bat所在目录(在DOS命令下CD 目录)
运行
dex2jar.bat classes.dex
生成
classes.dex.dex2jar.jar
生成jar文件的截图如下:
运行JD-GUI(jd-gui.exe),打开上面生成的jar包,即可看到源代码了
HelloAndroid源码(编译前的apk源码对照)如下:
二、反编译apk生成程序的源代码和图片、XML配置、语言资源等文件
如果是汉化软件,这将特别有用。首先还是下载工具,这次用到的是apktool
下载地址:
下载:apktool1.4.1.tar.bz2 和 apktool-install-windows-r04-brut1.tar.bz2(两个包都下载)
具体步骤:
将下载的两个包解压到同一个文件夹下,应该会有三个文件:aapt.exe,apktool.bat,apktool.jar
在命令行下定位到apktool.bat文件夹,输入以下命令:apktool d C:\*.apk C:\*文件夹,如下图:
命令行解释:apktool d [apk文件 ] [输出文件夹]
反编译的文件如下(AndroidManifest.xml为例):
特别注意:你要反编译的文件一定要放在C盘的根目录里(其实不用放在C盘根目录也行)
例如:在D盘目录D:\apktool1.4.1
cd /d D:\apktool1.4.1 //切换到D盘目录,包含HelloAndroid.apk以及aapt.exe,apktool.bat,apktool.jar三个文件
apktool.bat d -f HelloAndroid.apk HelloAndroid // apktool反编译命令,注意 d和
-f 的写法
将反编译完的文件重新打包成apk,很简单,输入apktool b c:\***文件夹(你编译出来文件夹)即可,命令如下:这个主意你文件所在盘
打包apk后的文件在目录C:\HelloAndroid下,生成了两个文件夹:
build
dist
其中,打包生成的HelloAndroid.apk,在上面的dist文件夹下,Ok
最后,再介绍一款刚出来的反编译工具 Androidfby ,它是一款对上述步骤进行了封装的图形界面工具,下载地址
但是,针对部分签名的apk,无法实现反编译,但本博客方法则仍然可以反编译成功!仅供参考使用
另外,作为应用开发者,肯定不希望自己的代码被反编译的,下一遍博客将讲述如何通过混淆代码防止被别人反编译
Android如何防止apk程序被反编译
作为Android应用开发者,不得不面对一个尴尬的局面,就是自己辛辛苦苦开发的应用可以被别人很轻易的就反编译出来。
Google似乎也发现了这个问题,从SDK2.3开始我们可以看到在android-sdk-windows\tools\下面多了一个proguard文件夹
proguard是一个java代码混淆的工具,通过proguard,别人即使反编译你的apk包,也只会看到一些让人很难看懂的代码,从而达到保护代码的作用。
下面具体说一说怎么样让SDK2.3下的proguard.cfg文件起作用,先来看看android-sdk-windows\tools\lib\proguard.cfg的内容:
[html] view
plainprint?
1. -optimizationpasses 5
2. -dontusemixedcaseclassnames
3. -
4. -dontpreverify
5. -verbose
6. -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
7.
8. -keep public class * extends android.app.Activity
9. -keep public class * extends android.app.Application
10. -keep public class * extends android.app.Service
11. -keep public class * extends android.content.BroadcastReceiver
12. -keep public class * extends android.content.ContentProvider
13. -keep public class * extends android.app.backup.BackupAgentHelper
14. -keep public class * extends android.preference.Preference
15. -keep public class com.android.vending.licensing.ILicensingService
16.
17. -keepclasseswithmembernames class * {
18. native ;
19. }
20.
21. -keepclasseswithmembernames class * {
22. public (android.content.Context, android.util.AttributeSet);
23. }
24.
25. -keepclasseswithmembernames class * {
26. public (android.content.Context, android.util.AttributeSet, int);
27. }
28.
29. -keepclassmembers enum * {
30. public static **[] values();
31. public static ** valueOf(java.lang.String);
32. }
33.
34. -keep class * implements android.os.Parcelable {
35. public static final android.os.Parcelable$Creator *;
36. }
从脚本中可以看到,混淆中保留了继承自Activity、Service、
Application、BroadcastReceiver、ContentProvider等基本组件以及
com.android.vending.licensing.ILicensingService,
并保留了所有的Native变量名及类名,所有类中部分以设定了固定参数格式的构造函数,枚举等等。(详细信息请参考/examples中的例子及注释。)
让proguard.cfg起作用的做法很简单,就是在eclipse自动生成的default.properties文件中加上一句“proguard.config=proguard.cfg”就可以了
完整的default.properties文件应该如下:
[html] view
plainprint?
1. # This file is automatically generated by Android Tools.
2. # Do not modify this file -- YOUR CHANGES WILL BE ERASED!
3. #
4. # This file must be checked in Version Control Systems.
5. #
6. # To customize properties used by the Ant build system use,
7. # "build.properties", and override values to adapt the script to your
8. # project structure.
9.
10. # Project target.
11. target=android-9
12. proguard.config=proguard.cfg
大功告成,正常的编译签名后就可以防止代码被反编译了。反编译经过代码混淆的apk得到的代码应该类似于下面的效果,是很难看懂的:
如果您使用的是2.3之前的SDK版本也没关系,把上面的proguard.cfg文件复制一份放到项目中,然后进行相同的操作即可
/
‘玖’ 最近群里有人问如何在mac下进行apk反编译,我也没试过,以前都是在windows下进行反
直接用Linux上的相关反编译工具即可。毕竟mac的系统和linux系统差不多的。
‘拾’ eclipse class decompiler mac版怎么用
下图是首选项,具体首选项配置选项如下:
1、重用缓存代码:只会反编译一次,以后每次打开该类文件,都显示的是缓存的反编译代码。
2.忽略已存在的源代码:若未选中,则查看Class文件是否已绑定了Java源代码,如果已绑定,则显示Java源代码,如果未绑定,则反编译Class文件。若选中此项,则忽略已绑定的Java源代码,显示反编译结果。
3.显示反编译器报告:显示反编译器反编译后生成的数据报告及异常信息。
4.使用Eclipse代码格式化工具:使用Eclipse格式化工具对反编译结果重新格式化排版,反编译整个Jar包时,此操作会消耗一些时间。
5.使用Eclipse成员排序:使用Eclipse成员排序对反编译结果重新格式化排版,反编译整个Jar包时,此操作会消耗大量时间。
6.以注释方式输出原始行号信息:如果Class文件包含原始行号信息,则会将行号信息以注释的方式打印到反编译结果中。
7.根据行号对齐源代码以便于调试:若选中该项,插件会采用AST工具分析反编译结果,并根据行号信息调整代码顺序,以便于Debug过程中的单步跟踪调试。
8.设置类反编译查看器作为缺省的类文件编辑器:默认为选中,将忽略Eclipse自带的Class Viewer,每次Eclipse启动后,默认使用本插件提供的类查看器打开Class文件。
插件提供了系统菜单,工具栏,当打开了插件提供的类反编译查看器后,会激活菜单和工具栏选项,可以方便的进行首选项配置,切换反编译工具重新反编译,以及导出反编译结果。
类反编译查看器右键菜单包含了Eclipse自带类查看器右键菜单的全部选项,并增加了一个“导出反编译源代码”菜单项。
打开项目路径下的Class文件,如果设置类反编译查看器为缺省的查看器,直接双击Class文件即可,如果没有设置为缺省查看器,可以使用右键菜单进行查看。
Eclipse Class Decompiler插件也提供了反编译整个Jar文件或者Java包的反编译。该操作支持Package Explorer对包显示布局的操作,如果是平铺模式布局,则导出的源代码不包含子包,如果是层级模式布局,则导出选中的包及其所有的子包。
Debug调试:可以在首选项选中对齐行号进行单步跟踪调试,和普通的包含源代码时的调试操作完全一致,同样的也可以设置断点进行跟踪。