千家信息网

Android中怎么实现静态分析

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇文章给大家介绍Android中怎么实现静态分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。先从一个很简单的apk包入手,一个假登录页面:点击登录的时候弹出提示:代码用得是A
千家信息网最后更新 2025年12月03日Android中怎么实现静态分析

这篇文章给大家介绍Android中怎么实现静态分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

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

点击登录的时候弹出提示:

代码用得是Android Studio3.5的版本,Android Studio的版本更新后,代码的书写方式也跟以前不一样了:

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

未签名打包:

V1方式签名的正式包:

V2方式签名的正式包:

打包完成后,找到apk包文件,

使用apktool直接反编译:

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

解释:

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

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

-o 表示输出地址

反编译后进入到test文件夹下的/smali/com/example/hellosmali中,可以看到有两个MainActivity的smali文件:

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

修改const-string v1值为:hello smali

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

apktool也可以进行回编译:

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

重新编译apk包,继续报错:

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

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

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

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

.\apktool.bat b .\test\

看着成功了,去dist目录下看果然有了新包:

将新打的包安装到Android机上,又报错:

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

使用keytool工具先生成签名文件:

.\keytool.exe -genkey -alias "test" -keyalg "RSA"

解释:

-genkey 创建新密钥

-alias 密钥别名

-keyalg 生成密钥对的算法

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

再使用jarsigner工具进行签名:

.\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),写错了会报错的:

最后终于生成了一个签名包:

再次安装:

提示已经存在这个包了,删除手机上的原来的app,重新安装,成功:

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

关于Android中怎么实现静态分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

文件 编译 版本 提示 方式 成功 密钥 工具 生成 登录 解释 静态 分析 代码 信息 内容 别名 更多 目录 还是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 csgo最有名自定义服务器 检测服务器安全攻 服务器搭建的网络环境叫什么 不羁小说软件开发 混沌与秩序数据库打不开了啊 业务模块软件开发功能全面 软件开发招投标参数 服务器多次点卡不出来 王者荣耀哪里有服务器终端 当前网络技术发展缺陷 搭建后端需要买服务器吗 武隆区常规软件开发流程欢迎咨询 国家使用什么网络安全保护制服 国内最贵的云服务器多少钱 数据库中可以添加表数据的关键字 大庆安全接入服务器地址 余干公路分局网络安全宣传 少年网络安全宣传周 服务器侧盖 物联网与网络安全研究生哪个好 长沙网络安全服务 atrust服务器地址连不上 徐汇区如何软件开发不二之选 花旗软件开发师 宁波卓智网络技术有限公司 胶州商城软件开发产品 网络安全信息教育心得体会 互联网与农业科技创新 手机之间导入数据库 网络安全src什么意思
0