Android静态分析之初级篇

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

内容简介:最近瞅着测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


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

查看所有标签

猜你喜欢:

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

维多利亚时代的互联网

维多利亚时代的互联网

[英] 汤姆·斯丹迪奇 / 多绥婷 / 后浪丨江西人民出版社 / 2017-8 / 38.00元

人类历史上的第一次大连接 回顾互联网的前世 预言互联网的未来 ……………… ※编辑推荐※ ☆《财富》杂志推荐的75本商务人士必读书之一 ☆ 回顾互联网的前世,颠覆你的思维,升级你对互联网的认知 ☆ 人类历史上一次全球大连接是维多利亚时期的电报时代,那时候也有疯狂的资本、 巨大的泡沫、网络新型犯罪、网络亚文化崛起……现在的互联网时代就是电报时代的重演;回顾那......一起来看看 《维多利亚时代的互联网》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码