bugku-re部分题解

这里记录一下bugku平台上一些re题的题解

入门逆向

直接拖进IDA反编译

入门逆向-1

直接可以看到flag

Easy_vb

IDA或OD反编译,搜索字符串

Easy_vb-1
看到有flag样式的字符串,是MCTF比赛的题,bugku上需要提交flag(xxx),所以把MCTF改成flag{}

Easy_Re

用OD调试,搜索字符串,找到需要我们输入字符串的位置:
Easy_Re-1
发现提示语和%s,找到输入字符串的位置,加断点单步调试
Easy_Re-2
程序会把输入的字符串和flag进行比较,相同则通过,在寄存器中找到正确的flag

游戏过关

这题可以有至少三种解法:
1、第一种解法
直接游戏通关,很简单,依次输入1-8即可
游戏过关-1
2、使用OD修改程序
首先查找字符串找到输出flag关键函数
游戏过关-2
找到如图所示函数的起始地址,跳转两次找到关键判断
游戏过关-3
可以看到jnz指令进行了跳转,如果没有跳转,将会执行输出flag的函数,现在修改程序,将跳转过后的指令修改为输出flag指令
游戏过关-4
直接运行程序,输入任意数字都可得到flag
游戏过关-5
3、进行解码解出flag
可在上图4-2中看到处理flag的部分,将下面的16进制进行解码即可都得到flag

逆向入门

下载下来admin.exe,发现打不开,peid检查发现不是PE程序,用文本编辑器打开,发现时图片转base64,转成图片得到二维码扫描得到flag

love

IDA打开反编译,找到输出部分
love-1
发现进行了处理之后将两个base64比较,如果相同就输出flag正确,所以只要将Str2进行反变换就得到了正确的flag

1
2
3
4
5
6
7
8
9
10
11
12
import base64

s = "e3nifIH9b_C@n@dH"

flag = ""

for i in range(len(s)):
flag += chr(ord(s[i]) - i)

flag = base64.b64decode(flag)

print(flag)
CGCTF-re部分题解

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×