Android静态分析之初级篇

栏目: Android · 发布时间: 5年前

内容简介:最近瞅着测APP的空档,翻了翻之前买的一本讲Android安全的书,书快要翻完了,但是里面还有实际操作的部分,书里面提到的工具跟目前用到的有一些出入,借着google总算把最简单的一部分搞定了,做个记录~操作系统:win10先从一个很简单的apk包入手,一个假登录页面:

最近瞅着测APP的空档,翻了翻之前买的一本讲Android安全的书,书快要翻完了,但是里面还有实际操作的部分,书里面提到的 工具 跟目前用到的有一些出入,借着google总算把最简单的一部分搞定了,做个记录~

操作系统:win10

先从一个很简单的apk包入手,一个假登录页面:

Android静态分析之初级篇 点击登录的时候弹出提示: Android静态分析之初级篇

代码用得是Android Studio3.5的版本,Android Studio的版本更新后,代码的书写方式也跟以前不一样了: Android静态分析之初级篇

主页面完成后,打包成apk文件,这里我试了三种打包方式,结果都是一样的:

未签名打包:

Android静态分析之初级篇

V1方式签名的正式包:

Android静态分析之初级篇 Android静态分析之初级篇

V2方式签名的正式包: Android静态分析之初级篇

打包完成后,找到apk包文件, Android静态分析之初级篇

使用apktool直接反编译: Android静态分析之初级篇

.\apktool.bat d -f .\app-release.apk -o test

解释:

d表示decode,意思是反编译,与之对应的是b ,building,编译

-f 表示force,强制删除目标目录

-o 表示输出地址

反编译后进入到test文件夹下的/smali/com/example/hellosmali中,可以看到有两个MainActivity的smali文件: Android静态分析之初级篇

其中MainActivity$onCreate$1.smali文件中有我们希望修改的onclick操作:

Android静态分析之初级篇

修改const-string v1值为:hello smali

Android静态分析之初级篇

这里修改完成后需要重新回编译为apk包,书上说的是用Android逆向助手,但是我试过后并没有打包成功: Android静态分析之初级篇

apktool也可以进行回编译: Android静态分析之初级篇

这里报错了,因为高版本的Android Studio和Gradle使用了aapt2打包apk,但是apktool却是使用的aapt1打包。按照网上教的办法在gradle.properties文件添加了android.enableAapt2=false: Android静态分析之初级篇

重新编译apk包,继续报错: Android静态分析之初级篇

这里点报错信息后定位到了minSdkVersion,我还以为是最低版本的问题,改为20后,还是报错……

想了想,又将apktool升级到了最新版本,重新回编译,还是报错,但是错误提示已经跟之前不一样了: Android静态分析之初级篇

删除了报错的xml文件后,又继续提示其他文件报错T_T……

本来打算下个3.0以下版本的android studio再重新打包个apk,不过后来在网上看到一个回答说可以把C:\Users\XX\AppData\Local\apktool\framework\1.apk删掉试试,抱着试试的心态删掉了1.apk,再重新回编译:

.\apktool.bat b .\test\

Android静态分析之初级篇

看着成功了,去dist目录下看果然有了新包: Android静态分析之初级篇

将新打的包安装到Android机上,又报错: Android静态分析之初级篇

NO_CERTIFICATES,没有签名,不能安装,那就先给apk包签个名好了,用得是jdk自带的keytool和jarsigner工具。

使用keytool工具先生成签名文件: Android静态分析之初级篇 Android静态分析之初级篇

.\keytool.exe -genkey -alias “test” -keyalg “RSA”

解释:

-genkey 创建新密钥

-alias 密钥别名

-keyalg 生成密钥对的算法

-validity ,后面跟天数,代表创建的证书有效期,也可默认

再使用jarsigner工具进行签名: Android静态分析之初级篇 Android静态分析之初级篇

.\jarsigner.exe -verbose -keystore C:\

Users\xxx\.keystore -signedjar C:\Users\xxx\app-debug-signed.apk C:\Users\xxx\app-debug.apk “test”

解释:

-verbose  签名/验证时输出详细信息

-keystore  密钥库位置

-signedjar 已签名的jar文件的名称

注意最后跟的是别名(alias),写错了会报错的: Android静态分析之初级篇

最后终于生成了一个签名包: Android静态分析之初级篇

再次安装: Android静态分析之初级篇

提示已经存在这个包了,删除手机上的原来的app,重新安装,成功: Android静态分析之初级篇

再点击登录按钮时,可以看到提示语已经被修改过了:

Android静态分析之初级篇 后记:

这是Android静态分析的开始,入门级的入门级,虽然简单,但是对于我这种菜鸟级的还是有不少的坑,看到预期的结果出现后还是有那么一丢丢成就感的^_^

*本文作者:梦里不知哪儿是哪儿,转载请注明来自FreeBuf.COM


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Algorithmic Beauty of Plants

The Algorithmic Beauty of Plants

Przemyslaw Prusinkiewicz、Aristid Lindenmayer / Springer / 1996-4-18 / USD 99.00

Now available in an affordable softcover edition, this classic in Springer's acclaimed Virtual Laboratory series is the first comprehensive account of the computer simulation of plant development. 150......一起来看看 《The Algorithmic Beauty of Plants》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具