攻防世界(easy-apk)

2023-11-18

下载链接如下所示:https://adworld.xctf.org.cn/media/task/attachments/989ca07c3f90426fa05406e4369901ff.apk

使用JEB打开apk,如下所示:

可知获得输入后进行Base64编码,并进行判断是否与特定字符编码是否一致

打开Bse64New,可知其编码位置进行了改变,需要重新设计代码进行编程

python实现代码如下所示:

def Base64Decode(str_list):
    list_base = []
    a = str_list[0] << 2
    c = str_list[1] & 15
    b = str_list[1] >> 4
    a = a | b
    list_base.append(a)
    c = c << 4
    a = str_list[2] & 3
    b = str_list[2] >> 2
    c = c | b
    list_base.append(c)
    a = a << 6
    a = a | str_list[3]
    list_base.append(a)
    return list_base

CodingTable = 'vwxrstuopq34567ABCDEFGHIJyz012PQRSTKLMNOZabcdUVWXYefghijklmn89+/'
Ciphertext = '5rFf7E2K6rqN7Hpiyush7E6S5fJg6rsi5NBf6NGT5rs='

i = 0
flag = 'flag{'

while i <= (len(Ciphertext) - 1):
    list1 = []
    n = 0
    for k in range(4):
        if Ciphertext[i + k] == '=':
            list1.append(0)
            n = n + 1
        else:
            # 获取编码在编码表中的位置
            list1.append(CodingTable.index(Ciphertext[i + k]))
    print(list1)
    # 将4个字节转换为3个字节
    ba = Base64Decode(list1)
    print(ba)
    for j in range(3 - n):
        ch = chr(ba[j])
        flag = flag + str(ch)
    i = i + 4

flag = flag + '}'
print(flag)

获取最终flag:

flag{05397c42f9b6da593a3644162d36eb01}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

攻防世界(easy-apk) 的相关文章

