反编译 android apk 文件看看java源代码

简介: 1,关于apk想要做android开发,要做的一个事情就是学习别人的代码。 先研究下别人的代码,看看咋写的有啥漏洞。学开源的项目也行。 开源项目不如真实的项目有代表性。同时开能看看别人的服务器接口是咋设计的。 比如你弄到一个apk文件。 apk首先是一个压缩文件,只要解压缩就好了。2,解开xxx.apk假设在服务器上面直接解压缩就行了。un

1,关于apk


想要做android开发,要做的一个事情就是学习别人的代码。
先研究下别人的代码,看看咋写的有啥漏洞。学开源的项目也行。
开源项目不如真实的项目有代表性。同时开能看看别人的服务器接口是咋设计的。
比如你弄到一个apk文件。
apk首先是一个压缩文件,只要解压缩就好了。

2,解开xxx.apk


假设在服务器上面直接解压缩就行了。

unzip /data/app/xxx.apk -d /data/app/xxx

里面会有几个文件
AndroidManifest.xml classes.dex resources.arsc META-INF res
其中classes.dex 就是相当于jar的文件了

3,解开dex文件


需要用到一个工具,反编译dex 工具
gitlab项目:
https://github.com/pxb1988/dex2jar
https://sourceforge.net/projects/dex2jar/?source=typ_redirect
工具可以在windows 和 linux 上面使用,也是java写的。
比如在linux上面:

sh ./dex2jar-2.0/d2j-dex2jar.sh /data/app/classes.dex -o /data/app/classes-dex2jar.jar

然后就转换成jar文件了。

4,使用jad反编译


jad是命令行的:
http://varaneckas.com/jad/

unzip /data/app/classes-dex2jar.jar -d /data/app/classes

-o参数,设置输出文件目录和名称:

jad -r -ff -d src -s java classes/**/*.class 

然后src里面就是源代码了。

5,最简单的方法


使用jd-gui直接打开
http://jd.benow.ca/
要什么自行车啊,直接就可以打开这个jar文件。
下载执行文件,直接执行就行。

灰常简单。

4,写完才知道还有一步到位的工具


https://github.com/skylot/jadx
直接有人写好了的工具,一步到位,直接分析apk文件的。

省了不少事情。超级赞。

5,总结


android反编译起来还是非常容易的,尤其是java还有反编译工具。
看起来就更容易了,jd-gui还是非常的好用的。gui的界面使用起来也是很方便的。
但是如果app做了混淆了,并且,app做了加壳把重要的代码,算法都放到了so文件里面
这个使用需要使用其他办法解决了。
一般要是研究些小应用的app他们是啥也没有做的,学习起来还是非常方便的。

本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/53025024 未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys

