CTFShow的RE题(三)

数学不及格

strtol 函数

long strtol(char str, char **endptr, int base);
将字符串转换为长整型
在这里插入图片描述
就是解这个方程组了
主要就是 v4, v9的关系,
3
v9-(v10+v11+v12)=62d10d4673
v4 + v12 + v11 + v10 = 0x13A31412F8C
得到 3*v9+v4=19D024E75FF(1773860189695)
在这里插入图片描述

重点,斐波那契后面相差很大

又因为v4只在1至200的范围内,数字很小因此可以忽略不记求出v9的近似值

​ v9=1773860189695/3(591286729898)

然后找个在线网站查看一下斐波那契数列找到v9的近似值

在这里插入图片描述

可以看到数列的第58位与v9十分相似,因此可以得出v9为591286729879,v4为58,
得到四个参数,然后转字符串

output = "666c61677b6e65776265655f686572657d"
flag = [''] * (len(output) // 2)
mapTable = "30 31 32 33 34 35 36 37 38 39 61 62 63 64 65 66".split(' ')
#print(mapTable)
mapTable = [chr(int(i, 16)) for i in mapTable]
#print(mapTable)
# ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f']
for i in range(0, len(output), 2):high4Bit = mapTable.index(output[i])       # 得到高 4 位#print(high4Bit)low4Bit  = mapTable.index(output[i+1])     # 得到低 4 位curByte  = high4Bit << 4 | low4Bit         # 合成 char 型#print(curByte)flag[i//2] = chr(curByte)
print(''.join(flag))
#flag{newbee_here}

有时候不是完全代码可以得到所有信息,逆向真的比较考验脑洞啊!

flag白给

在这里插入图片描述
弹出两个对话框
在这里插入图片描述
都没有什么信息,说是用 dbg 试试搜索关键字错误
x32dbg 搜索字符串也不行
试试 OD 可以,有一个中文搜索插件,选择 ASCII 搜索
在这里插入图片描述
往下慢慢找
在这里插入图片描述

直接动调吧
在这里插入图片描述
就是这两个字符比较了,试试
在这里插入图片描述

主要考察的是对中文字符串的搜索,目前只知道有 OD ,之后有其他办法再记一下,有师傅知道也可以说一下。

签退

import string
c_charset = string.ascii_uppercase + string.ascii_lowercase + string.digits + '()'
flag = 'BozjB3vlZ3ThBn9bZ2jhOH93ZaH9'
#print(string.ascii_uppercase)def encode(origin_bytes):c_bytes = [('{:0>8}').format(str(bin(b)).replace('0b', '')) for b in origin_bytes]#print(c_bytes)resp = ''nums = len(c_bytes) // 3remain = len(c_bytes) % 3integral_part = c_bytes[0:3 * nums]while integral_part:tmp_unit = ('').join(integral_part[0:3])tmp_unit = [int(tmp_unit[x:x + 6], 2) for x in [0, 6, 12, 18]]resp += ('').join([c_charset[i] for i in tmp_unit])integral_part = integral_part[3:]if remain:remain_part = ('').join(c_bytes[3 * nums:]) + (3 - remain) * '0' * 8tmp_unit = [int(remain_part[x:x + 6], 2) for x in [0, 6, 12, 18]][:remain + 1]resp += ('').join([c_charset[i] for i in tmp_unit]) + (3 - remain) * '.'return rend(resp)def rend(s):def encodeCh(ch):f = lambda x: chr((ord(ch) - x + 2) % 26 + x)if ch.islower():return f(97)if ch.isupper():return f(65)return chreturn ('').join(encodeCh(c) for c in s)

看着挺吓人的,其实就是一个 base64 + 凯撒加密,偏移量为2
直接改一点就行了

if __name__ == '__main__':enc=''for c in flag:enc+=encodeCh(c)print(base64.b64decode(enc))
#b'flag{c_t_f_s_h_0_w_!}'

还是要增强代码阅读能力

生成映射表:

c_charset = string.ascii_uppercase + string.ascii_lowercase + string.digits + ‘()’

c_bytes = [(‘{:0>8}’).format(str(bin(b)).replace(‘0b’, ‘’)) for b in origin_bytes]
#change each byte into eight BIN string in c_bytes
f = lambda x: chr((ord(ch) - x + 2) % 26 + x)
# 凯撒密码
if ch.islower():
return f(97)
if ch.isupper():
return f(65)
return ch

   还是对字节的操作,一些复合写法需要学习,还有就是 lambda 写匿名函数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/41978.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows ipconfig命令详解,Windows查看IP地址信息

「作者简介」&#xff1a;冬奥会网络安全中国代表队&#xff0c;CSDN Top100&#xff0c;就职奇安信多年&#xff0c;以实战工作为基础著作 《网络安全自学教程》&#xff0c;适合基础薄弱的同学系统化的学习网络安全&#xff0c;用最短的时间掌握最核心的技术。 ipconfig 1、基…

Android Studio Run窗口中文乱码解决办法

Android Studio Run窗口中文乱码解决办法 问题描述&#xff1a; AndroidStudio 编译项目时Run窗口中文乱码&#xff0c;如图&#xff1a; 解决方法&#xff1a; 依次打开菜单&#xff1a;Help--Edit Custom VM Options&#xff0c;打开studio64.exe.vmoptions编辑框&#xf…

计算机专业怎么选择电脑

现在高考录取结果基本已经全部出来了&#xff0c;很多同学都如愿以偿的进入到了计算机类专业&#xff0c;现在大部分同学都在为自己的大学生活做准备了&#xff0c;其中第一件事就是买电脑&#xff0c;那计算机类专业该怎么选择电脑呢&#xff1f; 计算机专业是个一类学科&…

网络中的网络 NiN

一、全连接层问题 1、卷积层的参数&#xff1a;输入的通道数乘以输出的通道数再乘以窗口的高宽 2、全连接层的参数就是输入的元素个数乘以输出的元素个数&#xff0c;也就是输入的通道数乘以输入的高宽&#xff0c;再乘以输出的通道数乘以输出的高宽&#xff0c;贼大的量级 …

NLP简介

自然语言处理( Natural Language Processing, NLP)是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此&#xff0c;这一领域的研究将涉及自…

【算法】(C语言):冒泡排序、选择排序、插入排序

冒泡排序 从第一个数据开始到第n-1个数据&#xff0c;依次和后面一个数据两两比较&#xff0c;数值小的在前。最终&#xff0c;最后一个数据&#xff08;第n个数据&#xff09;为最大值。从第一个数据开始到第n-2个数据&#xff0c;依次和后面一个数据两两比较&#xff0c;数值…

关于用户咨询华为擎云L410笔记本安装Windows系统的说明

同样也是单位购买的华为擎云L410 KLVU-WDU0笔记本电脑&#xff0c;国产UOS系统某些软件用着不是很方便&#xff0c;用户咨询是否能够安装Windows10或者Windows7&#xff1f; 带着种种疑问也做了一些查询&#xff0c;之前也给一些国产设备更改过操作系统&#xff0c;之前的国产设…

计算机网络浅谈—什么是 OSI 模型?

开放系统通信&#xff08;OSI&#xff09;模型是一个代表网络通信工作方式的概念模型。 思维导图 什么是 OSI 模型&#xff1f; 开放系统互连 (OSI) 模型是由国际标准化组织创建的概念模型&#xff0c;支持各种通信系统使用标准协议进行通信。简单而言&#xff0c;OSI 为保证…

智能交通(3)——Learning Phase Competition for Traffic Signal Control

论文分享 https://dl.acm.org/doi/pdf/10.1145/3357384.3357900https://dl.acm.org/doi/pdf/10.1145/3357384.3357900 论文代码 https://github.com/gjzheng93/frap-pubhttps://github.com/gjzheng93/frap-pub 摘要 越来越多可用的城市数据和先进的学习技术使人们能够提…

Laravel框架详解及使用方法

Laravel是一款开源的PHP Web应用程序框架&#xff0c;它基于MVC&#xff08;模型-视图-控制器&#xff09;架构&#xff0c;以其简单易学、灵活性强、安全性高和强大的社区支持而广受开发者喜爱。以下是对Laravel框架的详细解析及使用方法&#xff1a; 一、Laravel框架简介 1…

刷题——在二叉树中找到最近公共祖先

在二叉树中找到两个节点的最近公共祖先_牛客题霸_牛客网 int lowestCommonAncestor(TreeNode* root, int o1, int o2) {if(root NULL) return -1;if((root->val o1) || (root->val o2)) return root->val;int left lowestCommonAncestor(root->left, o1, o2);i…

【pytorch19】交叉熵

分类问题的loss MSECross Entropy LossHinge Loss &#xff08;SVN用的比较多&#xff09; ∑ i m a x ( 0 , 1 − y i ∗ h θ ( x i ) ) \sum_imax(0,1-y_i*h_\theta(x_i)) ∑i​max(0,1−yi​∗hθ​(xi​)) Entropy&#xff08;熵&#xff09; Uncertainty&#xff08;…

ESP32——物联网小项目汇总

商品级ESP32智能手表 [文章链接] 用ESP32&#xff0c;做了个siri&#xff1f;&#xff01;开源了&#xff01; [文章链接]

IPsec连接 和 SSL连接

Psec和SSL连接是两种用于保障网络通信安全的技术 IPsec 通常用于连通两个局域网&#xff0c;主要是网对网的连接&#xff0c;如分支机构与总部之间&#xff0c;或者本地IDC与云端VPC的子网连接。适合站点间的稳定通讯需求以及对网络层安全有严格要求的场合。要求两端有固定的网…

UDP协议:独特之处及其在网络通信中的应用

在网络通信领域&#xff0c;UDP&#xff08;用户数据报协议&#xff0c;User Datagram Protocol&#xff09;是一种广泛使用的传输层协议。与TCP&#xff08;传输控制协议&#xff0c;Transmission Control Protocol&#xff09;相比&#xff0c;UDP具有其独特的特点和适用场景…

对数据采集、数据存储和数据处理流程

对数据采集、数据存储和数据处理流程 数据采集是指从各种来源收集原始数据的过程&#xff0c;这通常包括传感器、网站、社交媒体、API等。它涉及设置抓取工具、爬虫技术或直接从数据库获取数据。数据存储则涉及到将采集到的数据安全、高效地保存起来&#xff0c;常见的有关系型…

EDEM-FLUENT耦合报错几大原因总结(持续更新)

写在前面,本篇内容主要是来源于自己做仿真时的个人总结,以及付费请教专业老师。每个人由于工况不一样,所以报错原因千奇百怪,不能一概而论,本篇内容主要是为本专栏读者在报错时提供大致的纠错方向,从而达到少走弯路的效果,debug的过程需要大家一点点试算。问题解答在文 …

02STM32环境搭建新建工程

STM32环境搭建&新建工程 软件安装&#xff1a;开发方式&新建工程步骤&架构 个人心得 软件安装&#xff1a; 安装Keil5 MDK 安装器件支持包 软件注册 安装STLINK驱动 安装USB转串口驱动 开发方式&新建工程步骤&架构 STM32开发方式&#xff1a; 1.寄存器 …

什么是倒退型自闭症?

在星贝育园自闭症儿童康复学校&#xff0c;作为一位致力于自闭症儿童教育与康复的老师&#xff0c;我深知家长们面对“倒退型自闭症”这一概念时的困惑与忧虑。今天&#xff0c;就让我以专业的身份&#xff0c;为大家揭开倒退型自闭症的神秘面纱&#xff0c;共同探讨这一特殊现…

mysql中的递归函数recursive

递归部门 WITH recursive dept_tree AS (SELECTsd.mine_id AS mine_id,sd.dept_id AS dept_id,sd.tenant_id AS tenant_id,sd.order_num,sd.dept_name AS topName,sd.dept_id AS topIdFROMsys_dept sdWHERE<!-- 加上or后也会查询出dept节点 sd.parent_id #{deptId} or sd.…