babycrypt 自己出的第一道逆向题目 WP

简介: babycrypt 自己出的第一道逆向题目 WP

题目链接

babycrypt

WP

Patch掉反调试

先进行了Base32解密,之后是RC4加密

Base32编码表是RC4加密后存储的,动调得到

动调可以看出,经过base32编码密文会在首部添加M7WGC76B

之后密文进行RC4加密

动调得到第二处RC4加密的密钥

解密过程

def rc4(data, key):
   S =
list(range(256))
   j =
0
   
out = []
   
# Key-Scheduling Algorithm
   
for i in range(256):
       j = (j + S[i] + key[i %
len(key)]) % 256
       
S[i], S[j] = S[j], S[i]
   
# Pseudo-Random Generation Algorithm
   
i = j = 0
   
for char in data:
       i = (i +
1) % 256
       
j = (j + S[i]) % 256
       
S[i], S[j] = S[j], S[i]
       out.append(char ^ S[(S[i] + S[j]) %
256])
   
return bytes(out)
data =
bytes([0xff, 0x0e, 0x34, 0x42, 0xb3, 0x0a, 0xf6, 0x65, 0x87, 0x8a, 0x65, 0x1c, 0x4b, 0x5c, 0x54, 0xfc, 0x25, 0xb1, 0xc1, 0x18, 0x2c, 0xcf, 0xc6, 0x93, 0xc6, 0x8e, 0x50, 0xfc, 0x3d, 0x3e, 0x4d, 0x53, 0xf8, 0xb8, 0x2c, 0x93, 0xb0, 0x28, 0xe5, 0x1f])
key =
bytes([0x01, 0x02, 0x03, 0x04, 0x05])
decrypted = rc4(data
, key)
string = decrypted.decode(
'utf-8')
encoded = string[
7:]
print(encoded)

import base64


# 自定义 base32 编码表

base32_table = b"Z2CDEFGHIJKLMNOPQRSTUVWXY76543AB"


def decode_base32(text):

   return base64.b32decode(

       bytes(text.translate(bytes.maketrans(base32_table, b"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567")), 'utf-8')).decode(

       'utf-8')

encoded="KI7VAMLTL3UW43DFOJSXG3DJN7TQ===="

decrypted_text = decode_base32(encoded)

print("flag{"+decrypted_text+"}")

相关文章
|
Java Maven
SpringBoot用maven打出的jar只有几kb解决
SpringBoot用maven打出的jar只有几kb解决
822 0
|
10月前
|
存储 关系型数据库 数据库
【赵渝强老师】PostgreSQL的WAL预写日志文件
PostgreSQL数据库的物理存储结构包含多种文件,其中WAL(预写日志)用于确保数据完整性和高效恢复。WAL机制允许在不频繁刷新数据至磁盘的情况下,通过先写日志再改数据的方式,减少I/O操作,提高性能。每个WAL文件默认大小为16MB,位于pg_wal目录下,支持手动和自动切换。WAL不仅有助于数据恢复,还能显著降低I/O成本。
287 4
[HDCTF2019]Maze(初识逆向)
[HDCTF2019]Maze(初识逆向)
417 1
|
12月前
|
存储 安全
文件上传漏洞(六)一句话马图片
文件上传漏洞(六)一句话马图片
|
12月前
|
SQL 缓存 Java
揭秘物联网性能优化的终极攻略!提升系统效率的七大法宝
小米在物联网项目中遇到了性能优化问题,他从数据库、集群、硬件、代码、并行处理、JVM及操作系统等多个层面分享了优化经验。包括SQL优化、分库分表、缓存使用、水平扩容、分布式调度、硬件升级、代码分析、并行处理、GC调优及操作系统参数调整等。小米强调性能优化需结合实际情况,逐步提升系统响应速度与稳定性。欢迎留言交流,共同进步。关注他的微信公众号“软件求生”,获取更多技术干货。
275 0
|
数据采集 JavaScript 前端开发
同花顺股票数据逆向:Cookie加密和Hook注入
同花顺股票数据逆向:Cookie加密和Hook注入
1199 0
|
机器学习/深度学习 并行计算 编译器
AVX2指令集简介和代码示例
这篇文章介绍了AVX2指令集,它是Intel在2013年为提高处理器并行计算能力引入的SIMD技术。AVX2增强了整数运算,包括256位操作和位操作,还提供了FMA指令及更多广播和转换功能。与AVX相比,AVX2在图像处理和媒体编码等领域有显著优势。文章通过一个C代码示例展示了如何使用AVX2进行向量加法,并提醒编译时需确保支持AVX2指令集。
|
安全 网络安全 数据安全/隐私保护
Pikachu File Inclusion 通关解析
Pikachu File Inclusion 通关解析
|
Python Windows
怎么将 Python 项目打包成 exe?
这篇内容是一个关于使用Python和相关工具创建GUI应用并打包成Windows安装程序的教程摘要: - **环境**:Python 3.8,Tkinter(内置GUI库),PyInstaller 6.3.0,Inno Setup Compiler(用于创建安装包)。 - **基本流程**:在conda环境中创建一个独立的虚拟环境,编写一个使用Tkinter的GUI应用,添加图标,用PyInstaller将应用打包成单个可执行文件(exe),最后用Inno Setup Compiler将exe和相关文件打包成安装程序。
401 0