客黑畅谈-【第一谈】为什么要进行反编译?

什么情况需要反编译

我们要想使APK成为我们可以阅读理解的文件就需要使用到反编译

  • 做某个功能不会做了,但是其他应用有相同功能,想知道他是如何实现的,那就需要查看他的APK源码,这时候就需要用到反编译。将APK反编译成我们可以看懂的代码,查找到关键代码,应用到我们自己的项目中。

  • 破解APK,查看源码找到访问链接及关键参数,然后可以自己写HTTP请求模拟参数访问,多用于软件市场刷量,发评论,这是一种恶意行为不建议使用。

反编译的目的

有安卓开发经验的同学一定知道,安卓使用的是JAVA语言,在项目编译成可安装到手机上的APK时候,.java源文件已经被编译成.class文件,.class文件是一组以8字节为基础单位的二进制流文件,我们是无法理解阅读的。你好
上面是把百度地图APK,后缀名换成zip,解压缩后的文件结构,有一定安卓基础的同学能看出来:

`assets`目录一般放的是.so文件(之后我也会讲解如何破解并且修改重新编译.so文件)
`lib`目录放的是使用的第三方JAR
`res`资源文件
`AndroidManifest.xml`是清单文件,现在打开里面是二进制字符,无法阅读理解(之后也会讲如何反编译清单文件)
`classes.dex`就是我们要用于反编译的文件

反编译结果

  • 反编译classes.dex文件后,通过Java Decompiler工具查看到的就是可以阅读理解的java代码

在这里插入图片描述

  • 可以通过AXMLPrinter2.jar工具将AndroidManifest.xml编译成可以阅读理解的文件
    在这里插入图片描述
  • 布局文件以及图片等都是可以直接查看的
    在这里插入图片描述

反编译使用到的工具

记住工具不是万能的,我们要多去尝试使用不同的工具去反编译文件,有的工具可以编译classes.dex,但是确不能编译AndroidManifest.xml,有的工具能查看编译出来的JAR文件,但是里面有的代码看不到,那就换一个查看工具。要多去尝试,总有惊喜等着你。

`ApkIDE`使用率比较高的一款一键式反编译工具,可以直接将APK拖进去,反编译后的文件可以直接查看
`AndroidKiller``ApkIDE`功能类似,也是一键式反编译工具
`dex2jar`直接反编译`classes.dex`文件
`AXMLPrinter2.jar`反编译`AndroidManifest.xml`文件
`ApkToolBox`功能很全,最强大的是jadx查看jar文件,查看到的代码很全
`IDA Pro`反编译.so文件,并进行修改文件重新编译成可执行文件

我会在后面章节中把工具整理好陆续分享给大家

反编译总结

反编译是一项很枯燥的事情,有可能你一天也找不到你想要的东西,但是贵在坚持,也许在某一刻,突然找到一个很细微的线索,你顺着这个线索就能发现一片新的‘大陆’。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值