Android逆向(一)Android逆向工具(一)
Android逆向一Android逆向工具一最近一周时间在学习和研究Android逆向接下来一段时间写一系列Android逆向的博客来总结和记录自己所掌握的知识也希望为正在学习Android逆向的朋友带来一点帮助。目录一、前言二、apktool1.反编译2.回编译三、dex2jar四、jd-gui五、Apk Analyzer一、前言首先简单说一下自己对Android逆向的理解。Android逆向就是把已经编译好的apk通过使用一系列的工具获取到“源代码”。获取到源代码后我们可以替代和修改其中的一些代码重新打包生成新的apk。我们可以借鉴大牛的一些实现方式也可以拿来干一些“有趣”的事情。当然作为一名Android开发工程师我还是不希望自己的app被别人反编译被改的面目全非。因此接下来的这一系列博客仅作为自己的学习笔记吧。工欲善其事必先利其器。想要做好一件事必须使用好的工具android逆向也是如此。这篇博客总结三款常用的android逆向工具通过使用这三款android逆向工具可以轻松实现反编译获取源码。二、apktoolapktool是一款反编译工具。通过使用apktool可以获取apk源代码(smali代码)。修改smali代后可以回编译生成新的apk。然后生成签名文件打包签名。apktool具体使用如下:1.反编译1下载apktool.jar。建议去官网下载最新的jar官网下载地址:iBotPeaches / Apktool / Downloads — Bitbucket。下载最新的版本apktool/_2.4.0.jar下载完成后命名为akptool。我的apk路径为D:/ApkReverseTool/apktool.jar2把需要反编译的apk放在某一目录下例如F:/testapk/test.apk3打开cmd进入apktool所在目录:4输入命令java -jar apktool.jar d apk路径例如java -jar apktool.jar d F:/testapk/test.apk默认在apktool所在目录下生成反编译后的文件夹2.回编译1输入命令java -jar apktool.jar b apk反编译后的路径例如java -jar apktool.jar b D:/ApkReverseTool/test重新编译成apk。新生成的apk默认位置:D:/ApkReverseTool/test/dist2生成keystore。输入如下命令keytool -genkey -keystore F:/keystore/test.keystore -alias test -keyalg RSA -validity 10000输入口令再次输入口令接下来输入一系列东西。最后输入Y确认两次口令生成test.keystore。-keystore生成keystore的路径-aliaskeystor的名字-keyalg加密方式-validity证书有效天数3签名。输入如下命令jarsigner -verbose -keystore F:/keystore/test.keystore -signed jar F:/testapk/test2.apk D:/ApkReverseTool/test/dist/test.apk test-keystorekeystore路径-signedjar签名后生成apk路径回编译后apk路径keystore的名称三、dex2jardex2jar是将classes.dex转jar的工具。apk其实一种压缩文件把apk修改zip或者rar并且压缩后可以获取到classes.dex。classes.dex文件我们不能直接打开查看需要转为jar文件。dex2jar的具体使用如下:1.下载dex2jar(地址https://files.cnblogs.com/files/onelikeone/dex2jar-tools-2.1.zip)并解压重命名为dex2jar我的目录是D:/ApkReverseTool/dex2jar2.把需要转jar的apk命名为a.zip或者a.rar并且解压缩可以看到classes.dex。2.将classes.dex复制到d2j-dex2jar.bat文件所在目录3.打开cmd,进入d2j-dex2jar.bat所在目录。输入命令:d2j-dex2jar.bat classes.dex理论上可以生成classes-dex2jar.jar。在公司电脑上确实生成了但是在自己笔记本上面没有生成报错了。这是因为我在自己笔记本上设置的sdk版本是27也就是Android N 我原先下载的dex2jar是dex2jar2.0dex2jar2.0不支持Android N。因此后来下载的dex2jar2.1此问题解决四、jd-guijd-gui是查看jar文件的工具具体使用如下:1.下载jd-gui。官网下载地址Java Decompiler。下载第一个或者第四个都可以。2.双击打开jd-gui3.拖动classes-dex2jar.jar到jd-gui打开MainActivity.class可以看到源代码五、Apk AnalyzerAndroid Studio2.2版本之后增加了Apk Analyzer功能具体使用如下1、直接拖动需要反编译的apk到AndroidStudio2、在需要查看源代码的文件上右键选择show bytecode即可看到smali代码最后总结一下。其实apktool这三款工具用起来可以说是非常简单了。掌握了这三款工具的使用基本可以破解绝大多数没有“加固”的apk。Android Studio2.2自带的Apk Analyzer可以一键拖动反编译apk可以查看smali源代码但是文件是只读的不支持修改。在下一篇博客里将会介绍一款功能强大的新的反编译工具。《网络安全从零到精通全套学习大礼包》96节从入门到精通的全套视频教程免费领取如果你也想通过学网络安全技术去帮助就业和转行我可以把我自己亲自录制的96节 从零基础到精通的视频教程以及配套学习资料无偿分享给你。网络安全学习路线图想要学习 网络安全作为新手一定要先按照路线图学习方向不对努力白费。对于从来没有接触过网络安全的同学我帮大家准备了从零基础到精通学习成长路线图以及学习规划。可以说是最科学最系统的学习路线大家跟着这个路线图学习准没错。配套实战项目/源码所有视频教程所涉及的实战项目和项目源码学习电子书籍学习网络安全必看的书籍和文章的PDF市面上网络安全书籍确实太多了这些是我精选出来的面试真题/经验以上资料如何领取7ae8ac36b2a650.png)以上资料如何领取