随机推荐

  • 在SpringBoot中利用nacos对数据源进行动态刷新

    一 重写DruidAbstractDataSource类 这里为什么要重写这个类 因为DruidDataSource数据源在初始化后 就不允许再重新设置数据库的url和userName 注意 类所在的包名必须为 com alibaba dr
  • MySQL 触发器

    文章目录 1 简介 2 行级与语句级触发器 3 触发时机 4 触发器优缺点 5 创建触发器 语法 示例 6 查看触发器 7 删除触发器 参考文献 1 简介 触发器 Trigger 是与表关联的命名数据库对象 当表发生特定事件时激活 触发器的
  • 概念解析

    注1 本文系 概念解析 系列之一 致力于简洁清晰地解释 辨析复杂而专业的概念 本次辨析的概念是 合成孔径雷达中运动补偿和自聚焦的联系与差别 概念解析 合成孔径雷达运动补偿与自聚焦的关系研究 基于二维空变运动补偿的机动平台大斜视SAR稀疏自聚
  • java.lang.ClassCastException: java.lang.Long cannot be cast to java.util.Date at org.hibernate.type.TimestampType.deepCopyNotNul

    在配置一对多的时候 OneToMany mappedBy recevier cascade CascadeType REMOVE OneToMany mappedBy sender cascade CascadeType REMOVE Ma
  • 日常学习--练手

    1 page source爬取页面源码 from selenium import webdriver import re driver webdriver Chrome driver get https www cnblogs com ca
  • mysql中如何取得分组中最大值的数据?全网最有效的方法

    大家都知道 MySQL有分组查询子句 group by 面试官就问你了 不是让你找到一个表中最大的值 而是让你找到最大值的整行数据 这个时候简单的分组是搞不定了 需要用到 inner join 子句 先说下inner join 子句的作用
  • 【MyBatis】Mybatis使用SqlSessionFactory加载xml文件

    1 概述 MyBatis框架主要是围绕着SqlSessionFactory这个类进行的 这个的创建过程如下 定义一个Configuration对象 其中包含数据源 事务 mapper文件资源以及影响数据库行为属性设置settings 通过配
  • python read函数返回值_python read()方法定义及使用(实例解析)

    今天这篇文章我们来了解一下pythonread方法 不知道没什么关系 因为今天讲的就是python之中的read 方法 以及知晓read是什么意思 所以今天我们在今天的文章之中来了解一下吧 概述 read 方法用于从文件读取指定的字节数 如
  • 数据结构——非线性结构(图)

    文章目录 一 非线性结构的概述 二 图的基本概念 1 定义 2 无向图 有向图 2 1 无向图 2 2 有向图 2 3 简单图 2 4 多重图 3 顶点的度 出度 入度 3 1 对于无向图 3 2 对于有向图 4 边的权 带权图 网 5 点
  • React + Umi + Dva + Antd 简述 及创建项目过程简述

    React 你的第一个组件 React React是前端三大主流框架之一 你可以在React里传递多种类型的参数 如声明代码 帮助你渲染出UI 也可以是静态的HTML DOM元素 也可以传递动态变量 甚至是可交互的应用组件 安装react框
  • 学校智慧校园平台管理系统小程序开发制作

    学校智慧校园平台管理系统小程序开发制作 智慧校园服务的蓝海市场正在等待开发的状态中 而小程序恰好是一体化校园平台抢占这个市场的最佳方式 学校校园平台小程序提供在校大学生和老师校园智慧服务的小程序应用 主要功能有 提供查看考勤 成绩 课表 校
  • python树莓派 是什么_想用什么域名就用什么域名,用树莓派搭建个局域网DNS服务器。...

    局域网内的设备越来越多 用ip访问就比较麻烦了 另一方面我们用的公网的dns服务器可能会被投毒 这时候搭建一个本地的DNS服务器 想用什么域名就用什么域名 岂不是很舒服 拿起我们的树莓派 说干就干 准备材料 1 树莓派 这里是安装了64位操
  • chisel的命名高级用法

    从历史上看 Chisel 在可靠地捕获信号名称方面遇到了麻烦 造成这种情况的原因是 1 主要依靠反射来查找名称 2 使用 chiselName行为不可靠的宏 Chisel 3 4 引入了一个自定义的 Scala 编译器插件 它可以在声明信号
  • 关于ORA-12170 tns 连接超时等一系列Oracle无法正常登入问题

    文章转载来自于 https blog csdn net qq 40707682 article details 81667918 由于该篇文章成功解决了我的问题 所以记录一下 方便后面的小伙伴们学习 下面首先说说如何在出现ORA 12170
  • UML图示

    近些天学习设计 由于没有具体项目 原有项目也没有什么设计的概念 只是看相关的书籍 所以着实有些抓狂 然最抓狂的是对于UML那些表示法的生疏 虽然看过N 1遍相关的表示 但由于之前看过的设计图稿和自己画的东东本来就不多 因此出来类图 对象图等
  • 如何划分子网(例题讲解)

    44 12分 设某ISP拥有一个网络地址块201 123 16 0 21 现在该ISP要为A B C D四个组织分配IP地址 其需要的地址数量分别为985 486 246以及211 而且要求将低地址段的 IP 地址分配给 IP 地址需求量大
  • CSS 媒体查询 IPHONE PC 常用尺寸总结

    iPhone 5 SE media only screen and device width 320px and device height 568px and webkit device pixel ratio 2 height calc
  • Matlab 多核 多个CPU 并行运算

    Matlab并行运算 目前 新购置的电脑大部分都是多核的了 使用Matlab进行大量计算时如何有效利用多核呢 Matlab目前版本已经比较好的支持多核并行运算了 是用的Matlab版本是R2007b 电脑是双核的 先简单试试 gt gt m
  • 在 Python 中将字符串转换为数组

    使用 str split 方法将字符串转换为数组 例如 array string split str split 方法将在每次出现提供的分隔符时将字符串拆分为一个列表 string www jiyik com 将逗号分隔的字符串转换为数组
  • 攻防世界(easy-apk)

    下载链接如下所示 https adworld xctf org cn media task attachments 989ca07c3f90426fa05406e4369901ff apk 使用JEB打开apk 如下所示 可知获得输入后进行