re题目新手区练习

本文提供了一系列的RE(逆向工程)题目,适合新手练习。包括字符串匹配、灯的状态判断、十六进制比较、算法计算、脱壳获取flag、小端序问题等。每个题目都有一定的难度和陷阱,通过实践可以提升RE技能。
摘要由CSDN通过智能技术生成

re题目新手区练习

re1

od打开字符串搜一下。
DUTCTF{We1c0met0DUTCTF}

re2

随便乱输一下
zsctf{T9is_tOpic_1s_v5ry_int7resting_b6t_others_are_n0t}

emm,实质就是比较灯。这里没有算法,直接全nop就行了

re3

将输入的转为16进制与已知16进制串对比

#!/usr/bin/env python
# coding=utf-8
flag = ""
string = "437261636b4d654a757374466f7246756e"
for i in range(0, len(string), 2):
    flag += chr(int(string[i:i+2], 16))

print(flag)
#CrackMeJustForFun

re4

  1. 第一段输入0xcafe
  2. 第二段为就是8
  3. 第三段为h4cky0u
  4. 第四段 first * 31337 + (second % 17) * 11 + strlen(argv[3]) - 1615810207;
>>> 0xcafe
51966
>>> 8*25
200
>>> 51966*31337 + 8*11 + 7 - 1615810207
12648430
>>> hex(12648430)
'0xc0ffee'
>>> 

第一次带了0x没提交上。。

re5

upx -d 脱掉壳就拿到flag了。。

flag{Upx_1s_n0t_a_d3liv3r_c0mp4ny}

re6

>>> len(':\"AL_RT^L*.?+6/46')
17
#!/usr/bin/env python
# coding=utf-8
v7 = hex(0x65626D61726168)[2:]
v7 = [int(v7[i:i+2], 16) for i in range(0, len(v7), 2) ][::-1]
string = ':\"AL_RT^L*.?+6/46'
flag = ""
for i in range(len(string)):
    first = v7[i % 7]
    second = ord(string[i]) ^ first
    flag += chr(second)
print(flag)
# RC3-2016-XORISGUD

坑点,小端序列,我转成int后忘了倒序,一直是错的。。

re7

???
9447{This_is_a_flag}

re8

python写个算法跑一下

#!/usr/bin/env python
# coding=utf-8
List1 = [0x3A, 0x14, 0x00, 0x00, 0x36, 0x14, 0x00, 0x00, 0x37, 0x14, 0x00
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中的正则表达式(re模块)是一个用于处理字符串的强大工具,它可以用来匹配、查找、替换和分割字符串。以下是一些常用的正则表达式操作: 1. 导入re模块:`import re` 2. 匹配字符串:使用`re.match()`函数,如果字符串开头匹配正则表达式,则返回一个匹配对象;使用`re.search()`函数,如果字符串中有匹配的部分,则返回一个匹配对象;使用`re.findall()`函数,返回所有匹配的列表;使用`re.finditer()`函数,返回一个迭代器,包含所有匹配的元组。 3. 替换字符串:使用`re.sub()`函数,将匹配到的部分替换为指定的字符串。 4. 分割字符串:使用`re.split()`函数,根据匹配到的正则表达式分割字符串。 下面是一些练习题: 1. 编写一个程序,从输入的字符串中提取所有的数字。 解析:使用`re.findall()`函数,匹配所有的数字。 ```python import re def extract_numbers(s): return re.findall(r'\d+', s) input_str = "abc123def456" print(extract_numbers(input_str)) ``` 2. 编写一个程序,将输入的字符串中的所有字母转换为大写。 解析:使用`re.sub()`函数,将所有的小写字母替换为大写字母。 ```python import re def to_uppercase(s): return re.sub(r'[a-z]', lambda x: x.group().upper(), s) input_str = "Hello, World!" print(to_uppercase(input_str)) ``` 3. 编写一个程序,将输入的字符串中的所有单词逆序排列。 解析:首先使用`re.split()`函数分割字符串,然后使用`reversed()`函数逆序排列单词,最后使用`join()`函数将单词连接成字符串。 ```python import re def reverse_words(s): words = re.split(r'\s+', s) reversed_words = [''.join(reversed(word)) for word in words] return ' '.join(reversed_words) input_str = "Hello, World!" print(reverse_words(input_str)) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值