0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

逆向基础题:安装包是11.ab,要求密码验证登陆

Q哥学逆向 来源:Linux逆向 作者:Linux逆向 2020-11-02 11:40 次阅读

题目来源:2019XCTF MOBILE 第三题 题目:安装包是11.ab,要求密码验证登陆。 知识点:Frida objection,SQLCipher加解密,Android备份和还原。 解题过程: 根据Android备份和还原知识,知道ab文件为backup文件,可以利用abe工具解压,得到如下文件。

取出base.apk,拉入JADX分析,根据Android数据库SQLCipher加解密知识,加密的数据库密码是getWritableDatabase函数参数决定的。

下面我们利用X86模拟器安装apk和frida-servr-android-X86,然后利用Frida Objection打印出getWritableDatabase函数的入参来获取数据库密码。 首先静态分析,发现getWritableDatabase定义在net.sqlcipher.database.SQLiteOpenHelper类中,利用objection确认下getWritableDatabase原型。

然后我们hook这个getWritableDatabase函数,打印返回值、调用栈和参数信息

根据源码分析getWritableDatabase是在MainActivity类的a函数中调用的,而a函数在OnCreate中被调用,我们打开apk后,getWritableDatabase函数其实已经执行完毕了。所以我们采用堆上调用实例方法的方式。这里注意我们尝试在启动objection时添加参数-d或--startup-command=“android hooking watch…”是没法hook到MainActivity类的a函数的。 第一,查看MainActvity类中所以方法列表,可以看到a函数。

第二,查看MainActvity实例的handle值。

第三,触发实例方法a,如下所示,可以看到数据库密码是“ae56f99”。

拿到数据库密码后可以用工具查看数据库信息,根据代码知道SQLCipher版本是3.4.0。

所以下图中选择SQLCipher 3,如下所示

这样得到flag值,如下光亮处所示,很明显这是base64加密数据。

直接进行base64解码,这样我们就得到了flag为Tctf{H3ll0_Do_Y0u_Lov3_Tenc3nt!}

责任编辑:xj

原文标题:逆向基础题十一:获取Flag

文章出处:【微信公众号:Linux逆向】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Flag
    +关注

    关注

    0

    文章

    11

    浏览量

    8089
  • 安装包
    +关注

    关注

    1

    文章

    14

    浏览量

    3380
  • apk
    apk
    +关注

    关注

    0

    文章

    22

    浏览量

    4738

原文标题:逆向基础题十一:获取Flag

文章出处:【微信号:Reverse16,微信公众号:Q哥学逆向】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    防火墙登陆不上的问题排查

    防火墙没有其它找回密码的方法,若密码忘记,只能恢复出厂之后用初始密码admin登陆,恢复出厂方法:设备断电,按住设备面板上的clr孔,然后上电,直到面板上stat灯和alarm灯边成红
    发表于 04-19 10:11 35次阅读
    防火墙<b class='flag-5'>登陆</b>不上的问题排查

    在进行cubemx环境搭建时,安装H7系列的安装包直接崩溃,闪退怎么解决?

    在进行cubemx环境搭建时,一切正常,但是安装H7系列的安装包时,无任何报错,直接崩溃,闪退,并且闪退后cubemx无法正常使用,除非再次安装,这个问题挺大的,我试过6.7 6.8 6.9 cubeIDE有同样的问题。该问题稳
    发表于 03-12 06:21

    下载的free_tricore_entry_tool_chain里的Compiler安装包时出现闪退,安装不了是为什么?

    为什么我打开我下载的free_tricore_entry_tool_chain里的Compiler安装包时出现闪退,安装不了啊?求助
    发表于 02-20 07:13

    AGM MCU IDE安装使用方法

    , Linux, Windows 安装包:vscodeusersetup-x64-1.62.3.exe b.安装(右键“以管理员身份运行”) 勾选【我同意此协议】,点击【下一步】 选择安装目录(*建议目录以
    发表于 12-29 12:05

    【飞腾派4G版免费试用】飞腾派初体验

    系统接上无线鼠键,上电,启动很快用户名user密码user 登陆后桌面 连接wifi 更新系统sudo apt updatesudo apt upgrade SSH登录连接wifi后
    发表于 12-17 22:43

    如何验证ROS是否安装成功 ubuntu20.04教程

    验证ROS是否安装成功 按正常来说ROS到这里就安装完成了,现在我们来验证一下,输入以下命令: roscore 如果出现了以下的问题:Command ‘roscore’ not fou
    的头像 发表于 12-01 16:51 2052次阅读
    如何<b class='flag-5'>验证</b>ROS是否<b class='flag-5'>安装</b>成功 ubuntu20.04教程

    python运行环境的安装和配置

    环境的安装和配置,帮助您快速上手Python编程。 下载Python安装包 为了安装Python,我们首先需要下载Python的安装包。Python官方网站提供了各个版本的
    的头像 发表于 11-29 16:17 522次阅读

    AB编程软件及所有组态软件安装教程

    AB编程软件及所有组态软件授权及安装教程
    发表于 11-14 09:21 1次下载

    Windows11上Linux安装教程

    超简单,不安装虚拟机,Windows11运行Linux。
    发表于 10-24 15:11 376次阅读
    Windows<b class='flag-5'>11</b>上Linux<b class='flag-5'>安装</b>教程

    【KV260视觉入门套件试用体验】操作系统的安装

    的机器有没有安装 FTDI 驱动程序,并验证终端程序是否已连接至正确的 COM 端口。 入门套件QSPI 使用 SD 启动模式启动开发板,并加载 SD 内容以启动至 Linux。初始登录时,平台要求您设置
    发表于 10-24 08:37

    爬虫教程:验证码-突破点选登陆验证_第6节

    数据代码爬虫
    充八万
    发布于 :2023年08月06日 00:53:49

    安全光幕对安装环境有什么要求

    安全光幕对安装环境有什么要求
    的头像 发表于 06-27 15:23 276次阅读

    求提供NuMicro_ICP_programming_tool的安装包

    刚转的新唐MCU,想烧录器件时发现新唐官网竟不能下载工具软件了,谁能提供下NuMicro_ICP_programming_tool的安装包
    发表于 06-26 07:38

    python爬虫之某站JS加密逆向分析

    实现的目标:可以通过JS加密逆向后,得到加密参数,请求获取数据。此方法同样适用于被前端JS加密的用户名、密码爆破。
    的头像 发表于 05-05 15:40 879次阅读
    python爬虫之某站JS加密<b class='flag-5'>逆向</b>分析