buu刷题复现一

编程入门 行业动态 更新时间:2024-10-10 21:25:08

<a href=https://www.elefans.com/category/jswz/34/1767650.html style=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刷题复现一

本文发布于:2024-02-14 09:30:35,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1762930.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:buu

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!