安卓逆向-自毁程序密码apk逆向

首先用jadx打开发现没有加固

在这里插入图片描述

因为密码校验在主界面,于是在先用apktool反编译得到AndroidManifest.xml,得到主界面main的信息,然后在jadx中找到对应的声明位置

在这里插入图片描述
在这里插入图片描述

观察校验代码的一些特征

##### 校验位置

于是较好的解决方案是,hook住securityCheck函数,将该函数的返回值改成True,这样的话无论密码输入什么app都能进入下一个界面

在这里插入图片描述

按步骤运行
# adb连接mumu模拟器
adb connect 127.0.0.1:7555
# 打开模拟器的命令终端
adb shell
cd /data/local/tmp
# 执行
./frida-server-14.2.11-android-x86
# 在开发电脑windows运行 端口转发到PC
adb forward tcp:27043 tcp:27043
adb forward tcp:27042 tcp:27042
# 然后在模拟器让app运行起来,运行py文件进行hook
成功hook

在这里插入图片描述

py文件在:E:\1A爬虫课程 平哥\爬虫课程 平哥\叶森\猿人学-爬虫进阶课\section2-安卓逆向\逆向工具及演示APP\AliCrackme_密码在so文件_hook.py
apk在:E:\1A爬虫课程 平哥\爬虫课程 平哥\叶森\猿人学-爬虫进阶课\section2-安卓逆向\逆向工具及演示APP\AliCrackme_密码在so文件.apk
import frida, sys

def on_message(message, data):
    if message['type'] == 'send':
        print("[*] {0}".format(message['payload']))
    else:
        print(message)

jscode = """
Java.perform(function(){
    // 给类一个新的对象
    var Testsig = Java.use('com.yaotong.crackme.MainActivity');
    // 定位函数,改写类里的函数,implementation是执行的意思,是固定写法
    Testsig.securityCheck.implementation = function(str){
        send('I am here');
        return true;
        };
    });
"""
# 定位jar包
process = frida.get_usb_device().attach('com.yaotong.crackme')
# 传入上面的js代码创造脚本
script = process.create_script(jscode)
# 接受信息打印信息模块
script.on('message', on_message)
print('[*] Running')
script.load()
sys.stdin.read()
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值