首页 > 其他分享 >【Android逆向】apk 反编译

【Android逆向】apk 反编译

时间:2023-03-28 18:35:44浏览次数:43  
标签:dex 反编译 java DexBackedDexFile apk apktool Android jf

1. Kali搭建apktool环境

1. 访问apktool 官网https://ibotpeaches.github.io/Apktool/install/

image

参考红圈里的步骤处理即可

2. 执行命令反编译apk
apktool d   ./xxxx_v5.4.apk 

注意这里有可能因为assert目录下(或者其他地方)有加密的dex而导致反编译报错
比如以下日志

I: Baksmaling assets/39285EFA.dex...
Exception in thread "main" org.jf.dexlib2.dexbacked.DexBackedDexFile$NotADexFile: Not a valid dex magic value: cf 77 4c c7 9b 21 01 cd
        at org.jf.dexlib2.util.DexUtil.verifyDexHeader(DexUtil.java:93)
        at org.jf.dexlib2.dexbacked.DexBackedDexFile.getVersion(DexBackedDexFile.java:157)
        at org.jf.dexlib2.dexbacked.DexBackedDexFile.<init>(DexBackedDexFile.java:81)
        at org.jf.dexlib2.dexbacked.DexBackedDexFile.<init>(DexBackedDexFile.java:184)
        at org.jf.dexlib2.dexbacked.ZipDexContainer$1.getDexFile(ZipDexContainer.java:181)
        at brut.androlib.src.SmaliDecoder.decode(SmaliDecoder.java:89)
        at brut.androlib.src.SmaliDecoder.decode(SmaliDecoder.java:37)
        at brut.androlib.Androlib.decodeSourcesSmali(Androlib.java:103)
        at brut.androlib.ApkDecoder.decode(ApkDecoder.java:151)
        at brut.apktool.Main.cmdDecode(Main.java:175)
        at brut.apktool.Main.main(Main.java:79)

这是需要增加一个参数--only-main-classes

参数解释:

只反编译apk根目录下的dex文件,如:classes[0-9].dex

    通过阅读源码发现,此配置的作用为:反编译根目录下的以 classes 开头,并以 .dex 结尾的dex文件,不仅限于0-9

整体命令(--only-main-classes不可放在最后,2.7版本会报错)

apktool d --only-main-classes  ./xxx_v5.4.apk

反编译成功

标签:dex,反编译,java,DexBackedDexFile,apk,apktool,Android,jf
From: https://www.cnblogs.com/gradyblog/p/17266265.html

相关文章

  • 【玖哥乱弹】三句半:Android程序员的一生
    两包泡面一天饱,代码提交天欲晓,领导上班问声早,通宵了;满脸皱纹面相老,神经紊乱血压高,浑身无力头发少,累病了;项目上线钱景好,老板只恨腰包小,卸磨杀驴把你炒,被裁了;房东敲门债主找,朋......
  • android 音标乱码的一些问题
      android就是一个系统,系统中应该有字体,android自身有就一个字体支持的。下面是读取音标乱码的问题,网上转来的。 但是,如果我这字体是数据库来的,怎办怎办  ----------......
  • Android北京地铁查询app-代码部分
    这次结对作业完成的Android北京地铁查询app的代码,放在这里,也可以到我github上下载:https://github.com/BXF-Aurora168页面和功能介绍:https://www.cnblogs.com/rsy-bxf150/......
  • 【Android逆向】定位native函数在哪个so中方法
    1.在逆向过程中经常需要定位方法在哪个so中,而app加载的so很多,比如那么如何快速定位方法在哪里呢2.比如如下案例,首先看日志03-2811:01:56.4571456614566DKM-NATI......
  • android:state_pressed标签失效或android:state_enabled标签失效问题解决
    问题描述:android:state_pressed标签失效或android:state_enabled标签失效,点击不会变色,可用/不可用时不会变色。 <?xmlversion="1.0"encoding="utf-8"?><selector......
  • Android开发-Android常用组件-Button按钮
    4.3 Button(按钮)Button控件继承TextView,拥有TextView的属性。StateListDrawable简介StateListDrawable是Drawable资源的一种,可以根据不同的状态,设置不同的图片......
  • Android北京地铁查询app
    Android北京地铁查询app:功能介绍:1.输入起点终点,输出所有可能的路线,最上面显示的是最优路线,即经过站点最少的路线。其他的路线按照经过站数的大小由小到大排列,每个站点......
  • Android Button设置android:background=“@drawable/xxx“无效,<item android:drawable
    问题描述:AndroidButton设置android:background=“@drawable/xxx“无效,<itemandroid:drawable="@color/purple_200"/>无效  解决方法:找到res/values/themes.xm......
  • 2012第36周国内Android应用下载动态
    本周Android应用下载动态:主要是来自GooglePlay官方市场和国内包括安卓市场、91手机助手、腾讯应用宝、搜狐应用中心以及网易应用中心等17家第三方市场在内的一共18家应用市......
  • 一行代码搞定Android 6.0动态权限申请
    1、前言从Android6.0(API23)开始,对系统权限做了很大的改变。在之前用户安装APP前,只是把APP需要使用的权限列出来给用户告知一下,APP安装后都可以访问这些权限。从6.0开始,一......