2024ctfshow元旦水友赛 RE re_signin

文章详细解析了一段C语言代码,涉及加密和解密过程,重点是使用异或操作和一个自定义的密钥生成函数。作者的目标是帮助读者理解加密函数的工作原理并进行逆向工程。

很简单的签到题,然而我把加密函数看花眼了

主要函数部分可以直接看到

41行 获取128个字符,v8算个长度,读入到回车就停止

45行 生成了一个key

46行 加密

47行 比对密文,s2已经给出

进encrypt看一下

对每一个字符,加上一个v7,再异或v7>>4,

v6是用来记录上次的result

逆向搓一下脚本

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

unsigned int generate_key(unsigned int s) {
    s = s * 0x5bd1e995 + 0x12345678;
    return (s >> 16);
}

void decryp
### CTFShow元旦水友概述 CTFShow平台不定期举办各类网络安全竞,其中元旦水友是一项面向广大安全爱好者的事活动[^1]。该比旨在通过实际操作提升参与人员的技术水平并促进社区交流。 #### 比详情 元旦水友通常会在每年年初举行,在特定的时间段内开放给注册用户参加。比形式多为解题模式(Jeopardy),涉及Web漏洞挖掘、逆向工程、密码学等多个方面的问题等待选手解答[^2]。 #### 参方式 任何对信息安全感兴趣的人士均可报名参。参与者需先访问CTFShow官方网站完成账号注册流程;之后关注官方公告栏发布的具体开通知链接进入对应的比页面即可加入挑战行列[^3]。 #### 相关攻略建议 对于初次接触此类竞的新手来说,提前学习一些基础的安全知识是非常有帮助的。可以尝试从简单的题目入手积累经验,比如练习常见的SQL注入攻击防范措施或是熟悉二进制文件分析工具Ghidra的操作方法等[^4]。另外,积极利用网络资源如GitHub上的开源项目以及各大技术论坛来拓宽视野也很重要。 ```python # 示例:使用Python编写一个简单脚本辅助解决某些类型的加密谜题 from Crypto.Cipher import AES import base64 def decrypt_aes_ecb(ciphertext, key): cipher = AES.new(key.encode(), AES.MODE_ECB) plaintext = cipher.decrypt(base64.b64decode(ciphertext)) return unpad(plaintext).decode() def unpad(data): padding_len = data[-1] if not (1 <= padding_len <= 16): raise ValueError('Invalid padding') for i in range(padding_len): if data[-i-1] != padding_len: raise ValueError('Invalid padding') return data[:-padding_len] ciphertext = "your_base64_encoded_cipher_text_here" key = "your_16_byte_key_here" print(decrypt_aes_ecb(ciphertext, key)) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值