没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论


























Android开发开发apk反编译和二次打包教程反编译和二次打包教程
反编译不是让各位开发者去对一个应用破解搞重装什么的,主要目的是为了促进开发者学习,借鉴好的代码,
提升自我开发水平。下面我们就来研究下如何进行APK反编译以及二次打包
作为Android开发者,工作中少不了要反编译别人的apk,当然主要目的还是为了学习到更多,取彼之长,补己之短。今天就
来总结一下Android反编译和二次打包的一些知识。首先声明本文的目的是为了通过例子讲解反编译和二次打包的原理和方
法,继而作为后续讲解防止二次打包和App安全的依据,并不是鼓励大家去重新打包别人的App,盗取他人劳动成果。
本文首先介绍几种本文首先介绍几种Android反编译工具的使用,然后实现反编译工具的使用,然后实现在不需要知道源代码的情况下,仅通过修改反编译得到的在不需要知道源代码的情况下,仅通过修改反编译得到的smali
文件实现修改文件实现修改apk逻辑功能的目的。逻辑功能的目的。
Android中常用的反编译工具有三个:dex2jar、jd-gui和apktool,这三个工具的作用如下:
dex2jar:将apk中的classes.dex文件转换成jar文件。
jd-gui:查看由dex2jar转换成的jar文件,以界面的形式展示反编译出来的Java源代码。
apktool:反编译生成smali字节码文件,提取apk中的资源文件。
为了尽可能的把问题讲清楚,我们来实现一个很简单的例子。首先创建一个工程DecompileDemo,在MainActivity中定义
一个布局,其中包含一个Button,点击会打印一段日志。
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private static final String TAG = "MainActivity";
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Log.d(TAG,"Button is clicked");
}
}
将这个工程编译生成的apk解压,取出其中的classes.dex放在dex2jar工具的目录下,然后执行命令
会在当前目录下生成class-dex2jar.jar文件
然后打开jd-gui,将class-dex2jar.jar文件拖进去,就可以看到反编译出来的源代码。

可以看到反编译的代码和原本的代码差别不大,主要差别是原来的资源引用全都变成了数字。
下面我们来修改这个apk的内容。
首先我们将apk拷贝到apktool工具目录下,执行命令apktool d app-release.apk。
生成的目录中包含smali文件夹
然后找到我们的主要的类MainActivity.smali,文件内容如下:
.class public Lcom/viclee/decompiledemo/MainActivity;
.super Landroid/support/v7/app/AppCompatActivity;
.source "MainActivity.java"
# interfaces
.implements Landroid/view/View$OnClickListener;
# static fields
.field private static final TAG:Ljava/lang/String; = "MainActivity"
# instance fields
.field private btn:Landroid/widget/Button;
# direct methods
.method public constructor <init>()V
.locals 0
剩余6页未读,继续阅读
资源评论


weixin_38686924
- 粉丝: 14
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 关于加强城建档案管理信息化建设的探讨(1).docx
- 软件工程专业大学生自我鉴定3篇(1).doc
- 计算机硬件实习报告内容(1).docx
- 自动化设备内部外部验收规范(1).doc
- 互联网+背景下邵阳地区智能物流体系构建策略研究(1).docx
- 卷积神经网络基础:3、基于Pytorch框架的AlexNet的CPU、GPU实现
- 全国计算机一级基础知识复习资料(1).doc
- 浅谈计算机多媒体在小学数学教学中的应用(1).docx
- 【推荐下载】我国代工商正在生产自动化领域赶超日韩(1).doc
- authorware7教程-详解PPT学习课件.ppt
- 浅析多媒体计算机技术在广播电视工程中的应用-1(1)(1).docx
- 计算机专业大学生自我鉴定12篇(1).doc
- 国家开放大学C语言程序设计A期末考试复习资料汇编(1).docx
- [计算机硬件及网络]第八章-省煤器和空预器(1).ppt
- 碟片出租后台数据库设计(1).docx
- ASP-NET-人事工资管理系统设计与实现(1).doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
