Android 逆向学习#1

Android 逆向学习#1

学会使用apktool, keytool, jarsigner等工具

1、为后一位同学编写一个点击按钮出现Toast的app,并以apk的形式发送给学号后一位同学
2、对前一位同学发来的apk进行逆向,并将Toast中的文字改为自己的学号+姓名。
3、进一步修改前一位同学apk,将app名字改为自己的学号。

PS:我发给下一个同学的Toast是Rick&Morty

一、查看程序结构

收到上一位同学的文件在这里插入图片描述
尝试安装到nox里运行,结果如下:
在这里插入图片描述

也就是说,要找到********这串字符串。
我们根据页面布局可以得知,这串字符串来自button的监听时间,应该在MainActivity里,可以从这里出发。

二、反汇编程序

用apktool进行java的反汇编,在cmd中使用时用绝对路径或者在系统环境变量中添加目录
在这里插入图片描述
使用命令apktool查看相关命令
在这里插入图片描述
输入命令

apktool d app-debug.apk -o ./decode -f

意思是选定app-debug.apk作为目标解码输出为子目录decode,-f是直接覆盖
在这里插入图片描述
可以看到生成新文件decode
在这里插入图片描述
在decode目录下按照如下路径可以找到MainActivity
在这里插入图片描述
在这里插入图片描述
用记事本或者其他java代码查看工具(UE)等打开,可以找到字符串
在这里插入图片描述
在这里更改为学号+姓名
在这里插入图片描述
保存并关闭

三、打包程序

在cmd中用apktool打包,使用命令

apktool b ./decode -o fake.apk -f

意思是选定decode打包编译成fake.apk文件
在这里插入图片描述
这时候生成了一个apk文件,但是这个文件是无法安装成功的,因为它缺少数字签名,是无法认证的
在这里插入图片描述
在这里插入图片描述

那么我们手动添加一个key即可

四、添加签名

我们用keytool来添加签名,keytool.exe是jdk编译自带的,在windows中直接搜索,打开目标位置可以看到;jarsigner也在这个目录下,将这个bin的路径添加到环境变量即可
在这里插入图片描述
在这里插入图片描述
输入keytool,查看建议使用说明,或者用下面的-command_name -help获取详细用法
在这里插入图片描述
输入命令:

keytool -genkeypair -keyalg RSA -validity 100 -keystore rsa.keystore -alias mykeypair

意思是生成一个使用RSA,有效期100天的rsa.keystore文件,mykeypair用以索引证书链
自定义密钥库口令,随意填写或直接多次回车跳到最后确定选Y结束,最后可以再次回车
在这里插入图片描述

可以看到生成了一个keystore文件
在这里插入图片描述
最后使用jarsigner将key和修改后的文件合成
使用命令:

jarsigner -keystore rsa.keystore fake.apk mykeypair

在这里插入图片描述
生成新的fake文件
在这里插入图片描述

五、验证

安装成功,打开发现已经更改为我们的学号+姓名
在这里插入图片描述

六、更改文件名

现在的文件名是My Application,在Android Studio中,设定在Manifest.xml的lable中
在这里插入图片描述
打开Manifest文件,查找label或者其他查找方式找到这段字符,更改为自己的学号
在这里插入图片描述
在这里插入图片描述
保存,并重新进行步骤三至五
可以看到安装的程序名已经变了
在这里插入图片描述
内容也是修改后的内容
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值