-
-
[原创]AWD_pwn_ptach记录
-
发表于:
2023-6-18 14:26
18196
-
本文记录入门patch时做的一些题目。
![图片描述](upload/attach/202402/958172_8FYJCN6SDTQB3ZN.png)
将rdi存储的字符串地址指向'%2d',0
。
![图片描述](upload/attach/202402/958172_SJQZT9J72VRDW47.png)
在eh_frame段构造字符串'%2d',0
,'%2d'
的hexstr表示为253264。
![图片描述](upload/attach/202402/958172_V5NXC7V9NX5RPVR.png)
edit->patch programe->change bytes。
![图片描述](upload/attach/202402/958172_68DUR8H66P9AJ42.png)
写入后。
![图片描述](upload/attach/202402/958172_ZBUNPXXB5R34QCW.png)
在指令lea rdi, qword ptr [aD]
处按ctrl+alt+k。
将其改为mov rdi,offset 0x4020B0h
,并patch。
![图片描述](upload/attach/202402/958172_ZYYC2W7RT647SGY.png)
修改后。
![图片描述](upload/attach/202402/958172_CGDY9BAVYYJ2NHZ.png)
![图片描述](upload/attach/202402/958172_P6UH7EJMQF9XHPX.png)
精简汇编指令,利用多余的nop
直接修改汇编代码。
源汇编代码。
![图片描述](upload/attach/202402/958172_MH8CN3MRTGNGEAX.png)
题目中没有可以很好替代gets的指令,(可以自己试着修改汇编调用scanf函数)。
这里将指令长度精简加工一下,利用多出来的nop
指令来进行read系统调用。
sys_read
对寄存器要求,rax=0x0h;rdi=0(读入);rsi=[rbp+s](读取位置);rdx=0x100h(读入大小);
。
修改后。
![图片描述](upload/attach/202402/958172_MW2MX3UZJF48TJH.png)
![图片描述](upload/attach/202402/958172_RNJ59GFDG4YK47B.png)
与第二处gets()大同小异。
![图片描述](upload/attach/202402/958172_PVXAMGY2DXQ22R3.png)
[招生]系统0day安全-IOT设备漏洞挖掘(第6期)!
最后于 2023-6-18 18:49
被jelasin编辑
,原因: