1. 反编译工具 1.1 Apktool 获取apk中的反汇编代码及资源文件 反编译apk 文件的命令为: apktool d[ecode] [OPTS] <file.apk> [<dir>] 编译apk文件的命令为: apktool b[uild] [OPTS] [<app_path>] [<out_file>] 1.2 enjaify / dex2jar(不推荐 长时间没有更新 反编译容易出错) enjaify: 下载地址:https://github.com/Storyyeller/enjarify 使用方法:python3 -O -m enjarify.main yourapp.apk dex2jar: 下载地址: https://sourceforge.net/projects/dex2jar/ 使用方法:dex2jar classes.dex (将apk解压后文件的classes.dex 进行反编译) 1.3 JD_GUI 打开 1.2 反编译过后的jar文件夹即可查看class的源码 2. eclipse 配置 NDK 遇到的问题 问题1:首先遇到的问题是安装完NDK,配置完环境变量以后 运行ndk-build 提示错误; 错误提示: xxx不是内部或外部命令,也不是可运行的程序或批处理文件。 经过排查发现是存储NDK的路径中包含了空格,导致无法启动ndk-build 问题2:eclipse 安装NDK时 'Window' -> 'performance' -> 'Android' -> 'NDK' -> 'browsers'; 选择安装路径以后,不能应用。 经过查询发现有几种办法可以将这个问题解决, 将./build/ndk-build(无结尾的文件)复制到当前目录下。 还可以直接将指定目录指向./build 文件。 3. 使用AVD时遇见的问题: 创建AVD以后开始运行, 问题1:running an x86 based Android Virtual Device (AVD) is 10x faster. We strongly recommend creating a new AVD. 因为之前CPU/ABI选择的是Google APIs ARM (armeabi-v7a) 后将其改为 Google APIs Intel Atom (x86_64) 不再报这个错误。 问题2:Please ensure Intel HAXM is properly installed and usable. CPU acceleration status: HAXM is not installed on this machine 因为在上面我们将 CPU/ABI 改为了 Google APIs Intel Atom (x86_64) 架构,HAXM 是属于它的一个加速器(网上说的)。 HAxM的安装方法:双击SDK Manager.exe然后在最下面可以导入 HAXM的包。导入成功以后进入SDK安装路径下的./extras/intel/Hardware_Accelerated_Execution_Manager 可以找到hexm的安装程序 intelhaxm-android.exe. 点击安装即可。 4. eclipse运行android程序报错: Error: Error parsing F:\Android_sdk\android-sdk_r24.4.1-windows\android-sdk-windows\system-images\android-23\android-tv\armeabi-v7a\devices.xml cvc-complex-type.2.4.d: 发现了以元素 'd:skin' 开头的无效内容。此处不应含有子元素。 将F:\android-sdk_r24.4.1-windows\android-sdk-windows\tools\lib文件夹下的devices.xml复制粘贴,替换掉上面错误的devices.xml文件 5. 运行android 程序报错: Unknown error: Unable to build: the file dx.jar was not loaded from the SDK folder! 因为sdk版本(AndroidMainfest.xml中有指出targetSdkVersion="23" ) 与 sdktools版本不一致。 解决办法在project.properties 文件中添加字段sdktools=版本号 6. 关于apktool反汇编后无法回编译的问题: 问题1: Exception in thread "main" brut.androlib.AndrolibException: brut.directory.PathN otExist: apktool.yml 解决办法在反汇编时:apktool d -r xxx.apk 问题2: .DexBackedDexFile$NotADexFile: Not a valid dex magic value: 解决办法在反汇编时: apktool d -r xxx.apk --only-main-classes -o outdir 问题3: brut.androlib.AndrolibException: brut.common.BrutException: could not exec (exit code = 1): 解决办法在反汇编时:apktool d -r xxx.apk --only-main-classes -o outdir 加上-r参数 7. 安装apk时遇见的问题: 问题1: INSTALL_FAILED_NO_MATCHING_ABIS INSTALL_FAILED_NO_MATCHING_ABIS表示架构不匹配。如果您在Mac上使用Android Studio(通常使用Apple的ARM),则需要将Android虚拟设备CPU / ABI设置为“arm”或“armeabi-v7a”。但是,如果您在PC上使用Android Studio(通常使用英特尔芯片,请将其设置为“x86”或“x86_64”) 在AVD上可以设置, 8. 反编译apk后 AndroidManifest.xml乱码 问题1: AndroidManifest.xml乱码 通过AXMLPrinter2.jar工具进行处理, java -jar AXMLPrinter2.jar D:\xxx\xx.xml > AndroidMainfest.txt
**反编译整理**
最新推荐文章于 2024-03-30 13:43:57 发布