Android 反编译 (原作者 http://blog.youkuaiyun.com/u012209506/article/details/53079832)

Android 反编译 前言:作为开发者,我们反编译的目的是查看别人优秀的代码,而不是破解别人的代码,恶意修改,植入广告,获取利益。目前已经有很多APP被反编译破解了,什么保卫萝卜,等等。对原开发者,和用户都造成利益上的损失。 接下来,我就开始直崩主题了。相信你已经看了很多篇反编译的博文了。首先要准备反编译的工具。(工作环境:Windows 7) žapktool   ž   作用:资源文件获取,可以提取出图片 阅读详情

前言:作为开发者,我们反编译的目的是查看别人优秀的代码,而不是破解别人的代码,恶意修改,植入广告,获取利益。目前已经有很多APP被反编译破解了,什么保卫萝卜,等等。对原开发者,和用户都造成利益上的损失。

接下来,我就开始直崩主题了。相信你已经看了很多篇反编译的博文了。首先要准备反编译的工具。(工作环境:Windows 7)

apktool  
   作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看
dex2jar
  作用:将apk反编译成Java源代码(classes.dex转化成jar文件)
jd-gui
  作用:查看APK中classes.dex转化成出的jar文件,即源码文件

我看到别人写的博文中都提供了工具下载地址,但他们的博文都是2013年的,比较老了,所以那些工具的地址,或者那些工具的版本都太低了。我下载后使用,总是会报如下错误。

出现这种错误,就是Apktool的版本太低。所以,我直接翻墙去官网下载了最新版的。但还是出错,因为我只下了apktoo.jar,还有一个是apkrool.bat,如果他两版本相差太大,也会报错。于是在官网都下载好了相同版本的。终于不报错了。这就浪费了我好多时间。这个问题解决后,后面的问题就轻松多了。文末附上我已下载好的工具集合包链接,和官网链接。

1.拆包:

先拿到一个Apk包,后缀名改成.zip然后解压,解压后的文件目录如下:


我们可以看到里面有个classes.dex文件,有的包会有好几个dex文件。还有AndroidManifest.xml文件,res资源文件等等。但目前打开AndroidManifest.xml就会是乱码的。不然就不需要我们反编译了。

2.反编译dex

我们先使用dex2jar将.dex文件反编译成java源代码;

将上一步中的classes.dex拷贝到dex2jar文件夹根目录。再打开cmd,切换到该目录,输入命令 d2j-dex2jar.bat classes.dex ;成功后会生成classes-dex2jar.jar文件,运行结果如图:


可以看到,命令一定要正确输入,不然就会报错。

3.jd-gui查看源代码:

双击这个工具后,找到classes-dex2jar.jar文件,就能查看源码了。如图:

如果这个Apk没有混淆的话,你就能90%的查看源代码了。毕竟还有那些id,是还原不了的。会显示对应的整数。

4.解码:

我们还有一个工具还没有使用,就是apktool了,直接切换到apktoo目录下,cmd执行 apktool d xxx.apk , d是decode的意思。如下图:


成功后就会对应生成一个 xxx文件夹,在文件夹中,你会看到有androidManifest.xml文件们还有res资源文件夹,这时候的文件都可以清晰的看到源码了。还有一个重要的文件夹smali,破解的人就会去修改这个文件夹中的内容。我们现在就只修改下androidManifest.xml中的包名。修改完成后,就可以重新打包了。执行命令:apktool b rx -o new_rx.apk

5.重新签名

别高兴太早,打包后还要重新签名的,你解压的时候,以前的签名就已经被破坏了。源apk的签名文件你是拿不到的,所以你得自己创建一个。请看我前面的哪一篇文章。拿到签名文件后,直接执行命令Jarsigner –verbose –keystore dxrx.jks new_rx.apk dxrx,如图:



输入密码时:cmd默认不显示,而且一个字都不能输错,也不能回删。输错一个,只能重来。这些密码就是你创建的时候设置的。签名成功后,你就可以安装了。
命令解析: Jarsigner  –verbose  – keystone  dxrx.jks(签名文件 )   new_rx.apk (要签名的包 ) dxdx(签名的别名(key alias) )

我自己的研究也是站在巨人门的肩膀上: http://blog.youkuaiyun.com/guolin_blog/article/details/49738023 

百度云盘下载地址: http://pan.baidu.com/s/1eSl0zBk
官网链接先附上: https://ibotpeaches.github.io/Apktool/install/,那个apktool.bat下载,要右键点击。
dex2jar:Android转Java代码的强大工具 开源项目dex2jar是Android开发社区中不可或缺的工具,它以源代码的形式公开,允许用户查看、修改和分发。在这样的开源社区中,贡献模式至关重要,它确保了项目的持续进步和创新。贡献者可以提交代码,修复bug,或者增加新的功能。社区成员之间通过代码审查、讨论和协作,共同推动项目的发展。社区贡献模式通常包括以下几个步骤:问题跟踪:通过公共的问题跟踪系统,如GitHub Issues,贡献者可以报告问题、提出新功能请求或者查看已有的讨论。分支提交。 阅读详情

相关推荐

dex2jar工具:从DEX到JAR文件的转换实战

dex2jar是一个用于Android应用开发与逆向工程的强大工具,它能够将Android平台上的DEX文件(Dalvik Executable format)转换成Java的JAR文件。这个转换过程对于理解应用的运行机制和进行安全测试尤为重要。dex2jar为开发人员提供了分析和调试Android应用的便利,尤其是在进行应用的维护和修改时,可以直观地查看和编辑Java源代码。dex2jar不仅仅是一个简单的转换工具,它还能够与JD-GUI等可视化工具结合使用,让开发者能直接浏览反编译得到的源代码。

weixin_42433737的博客 1418

apk文件反编译d2j-dex2jar.bat/dex2jar.bat遇到的问题

可能是Java版本太高而当前使用的dex2jar版本太低所致,我的Java是1.8版本(前段时间的确升级过),而dex2jar是0.07.8,所以从官网下载了最新版dex2jar-2.0

renwudao24的专栏 2万+

从DEX到JAR:使用dex2jar工具进行Android应用分析

DEX(Dalvik Executable)文件格式是Android平台上的应用程序执行文件格式。它的设计目的是让Android应用能够高效地运行于资源受限的设备上,如手机和平板电脑。DEX文件包含编译后的代码和应用运行所需的所有内容,例如类的定义、方法和字段等。在Android应用的开发过程中,开发者往往会遇到需要分析、调试已编译的APK文件的情况。

weixin_35238815的博客 1813

dex2jar 和 jd-gui 的安装与使用

将APK直接解压(修改后缀名为.zip,然后解压)后,可以看到目录下包含一个classes.dex文件。如下图所示,是一个APK文件解压后得到的: 若想要阅读该文件的内容,可以使用 dex2jar 和 jd-gui 工具。下面介绍这两种工具的安装及使用方法。 一、安装dex2jar 下载地址:dex2jar download | SourceForge.net。 下载之后解压即可,如图: 二、使用 dex2jar 1. 将需要反编译的dex文件(这里是classes.dex)复制到.

yushuangping的博客 1万+

APK 最新反编译工具 dex2jar.bat apktool.bat

APK 最新反编译工具 dex2jar.bat:反编译类 apktool.bat:反编译文件

手把手教你用STM32的ADC读取PT100模块,实现高精度温度采集(附完整代码)

本文详细介绍了如何利用STM32的ADC模块读取PT100温度传感器信号,实现高精度温度采集系统。从硬件选型、ADC配置校准到温度计算算法和软件滤波技术,提供完整的实现方案和优化技巧,帮助工程师快速构建稳定可靠的温度监测系统。

weixin_29185199的博客 343

爬虫----dex2jar工具的安装与使用

本文详细介绍了dex2jar工具的下载安装与使用

redrose2100的博客 2190

AutoDL上传数据详细步骤(自己用的步骤,可能没有其他大佬用的那么高级)

AutoDL上传数据详细步骤(自己用的步骤,可能没有其他大佬用的那么高级)

孟孟单单的博客 7万+

反编译apk

反编译apk 因为工作需要,需要对app进行反编译,用了2次,总是忘记,所幸就记下来,以后自己需要的时候可以随时查看,同时也帮助需要的人吧。 1,需要工具 apktool ,用来看app的资源文件。 dex2jar-2.0 ,用来反编译dex文件,得到jar包。 jd-jui ,用来看jar包里面的java代码。 2,主要步骤 apktool ,我用的版本是apktool_2.4.1.jar...

u011623002的博客 480

Maltab GUI课程设计——网络爬虫程序(基金连涨连跌提醒)

Maltab GUI课程设计——网络爬虫程序(基金连涨连跌提醒)

果果爱腰果的博客 848

自考计算机系统原理(第六章计算机系统概论)-13015

名词解释 I/O 硬件 I/O软件 用户空间I/O软件 内核空间I/O 软件 系统调用处理程序 系统调用服务例程 设备驱动程序 中断服务程序 系统级1/O函数 虚拟文件系统 文件描述符 文件元数据 流缓冲区 索引节点 目录文件 目录项 系统打开文件表 磁盘高速缓存 高速缓存 RAM I / O 控制方式 程序直接控制I/O 就绪状态 中断控制I/O 中断屏蔽字 多重中断 中断嵌套 DMA 方式 DMA 控制器 设备控制器 I/O端口 控制端口 数据端口 状态端口 I/O 地址空间 独立编址方式 统一编址方

qq_23872947的博客 1150

Android 反编译——dex2jar 和 jd-gui 的安装与使用

介绍了Android App常用的破解流程,主要为两个工具dex2jar 和 jd-gui 的安装与使用。

大前端程序员的自我修养 5317

别再为模糊的3D重建头疼了!手把手教你用3DSlicer处理DICOM数据,搞定医学影像三维可视化

本文详细解析了医学影像三维重建中常见的模糊问题,并手把手教你使用3DSlicer处理DICOM数据,实现精准的三维可视化。从层厚设置到数据格式转换,再到重建算法选择和渲染参数微调,提供了一套完整的优化方案,特别适合临床医生和医学影像处理人员提升工作效率。

weixin_28693447的博客 246

dex2jar2.0 工具命令使用 及生成error.zip解决

dex2jar2.0 新版本中的命令有一点显著不同——每个文件重新命名,在旧名字前加上了 d2j-。 使用dex2jar.bat classes.dex 就会出现 'dex2jar.bat' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 所以在使用反编译时,命令就变成了 d2j-dex2jar.bat classes.dex 过程:在文件夹找到dex2jar2.0所在目录,在地址栏输入cmd 生成错误压缩包 解决方法: Detail Error Informatio...

team39的博客 3269

逆向分析第一步:如何从HEX文件‘还原’出单片机的原始程序与数据?

本文详细解析了如何从HEX文件逆向分析出单片机的原始程序与数据,涵盖了固件逆向的底层逻辑与实践。通过介绍HEX文件的结构、内存映像重建技术以及专业工具链的使用,帮助读者掌握从十六进制数据到可执行代码的完整流程,适用于嵌入式系统开发和逆向工程领域。

weixin_29745609的博客 315

动力学约束下的运动规划算法——状态栅格规划器(State Lattice Planner)

A*、RRT等算法建立的用于路径搜索的图模型是不考虑机器人的动力学约束的,其构建的图模型的两个相邻节点之间的路径可能是不可行的,或者很难被机器人跟踪的,现在我们想要使得图中相邻两个节点间的连接是一种满足动力学约束的可行的连接,那么如何构建一个这样的图呢? 构建这样的图通常有两种方法:第一种是基于控制空间的采样(正向方法)

慕羽★的博客 3104

java打包dex_将jar文件与dex文件的转换 . | 学步园

一、dex文件转为jar文件1.第一篇Android反编译资料整理Made by李文栋rayleeya@gmail.com2010-12-13Monday于北京一、反编译流程图二、工具使用方法(命令)准备工作假设我的工作目录为$AndroidDecompile,首先要将system.img中(或者说从源码中编译好的)几个重要的odex文件拷贝到工作目录中,他们是:core.odex...

weixin_39979948的博客 1235

从零到多智能体:Google Agent开发套件(ADK)入门指南

ADK促进自定义工具生产的能力是其优势之一。本质上,工具只是一个带有描述性文档字符串的Python函数。

独立开发,substack顶级编辑 2489

记录一次在win10环境,反编译apk,出错的问题

d2j-dex2jar : 无法将“d2j-dex2jar”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。 所在位置 行:1 字符: 1 + d2j-dex2jar classes.dex ...

qq_36771930的博客 2001

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Android 关于apk反编译d2j-dex2jar classes.dex失败的几种方法

都正确之后如果出现这个情况就直接按照建议改(即将d2j-dex2jar classes.dex改为 .\d2j-dex2jar classes.dex)路径正确的话,有可能是cmd的时候没有打开这个路径(最直接的方法就是直接找到文件夹直接在地址栏上打cmd,就会直接定位到该目录下)说明已经成功了,classes-dex2jar.jar就是反编译的文件,然后用jadx-gui打开即可。,即d2j-dex2jar和classes.dex是否都在一个文件夹里(大部分的情况都是路径不正确)

陈志宝‑天津|Android&Java 全栈开发工程师 2273

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

【移动应用安全】工具使用

目前有dex2jar和、d-gui、部分jkd自带签名工具、ideasmali插件及androidstudio动态调试的使用介绍 AliCrackme_01动态调试方法wp

m0_52682586的博客 3481

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

反编译工具之 dex2jar和jd-GUI下载!干货满满!!!!!!

dex2jar 是 Android 中的一个反编译工具,它可以将 Android 程序安装包 Apk 文件中的 .dex 文件反编译成一个 .jar 文件,也可以将反编译后的 .jar 文件重新编译成 .dex 文件。按照自己dex2jar的安装路径输入,我此处的是d盘,只需要把cd后边的路径换成你的就ok了。最后就长这个样子,一步一步跟着我肯定不能错。这个文件夹是目标apk解压之后的,你要反编译什么就解压。这里你就直接给我点.exe运行 看好了长啥样 别瞎整。,我下载的是这个,大家可按需求下载。

布洛芬 4624

dex2jar 报错 com.googlecode.d2j.DexException: not support version

dex2jar执行d2j-dex2jar.bat classes.dex命令时遇到com.googlecode.d2j.DexException: not support version报错问题。解决办法:notepad++打开APK解压得到的dex文件,把版本036,保存,再执行dex2jar生成jar的命令,即可正常运行。

qq_43452766的博客 610

dex转jar , jar转dex , class转java

简单先解释下,一般java编写后的脚本文件是.java,.class是字节码文件,.dex是android平台可执行文件类型,一般java文件打包成jar包后里面的jar资源是.class,如果需要运行于android,那必须jar里面资源为.dex,如U1的jar脚本 1、dex 转 jar     下载dex2jar,下载地址      解压后,将d2j-dex2jar.bat 路径添加

MayData的博客 2万+
上一篇: java 制作类似DOS功能
下一篇: ScrollView嵌套使用ListView时遇到,Item显示不全问题
谦行
博客等级 码龄11年 182粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值