目录
相关文章
|
4月前
|
Java Unix Go
【Java】(8)Stream流、文件File相关操作,IO的含义与运用
Java 为 I/O 提供了强大的而灵活的支持,使其更广泛地应用到文件传输和网络编程中。!但本节讲述最基本的和流与 I/O 相关的功能。我们将通过一个个例子来学习这些功能。
235 1
|
7月前
|
监控 Java API
Java语言按文件创建日期排序及获取最新文件的技术
这段代码实现了文件创建时间的读取、文件列表的获取与排序以及获取最新文件的需求。它具备良好的效率和可读性,对于绝大多数处理文件属性相关的需求来说足够健壮。在实际应用中,根据具体情况,可能还需要进一步处理如访问权限不足、文件系统不支持某些属性等边界情况。
364 14
|
9月前
|
Android开发 开发者
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
本文详细介绍了如何通过自定义 `attrs.xml` 文件实现 Android 自定义 View 的属性配置。以一个包含 TextView 和 ImageView 的 DemoView 为例,讲解了如何使用自定义属性动态改变文字内容和控制图片显示隐藏。同时,通过设置布尔值和点击事件,实现了图片状态的切换功能。代码中展示了如何在构造函数中解析自定义属性,并通过方法 `setSetting0n` 和 `setbackeguang` 实现功能逻辑的优化与封装。此示例帮助开发者更好地理解自定义 View 的开发流程与 attrs.xml 的实际应用。
267 2
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
|
9月前
|
Java Android开发
Android studio中build.gradle文件简单介绍
本文解析了Android项目中build.gradle文件的作用,包括jcenter仓库配置、模块类型定义、包名设置及依赖管理,涵盖本地、库和远程依赖的区别。
815 19
|
7月前
|
存储 Java 编译器
深入理解Java虚拟机--类文件结构
本内容介绍了Java虚拟机与Class文件的关系及其内部结构。Class文件是一种与语言无关的二进制格式,包含JVM指令集、符号表等信息。无论使用何种语言,只要能生成符合规范的Class文件,即可在JVM上运行。文章详细解析了Class文件的组成,包括魔数、版本号、常量池、访问标志、类索引、字段表、方法表和属性表等,并说明其在Java编译与运行过程中的作用。
209 0
|
8月前
|
存储 Java 数据安全/隐私保护
Java技术栈揭秘:Base64加密和解密文件的实战案例
以上就是我们今天关于Java实现Base64编码和解码的实战案例介绍。希望能对你有所帮助。还有更多知识等待你去探索和学习,让我们一同努力,继续前行!
565 5
|
7月前
|
存储 人工智能 Java
java之通过Http下载文件
本文介绍了使用Java实现通过文件链接下载文件到本地的方法,主要涉及URL、HttpURLConnection及输入输出流的操作。
539 0
|
9月前
|
存储 XML Java
Android 文件数据储存之内部储存 + 外部储存
简介:本文详细介绍了Android内部存储与外部存储的使用方法及核心原理。内部存储位于手机内存中,默认私有,适合存储SharedPreferences、SQLite数据库等重要数据,应用卸载后数据会被清除。外部存储包括公共文件和私有文件,支持SD卡或内部不可移除存储,需申请权限访问。文章通过代码示例展示了如何保存、读取、追加、删除文件以及将图片保存到系统相册的操作,帮助开发者理解存储机制并实现相关功能。
2333 2
|
8月前
|
网络协议 安全 Java
实现Java语言的文件断点续传功能的技术方案。
像这样,我们就完成了一项看似高科技、实则亲民的小工程。这样的技术实现不仅具备实用性,也能在面对网络不稳定的挑战时,稳稳地、不失乐趣地完成工作。
470 0
|
9月前
|
存储 安全 数据库
Android对抗反编译
本文介绍了通过反编译谷歌APK进行学习与防护的实践。作者利用工具Apktool反编译APK,并使用signapk进行二次签名,掌握smali文件格式以增强对APK结构的理解。文章详细说明了如何通过代码检查APP名称、包名和图标的一致性,防止篡改;同时探讨了核心数据加密、伪装及classes.dex文件CRC值验证等方法,提升反编译难度。附带的工具类代码提供了获取应用名称、版本号、包名及图标等功能的具体实现。适合对安卓安全与反编译感兴趣的开发者参考。
218 0

热门文章

最新文章

  • 1
    为什么微信发送的APP安装不了,.apk转化为.apk.1
    875
  • 2
    【03】微信支付商户申请下户到配置完整流程-微信开放平台创建APP应用-填写上传基础资料-生成安卓证书-获取Apk签名-申请+配置完整流程-优雅草卓伊凡
    766
  • 3
    Android历史版本与APK文件结构
    1296
  • 4
    Cocos2d-x 游戏开发-打包apk被默认自带了很多不必要的权限导致apk被报毒,如何在Cocos 2d-x中强制去掉不必要的权限-优雅草卓伊凡
    249
  • 5
    当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
    375
  • 6
    【03】完整flutter的APP打包流程-以apk设置图标-包名-签名-APP名-打包流程为例—-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈 章节内容【03】
    1218
  • 7
    【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
    440
  • 8
    apk安装包EXE,mis程序打包后报毒的正确处理方式-千万不要再人傻钱多被骗-真正的合法途径的处理方式才是正确的-apk安装包EXE,mis程序如何处理-优雅草央千澈
    428
  • 9
    使用Kivy创建“Hello World”应用并打包成APK
    2126
  • 10
    使用keytool查看Android APK签名
    2158