亚洲乱码一卡二卡四卡乱码新区_亚洲乱码中文字幕小综合_亚洲人成电影在线播放_亚洲性色AV一区二区三区_亚洲一区二区三区影院_亚洲中文字幕久久精品无码A_亚洲中文字幕无码专区_伊人热热久久原色播放WWW_在线观看AV永久免费_最新欧洲大片免费在线,欧美日韩成人三级免费看,久久黄色网址,欧美激情内射喷水高潮

首頁
社區(qū)
課程
招聘
Pwn 學(xué)習(xí)第五課打卡,!

原提問者:hackbs 2020-7-12

 

0x00 概述:
[
printf格式化字符串并且在控制臺中輸出,,
最常用的方式
{

 

#include <stdio.h>
int main(int argc,char *argv[])
{
//格式化整型,、字符串,、地址輸出
printf("%d-%s-%p",123,"123",0x123456);
}
}
]

 

0x01:現(xiàn)成漏洞的原因
{
printf也是一個函數(shù),,我們知道在匯編里面,,其實(shí)就是CALL 一個地址,,然后CALL地址前,都會壓入(push)參數(shù)進(jìn)去,,push的順序是先進(jìn)后出,,先把函數(shù)參數(shù)的最后push進(jìn)去,然后最后把第一個參數(shù)給push進(jìn)去,。

 

//所以在調(diào)用Printf函數(shù)時候,,如果格式化輸出,后面沒有跟參數(shù)比如
printf("%s");

 

#首先printf會進(jìn)行格式化字符串的解析,,從參數(shù)里面獲取和符號進(jìn)行匹配,,然后輸出到屏幕上

 

#如果說沒有參數(shù),那么CALL的上一層棧地址數(shù)據(jù)就會被輸出來(導(dǎo)致泄漏),!
}

收藏
0條回答
零基礎(chǔ)入門pwn
  參與學(xué)習(xí)     1818 人
  提問次數(shù)     36 個
《零基礎(chǔ)入門pwn》,短時間內(nèi)踏入漏洞利用的大門,,快速成為一名合格的pwn題選手
0
我的提問
0
我的回答
0
學(xué)習(xí)收益