buu刷题复现一"/>
buu刷题复现一
UPX加壳脱壳--新年快乐
用ida打开发现加壳
用之前下载好的upx,将文件和Upx存到同一文件夹中
Ctal+L保留存储路径,再搜索cmd就可以打开脱壳页面
UPX加壳指令
输入指令upx 文件名.exe 回车可以看到显示加壳成功,此处文件已加过壳,故不显示。
UPX脱壳指令
输入upx -d 文件名.exe 回车后发现脱壳成功
此时再在ida中打开,显示无壳
根据代码分析可知:将用户输入的str1与str2做比较,若相等则输出,由此可知str2即为flag
参考\
buuXOR----简单异或运算
在ida中打开文件xor,F5得到伪代码。
由分析可知,b[i]与b[i-1]做异或后再与global做比较,跟进global得到字符,shift+E得到16进制形式,写脚本可得flag
x= 'MSAWB~FXZ:J:`tQJ"N@ bpdd}8g'
flag = [chr(ord(x[i])^i) for i in range(27)]
print(''.join(flag))
buu题目reserve-3
打开文件放到ida中可以看到如下伪代码
分析代码:
先初始化数组v7后,将用户输入的值经过一系列变换后得到v1并复制到v7中,再将v7[j]+=j运算后与光标处变量相比较 ,相等即为flag
查看变量值
那下面我们来看用户输入值经过哪些变换
v1为sub_4110BE处理过的值,进入sub_4110BE函数,如下
发现经过数组byte_417B30变换,进入查看
发现熟悉的加密法——base64,然后写脚本解密,得到flag
import base64str2='e3nifIH9b_C@n@dH'
x=''
for i in range(0, len(str2)):x+=chr(ord(str2[i])-i)
x=base64.b64decode(x)
x = x.decode('ASCII') #将字符处理成ASCII码形式
print(x)
更多推荐
buu刷题复现一
发布评论