[V&N2020 公开赛]strangeCpp

每天水一道题计划,打卡第三天

看着挺奇怪的,然后想动调,出现了一点错误

沉默,反思,不解,疑惑

然后观察,最开始有一堆数据,不知道干嘛的

对welcome中间的数据交叉引用发现

重点应该在异或

根据12-15行的算法,加上上一张图里的dword_140021190 <= 14549743,可以穷举暴力破解出result里的值

python 复制代码
result=0
for v8 in range(14549743):
    v7 = (((v8 << 8) ^ (v8 >> 12))*291)&0xFFFFFFFF 
    if (v7 == 607052314):
        result = v8
        break
    
print(result)
python 复制代码
result=0
for v8 in range(14549743):
    v7 = (((v8 << 8) ^ (v8 >> 12))*291)&0xFFFFFFFF # 原文是unsigned int--0~0xFFFFFFFF,输出的值需要截断
    if (v7 == 607052314):
        result = v8
        break
    
print(result)

a=[0x26, 0x2C, 0x21, 0x27, 0x3B, 0x0D, 0x04, 0x75, 0x68, 0x34,
  0x28, 0x25, 0x0E, 0x35, 0x2D, 0x69, 0x3D, 0x6F, 0x6D, 0x00]

for j in range(17):
    print(chr((v8^a[j])&0xff),end="")

然后根据flag提示,找个网站md5加密

相关推荐
认真的酒窝25 分钟前
自己动手开发编译器(十一)语义分析
java·开发语言
Dxy12393102161 小时前
MySQL索引完整教程:创建、查看、修改、删除与日常管理
前端·javascript·mysql
wbs_scy2 小时前
Linux C++ 高并发编程:线程池全链路深度解析,从原理到手撕实现
java·开发语言
JAVA面经实录9172 小时前
Linux 常用命令完整知识体系
java·linux·开发语言·汇编
贪玩的蛋挞2 小时前
C#与闭包
开发语言·c#
端庄的战斗机3 小时前
javascript 设计模式(文章很长,请自备瓜子,水果和眼药水)
开发语言·javascript·设计模式
Full Stack Developme3 小时前
Java LRU 与 LFU 算法及应用
java·开发语言·算法
C语言小火车5 小时前
C++ 堆排序深度精讲:基于完全二叉树的选择排序进化,最坏情况 O(n log n) 的稳定王者
开发语言·c++·算法·排序算法·堆排序
北冥you鱼5 小时前
abigen 最佳实践:从入门到精通,高效生成 Go 语言合约绑定
开发语言·golang·区块链
前端毕业班5 小时前
uni-app 小程序支持 teleport 了
前端·javascript·vue.js