**反编译整理**

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

    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值