当前位置: 首页 > news >正文

Android逆向题解-boomshakalaka-3-难度5

这个app 是一个cocos游戏,没有用脚本实现,纯c++实现。
题目描述:play the game, get the highest score
题目要求是玩游戏得到最高分就可以得到flag,是写到配置文件的,初始flag值看着是base编码的。
在这里插入图片描述
在这里插入图片描述
核心代码在so里面的ControlLayer::updateScore函数
判断a2的值然后往配置文件DATA字段写入数据

if ( a2 <= 0x3B9ACA00 ){v4 = cocos2d::CCUserDefault::sharedUserDefault(this);sub_3A34D8(v21, &byte_3F92A0, v19);cocos2d::CCUserDefault::getStringForKey(v20, v4, &v33, v21);v5 = sub_3A1DDC(v21);if ( a2 == &dword_64 ){v6 = cocos2d::CCUserDefault::sharedUserDefault(v5);std::operator+<char>(v22, v20, "MW");cocos2d::CCUserDefault::setStringForKey(v6, &v33, v22);v7 = v22;}else if ( a2 == &stru_254.st_value ){v8 = cocos2d::CCUserDefault::sharedUserDefault(v5);std::operator+<char>(v23, v20, "Rf");cocos2d::CCUserDefault::setStringForKey(v8, &v33, v23);v7 = v23;}else if ( a2 == &stru_2B4.st_size ){v9 = cocos2d::CCUserDefault::sharedUserDefault(v5);std::operator+<char>(v24, v20, "Rz");cocos2d::CCUserDefault::setStringForKey(v9, &v33, v24);v7 = v24;}else if ( a2 == &stru_BB4.st_value ){v10 = cocos2d::CCUserDefault::sharedUserDefault(v5);std::operator+<char>(v25, v20, "Bt");cocos2d::CCUserDefault::setStringForKey(v10, &v33, v25);v7 = v25;}else if ( a2 == &stru_15D4.st_info ){v11 = cocos2d::CCUserDefault::sharedUserDefault(v5);std::operator+<char>(v26, v20, "RV");cocos2d::CCUserDefault::setStringForKey(v11, &v33, v26);v7 = v26;}else if ( a2 == &stru_26A4.st_size ){v12 = cocos2d::CCUserDefault::sharedUserDefault(v5);std::operator+<char>(v27, v20, "9Z");cocos2d::CCUserDefault::setStringForKey(v12, &v33, v27);v7 = v27;}else if ( a2 == &stru_4644.st_info ){v13 = cocos2d::CCUserDefault::sharedUserDefault(v5);std::operator+<char>(v28, v20, "b1");cocos2d::CCUserDefault::setStringForKey(v13, &v33, v28);v7 = v28;}else if ( a2 == &stru_15AD4.st_info ){v14 = cocos2d::CCUserDefault::sharedUserDefault(v5);std::operator+<char>(v29, v20, "Vf");cocos2d::CCUserDefault::setStringForKey(v14, &v33, v29);v7 = v29;}else if ( a2 == &stru_18694.st_info ){v15 = cocos2d::CCUserDefault::sharedUserDefault(v5);std::operator+<char>(v30, v20, "S2");cocos2d::CCUserDefault::setStringForKey(v15, &v33, v30);v7 = v30;}else{if ( a2 != 1000000000 ){
LABEL_25:v17 = cocos2d::CCString::createWithFormat("%d", a2);(*(**(v18 + 66) + 428))(*(v18 + 66), *(v17 + 20));return sub_3A1DDC(v20);}v16 = cocos2d::CCUserDefault::sharedUserDefault(v5);std::operator+<char>(v31, v20, "4w");cocos2d::CCUserDefault::setStringForKey(v16, &v33, v31);v7 = v31;}

逻辑就是根据玩游戏的得分拼接上面函数里面的的字符串;
玩几次之后查看配置文件数据base64解码可以看到出现了部分flag,对比上面的代码补齐字段;
base64解码就出来了。
在这里插入图片描述

相关文章:

Android逆向题解-boomshakalaka-3-难度5

这个app 是一个cocos游戏&#xff0c;没有用脚本实现&#xff0c;纯c实现。 题目描述:play the game, get the highest score 题目要求是玩游戏得到最高分就可以得到flag&#xff0c;是写到配置文件的&#xff0c;初始flag值看着是base编码的。 核心代码在so里面的ControlLay…...

Linux(Ubuntu 22.04)系统中固定串口

Linux&#xff08;Ubuntu 22.04&#xff09;系统中固定串口 文章目录 前言正文查看linux串口信息修改udev固化串口校验是否修改完成 注意 前言 在Linux系统中固定串口&#xff08;通常指的是串行通信接口&#xff0c;如/dev/ttyS0或/dev/ttyUSB0&#xff09;的原因有几个方面&…...

LeetCode - 209 - 长度最小的子数组

力扣209题 题目描述&#xff1a;长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, ..., numsr-1, numsr] &#xff0c;并返回其长度**。**如果不存在符合条件的子数组&…...

探索空间计算与VR中的手势跟踪新纪元:XHand框架详解

在虚拟现实(VR)和扩展现实(XR)技术日新月异的今天,手势跟踪作为实现沉浸式体验的关键技术之一,正逐步从概念走向成熟。今天,我们将深入探索一个创新的框架——XHand,它以其卓越的性能和先进的技术亮点,为空间计算与VR领域的手势跟踪带来了全新的解决方案。 XHand框架…...

leetcode + 项目复习

上午 Leetcode算法 参考文章——代码随想录 1. KMP 概念 主要应用 字符串匹配 主要思想 根据之前匹配的信息&#xff0c;当发现字符串不匹配时&#xff0c;避免从头开始匹配。 什么是前缀表&#xff08;next数组、prefix&#xff09; 是用来回退的&#xff0c;当文本串和…...

树莓派4/5:设置apt、pip、conda首选清华镜像源

一、教程简介 在中国大陆地区&#xff0c;使用清华镜像源可以显著缩短资源下载时间。 本教程介绍如何将清华镜像源设置为树莓派的apt、pip、conda下载的首选项&#xff08;默认项&#xff09;。其中&#xff0c;apt和pip为树莓派系统自带&#xff0c;conda则需要安装miniforg…...

NoSQL 之Redis集群模式

目录 案例概述 redis工作模式 主从模式 哨兵模式 redis cluster模式 Redis集群介绍 Redis集群的优势 Redis集群的实现方法 Redis-Cluster数据分片 Redis-Cluster的主从复制模型 Redis集群部署 案例部署 安装redis 检查redis的状态 修改配置文件 重启启动redis服…...

oracle rac

1、app连接oracle rac集群 连接到 Oracle RAC&#xff08;Real Application Clusters&#xff09;的多种配置方式 1. 使用 JDBC 连接字符串&#xff1a; 使用 JDBC 连接字符串是连接 Oracle RAC 的常见方式。连接字符串的格式如下&#xff1a; jdbc:oracle:thin:(DESCRIPTION…...

计算机毕业设计Python深度学习房价预测 房价可视化 链家爬虫 房源爬虫 房源可视化 卷积神经网络 大数据毕业设计 机器学习 人工智能 AI

Python深度学习房价预测系统开题报告 一、研究背景与意义 随着城市化进程的加速和房地产市场的不断发展&#xff0c;房价成为影响人们生活质量的重要因素之一。准确预测房价不仅有助于政府制定科学的房地产政策&#xff0c;还能为开发商提供市场参考&#xff0c;同时帮助购房…...

【Linux】学习Linux,需要借助具象化的思维

指令与图形化界面 导读一、命令行与图形化界面二、命令行与图形化界面的发展历程1.2.1 打字机的起源1.2.2 肖尔斯和格利登型打字机1.2.3 鼠标的发明1.2.4 图形化界面&#xff08;GUI&#xff09;的发展 三、命令行与图形化之间的联系3.1 图形化界面的人机交互3.2 命令行界面的人…...

R语言贝叶斯方法在生态环境领域技术教程

原文链接&#xff1a;R语言贝叶斯方法在生态环境领域技术教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247612056&idx5&snb170122cf5052cc7cb2d858606b9f158&chksmfa82777fcdf5fe69eec092410530e2900c98bcbb84e3d33c823705c948b4db96545bf282747a…...

mojo实现高阶函数(algorithm)

functional 实现高阶函数。 您可以从 algorithm 包导入这些 API。例如: from algorithm import map别名: ​Static1DTileUnitFunc = fn[Int](Int, /) capturing -> None: Signature of a 1d tiled function that performs some work with a static tile size and an off…...

先进制造aps专题二十四 云平台排产aps的方案设计

云平台排产aps的方案设计 针对对象是有排产需求无需定制的中小型工厂企业 一 网站功能&#xff08;b/s架构&#xff09; 1 前端界面 客户登录 排产项目管理 基础数据&#xff08;产品资料&#xff0c;产品工艺&#xff0c;工作日历&#xff0c;生产资源&#xff0c;工艺能力…...

JavaScript 逆向技巧总结

本节属于知识总结&#xff0c;只是对思路的梳理&#xff0c;不对具体内容进行展开 JS 逆向可以分为三大部分&#xff1a; 寻找入口&#xff0c; 调试分析&#xff0c; 模拟执行 寻找入口&#xff1a; 这是非常关键的一步&#xff0c;逆向在大部分情况下就是找一些加密参数到底…...

linux反向代理原理:帮助用户更好地优化网络架构

Linux反向代理原理详解 反向代理是一种在网络架构中常用的技术&#xff0c;尤其在Linux环境下被广泛应用。它可以帮助实现负载均衡、安全防护和请求缓存等功能。本文将深入探讨Linux反向代理的原理、工作机制以及其应用场景。 1. 什么是反向代理 反向代理是指代理服务器接收客…...

开源DevOps工具链管理:DevStream

DevStream&#xff1a;简化DevOps&#xff0c;加速创新- 精选真开源&#xff0c;释放新价值。 概览 DevStream&#xff0c;一个开源的DevOps工具链管理器&#xff08;DTM&#xff09;&#xff0c;由merico-dev团队精心打造&#xff0c;现已加入CNCF大家庭&#xff0c;并在devs…...

图数据库框架及其支持的开发语言和应用场景

图数据库框架及其支持的开发语言和应用场景 1. Neo4j 类型:原生图数据库特点:最流行的图数据库之一,使用Cypher查询语言,支持ACID事务,具有丰富的图算法库。支持的开发语言:Java, Python, JavaScript, Go, .NET, Ruby, PHP等。驱动和库:Neo4j Java Driver, Py2neo (Pyt…...

【Linux 18】核心转储

文章目录 &#x1f308; 一、什么是核心转储&#x1f308; 二、如何启动核心转储&#x1f308; 三、为什么有核心转储 &#x1f308; 一、什么是核心转储 核心转储 (Core Dump)&#xff1a;当一个进程异常终止时&#xff0c;会在触发进程崩溃的目录下生成一个以进程 pid 命名的…...

远程传输文件至服务器—spc 传输

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、SPC是什么&#xff1f;二、使用步骤1.进入 windows 客户端需要传输文件的目录。2.在该目录的路径栏输入 cmd&#xff0c;回车打开终端。3.确定服务器端 IP …...

HarmonyOS.FA开发流程

开发环境配置 1、DevEco Studio的安装 2、DevEcoStudio模拟运行工程&#xff1a;运行Tools->Device Manager&#xff0c;使用已认证的HW开发者联盟帐号Login&#xff08;在DP平台申请测试者权限&#xff09;&#xff0c;点击"允许"授权&#xff0c;选择一个设备运…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO&#xff1a;支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题&#xff1a;MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者&#xff1a;Yanyuan Chen, Dexuan Xu, Yu Hu…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

虚拟电厂发展三大趋势:市场化、技术主导、车网互联

市场化&#xff1a;从政策驱动到多元盈利 政策全面赋能 2025年4月&#xff0c;国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》&#xff0c;首次明确虚拟电厂为“独立市场主体”&#xff0c;提出硬性目标&#xff1a;2027年全国调节能力≥2000万千瓦&#xff0…...

C#学习第29天:表达式树(Expression Trees)

目录 什么是表达式树&#xff1f; 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持&#xff1a; 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...

C# 表达式和运算符(求值顺序)

求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如&#xff0c;已知表达式3*52&#xff0c;依照子表达式的求值顺序&#xff0c;有两种可能的结果&#xff0c;如图9-3所示。 如果乘法先执行&#xff0c;结果是17。如果5…...

如何应对敏捷转型中的团队阻力

应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中&#xff0c;明确沟通敏捷转型目的尤为关键&#xff0c;团队成员只有清晰理解转型背后的原因和利益&#xff0c;才能降低对变化的…...

CppCon 2015 学习:Time Programming Fundamentals

Civil Time 公历时间 特点&#xff1a; 共 6 个字段&#xff1a; Year&#xff08;年&#xff09;Month&#xff08;月&#xff09;Day&#xff08;日&#xff09;Hour&#xff08;小时&#xff09;Minute&#xff08;分钟&#xff09;Second&#xff08;秒&#xff09; 表示…...

用递归算法解锁「子集」问题 —— LeetCode 78题解析

文章目录 一、题目介绍二、递归思路详解&#xff1a;从决策树开始理解三、解法一&#xff1a;二叉决策树 DFS四、解法二&#xff1a;组合式回溯写法&#xff08;推荐&#xff09;五、解法对比 递归算法是编程中一种非常强大且常见的思想&#xff0c;它能够优雅地解决很多复杂的…...