re:从零开始的re世界生活
re:从零开始的re世界生活
bugku
1.入门逆向
先来品鉴一个签到题,其实我ida之前都是乱用,慢慢上手吧
将baby.exe用ida打开,然后去_main函数那里,选中ASCII码,按 r 转为字符
flag{Re_1s_S0_C0OL}
2.Easy_vb
直接点击后打开,发现按确认也没有反应
用Exeinfo PE看一下有没有加壳
32位-》只能用 x86 调试器:OllyDbg、32 位 IDA,不能用 64 位 IDA/x64dbg
Not packed= 没有加壳!,不需要脱壳,直接调试即可。try debug ollydbg提示直接丢 OD 调试。
IDA32 VS OllyDbg
IDA32 = 静态分析为主(不运行)
OllyDbg = 动态调试器(看运行时真实状态)
OllyDbg:
- F2:下断点
- F7:单步步入(进入 call 函数)
- F8:单步步过(跳过 call)
- F9:继续运行程序
a.
这里先尝试用ida32做:
可以直接search到flag

b.尝试使用ollydbg
但其实这里最快还是直接搜索,,断点那些后面再学吧
MCTF{N3t_Rev_1s_E4ay} 改成 flag{N3t_Rev_1s_E4ay}就可以提交了
Easy_Re
又是一个exe
首先双击运行一下
输入失败之后会自动退出
放到exeinfo中,无壳32bit,先放到ida32看看,这次直接搜字符串失灵了
a.ida32
搜索“欢迎来到”,发现附近有一长串数字,按a
- R:只作用单个立即数,把一个数字转成单引号字符
66h → 'f',只能处理 1 字节。- A:作用一片内存数据,把连续的 db 字节序列,解析成完整 C 风格字符串,以
\0结尾。

DUTCTF{We1c0met0DUTCTF}
b.尝试一下ollydbg
搜索可以直接出
另一种办法是正常去调试,双击下方的 flag_get√\n

选中jnz那条,F2下断点,然后F9继续执行,弹窗后要求输入flag,随便输入123,然后F8单步继续运行,跳到错误分支,但是右侧寄存器出了flag

DUTCTF{We1c0met0DUTCTF}
mobile2(gctf)
一开始以为mobile题 第一次上手做会很难,毕竟这么多文件,
不过好像只是单纯的一个记事本查看就直接得到flag了,,,
游戏过关
额其实我没看懂题目啥意思,不过随便按了几下居然出来了
zsctf{T9is_tOpic_1s_v5ry_int7resting_b6t_others_are_n0t}
然后我们尝试正常做法去做
exeinfo一下,32bits 无壳
接下来用ida32,直接搜字符串不行,试试用ollydbg动态的方式获得

网上看到这个函数的push处,可以知道是从00E27AB4跳过来的,然后再跳到00E2F66C,,这里看到有八个jnz,应该就是对应游戏的8个判断
又因为
1 | If m of the Nth lamp is 1,it's on ,if not it's off……When all lamps are on,flag will appear |
要让判断都为1
这里选择修改源码,让无论哪个分支到最后都跳转到出flag处

保存后,随便输入然后运行,出了

signin
解压后是一个apk文件,同样尝试丢到exeinfo里面,可惜解不了
将apk放到jadx中,反编译成为java源码
关注到里面还有一个apk1,打开后是有几个比较有意思的函数getFlag()和checkPassword()

1 | public class MainActivity extends AppCompatActivity { |

0x7f0b0020,而且是个string,去string里面看一下
发现有一串像是base64的东西
然后根据checkPassword()提示,取反然后base64解码

reverse后的字符串为“ZmxhZ3tIZXIzX2k1X3kwdXJfZjFhZ18zOWZiY199”
base64解密后为flag{Her3_i5_y0ur_f1ag_39fbc_}
love
一个exe程序,先双击,但是我这类找不到dll,没办法打开
放到exeinfo看看,32bits 无壳
先用ida32看看,看到main_0
1 | .data:0041A034 Str2 db 'e3nifIH9b_C@n@dH',0 ; DATA XREF: _main_0+142↑o |
然后奇怪的函数sub_4110BE,其实就是base64的编码,不过这里是点到这个aAbcdefghijklmn发现的
1 | for ( i = 0; i < 3 && v11 >= 1; ++i ) |
所以来理清一下思路
1 | 输入flag,一个str |
1 | str2="e3nifIH9b_C@n@dH" |
解得:e2lfbDB2ZV95b3V9,base64解码,得到 {i_l0ve_you}
树林的小秘密
exe 双击,让我input flag,随便输入报错后就会退回
尝试exeinfo,64bits而且,是pyinstall弄出来的exe
1 | Big sec. 01 [ .text ] , try internal ( .Zlib Ripper and unpacker - many file possible ) |
pyinstxtractor‑ng 是拆包工具(把 exe → 提取 pyc)
pycdc 是反编译工具(pyc → py 源码)
- 先进行pyinstxtractor‑ng 解包

然后用pycdc 把pyc变成py

这里看到是base64,拿工具进行解码flag{my_name_is_shumu}
马老师杀毒卫士
打开是一个exe和一个mp3,exe打开是一个自制的杀毒软件,并没有看到什么信息
放到exeinfo试一试 -》 无壳32bits
然后没找到main,从string那里直接搜一下 在搜索}的时候看到了一个疑似栅栏密码的:
1 | .rdata:004D300C 00000015 C fgaag_!l{_oun}amb_ob |

出了
特殊的Base64
运行exe,输入错误的flag后自动退出
exeinfo一下查壳,64bits无壳
放到ida64中试试
“rightflag”文字附近出现一串像是base64的字符串,但是解码后又是乱码,感觉题目所说的base64就是指这个
然后看到下面还有一串,难道是特殊的映射吗

果然 这就出来了flag{Special_Base64_By_Lich}
NoString
双击exe 又是要求input,随便输入后会报error
exeinfo看看,32bits无壳,用ida32打开看看
1 | v11 = 0; |
1 | .data:00416210 aOehnl3rHfCcgpt db 'oehnl3r=<?=hF@CCGPt',0 |
大概的逻辑是先每一位和9异或,然后再和9异或,然后和aOehnl3rHfCcgpt所指向的字符串oehnl3r=<?=hF@CCGPt比较
异或两次,那其实就是直接和oehnl3r=<?=hF@CCGPt比较
1 | str="oehnl3r=<?=hF@CCGPt" |
出了 flage:{4564aOIJJNY}
不好用的ce
双击,显示点击一万次就有flag,感觉可以改一下点击次数这样
无壳32,用OD动态分析,直接看字符串其实可以看到一个base64了,不过我们这次尝试一下用动态跑
下断点找到数据会改变那一条跳转
这里会看到一个与10000的比较
用二进制把00401E24用NOP填充了,然后执行

然后出了

然后发现不是base64,是base58
出了flag flag{c1icktimes}
待续……
- 标题: re:从零开始的re世界生活
- 作者: r1ck9
- 创建于 : 2026-09-07 10:35:14
- 更新于 : 2026-09-07 10:36:08
- 链接: https://www.r1ck9.top/2026/09/07/re:从零开始的re世界生活/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。