elrond32

news/2025/1/17 15:07:27/

elrond32

一、查壳

无壳,32位

二、IDA分析
1.main

2.sub_8048538

要知道v2值,即unk_8048760

可以看出有效值之间间隔3个0,所以写代码,得出真正的值

python"> char = [15,   0,   0,   0,  31,   0,   0,   0,   4,   0, 0,   0,   9,   0,   0,   0,  28,   0,   0,   0, 18,   0,   0,   0,  66,   0,   0,   0,   9,   0, 0,   0,  12,   0,   0,   0,  68,   0,   0,   0, 13,   0,   0,   0,   7,   0,   0,   0,   9,   0, 0,   0,   6,   0,   0,   0,  45,   0,   0,   0, 55,   0,   0,   0,  89,   0,   0,   0,  30,   0, 0,   0,   0,   0,   0,   0,  89,   0,   0,   0, 15,   0,   0,   0,   8,   0,   0,   0,  28,   0, 0,   0,  35,   0,   0,   0,  54,   0,   0,   0, 7,   0,   0,   0,  85,   0,   0,   0,   2,   0, 0,   0,  12,   0,   0,   0,   8,   0,   0,   0, 65,   0,   0,   0,  10,   0,   0,   0,  20,   0, 0,   0]                   #Shife+E提取数据result = []for i in range(0, len(char), 4):result.append(f"{char[i]},")print(' '.join(result))---------------------------------------------------------15, 31, 4, 9, 28, 18, 66, 9, 12, 68, 13, 7, 9, 6, 45, 55, 89, 30, 0, 89, 15, 8, 28, 35, 54, 7, 85, 2, 12, 8, 65, 10, 20,
3.sub_8048414

发现是一个循环。sub_8048414(a1 + 1, 7 * (a2 + 1) % 11),这条语句会让a2 = 7*(a2+1)%11。另外,在case中少了2、8和10,也就是说,当a2值为2、8、10时,返回值即为1.所以a2没有2、8、10的值

由绿色框框对应的a1

可以发现是个递归,模拟一下得到a2(main中的是a2,这里代表a1)是105,115,101,110,103,97,114,100

所以sub_8048538里全了

三、写脚本
python"> chars =[15, 31, 4, 9,  28, 18,  66,  9,  12, 68,  13, 7, 9,  6, 45, 55, 89,  30,  0,  89,  15,  8,28, 35,54,7, 85,2, 12, 8,  65, 10, 20]a2 = [0,7,1,3,6,5,9,4,2]a1 = [105,115,101,110,103,97,114,100]flag = ""for i in range(len(chars)):flag += chr( chars[i] ^ (a1[i%8]) )print(flag)-----------------------------------------------------flag{s0me7hing_S0me7hinG_t0lki3n}


http://www.ppmy.cn/news/1563910.html

相关文章

【 PID 算法 】PID 算法基础

一、简介 PID即:Proportional(比例)、Integral(积分)、Differential(微分)的缩写。也就是说,PID算法是结合这三种环节在一起的。粘一下百度百科中的东西吧。 顾名思义,…

npm、yarn、pnpm包安装器差异性对比

特性npmyarnpnpm发布年份2010 年发布2016 年发布2017 年发布安装速度较慢(旧版本),但自 npm 5 后有所改善较快,尤其是在缓存方面极快,使用硬链接和全局缓存来提高速度包管理模式扁平化依赖,可能会发生重复依…

Jenkins与不同阶段测试的完美结合

软件测试是确保软件质量的关键环节。在这一过程中,集成工具如Jenkins无疑是我们的得力帮手。通过Jenkins,开发和测试团队可以实现持续集成和持续交付,最大限度地缩短从开发到发布的周期。而且,Jenkins能够与自动化测试工具无缝集成…

python密码学列置换加密解密程序

1.置换密码 置换密码(Permutation Cipher)又叫换位密码(Transposi-tionCipher),它根据一定的规则重新排列明文,以便打破明文的结构特性。置换密码的特点是保持明文的所有字符不变,只是利用置换打乱了明文字符的位置和次…

【C++】size_t全面解析与深入拓展

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯一、什么是size_t?为什么需要size_t? 💯二、size_t的特性与用途1. size_t是无符号类型示例: 2. size_t的跨平台适应性示例对…

基于pysptools实现端元提取及无监督光谱分类

本文通过一个光谱分解示例来对 SERC 高光谱数据文件进行无监督分类,使用PySpTools包进行端元提取,绘制光谱端元丰度图,并使用光谱角度映射(Spectral Angle Mapping)和光谱信息散度(Spectral Information Divergence)对光谱端元进行分类。 1 …

Bootstrap UI 编辑器

关于《Bootstrap UI 编辑器》的文章,我为您整理了以下信息: Bootstrap UI 编辑器是一种基于 Bootstrap 框架的图形化界面设计工具,它允许用户通过拖放组件和设置属性来创建网页布局,而无需编写复杂的 HTML、CSS 和 JavaScript 代…

深度学习-87-大模型训练之预训练和微调所用的数据样式

文章目录 1 大模型训练的阶段1.1 预训练1.1.1 全量预训练1.1.2 二次预训练1.2 微调2 预训练需要的数据2.1 清洗成的文本文档2.2 如何从文本文档学习2.3 常见预训练中文语料库3 微调需要的数据3.1 微调例子一:电商客服场景3.2 微调例子二:行政咨询场景3.3 微调数据长什么样3.3…