buu刷题复现一

UPX加壳脱壳--新年快乐

用ida打开发现加壳

用之前下载好的upx,将文件和Upx存到同一文件夹中

aee7c03e3d184d67b165bc14437bb923.png

 Ctal+L保留存储路径,再搜索cmd就可以打开脱壳页面df332475d62f4162956197634c466e6d.png

 89676d9bff0d4e10b840f6ab179f3539.png

 72ef834efda24a8a996b32a5f5cd8aee.png

UPX加壳指令

输入指令upx 文件名.exe 回车可以看到显示加壳成功,此处文件已加过壳,故不显示。

ffc3cd6e26ee4c0db736bc058c7d4bfb.pngUPX脱壳指令

 输入upx -d 文件名.exe 回车后发现脱壳成功

f5c96d1ced1a45d6baf00c1e48176bc9.png

 此时再在ida中打开,显示无壳

f10c41966a2348e98234f45406478e8b.png

 根据代码分析可知:将用户输入的str1与str2做比较,若相等则输出,由此可知str2即为flag

参考http://t.csdn.cn/95SZ6\

buuXOR----简单异或运算

在ida中打开文件xor,F5得到伪代码。

25dafbadbd114dd79fd8c21ce98139d6.png

 由分析可知,b[i]与b[i-1]做异或后再与global做比较,跟进global得到字符,shift+E得到16进制形式,写脚本可得flag

7b5538a7aaa44782a0bd2d6957f8e64d.png

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 base64

str2='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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值