日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

缓冲区溢出基本C程序的控制台和Win32版本

發布時間:2025/4/14 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 缓冲区溢出基本C程序的控制台和Win32版本 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include <stdio.h> #include <string.h>int main(void) {char buff[8] = {0};char *p = "012345678912345";strcpy(buff,p);printf("%s\n",buff);return 0; }

這是緩沖區溢出原理演示的基本C程序;

p所指向的字符串長度大于buff的長度,拷貝時發生緩沖區溢出;程序崩潰;

?

如果p指向字符串的長度不超過,就不會溢出;

?

對于Win32來說,使用Windows提供的Win32字符串函數,字符串拷貝使用lstrcpy;

#include <stdio.h> #include <windows.h>int main(void) {char buff[8] = {0};char *p = "0123456789";lstrcpy(buff,p);printf("%s\n",buff);return 0; }

一樣的,長度超過,運行程序,崩潰;

?

如果使用安全版的字符串拷貝函數,strncpy(buff,p,sizeof(buff));

就不會溢出;

?

下面來作一個Win32窗口版本溢出程序;單擊鼠標左鍵執行拷貝并輸出;

/* buffer over demo,by bobo,2020-01-19 */#include <windows.h>LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow) {static TCHAR szAppName[] = TEXT ("buffer over demo") ;HWND hwnd ;MSG msg ;WNDCLASS wndclass ;wndclass.style = CS_HREDRAW | CS_VREDRAW ;wndclass.lpfnWndProc = WndProc ;wndclass.cbClsExtra = 0 ;wndclass.cbWndExtra = 0 ;wndclass.hInstance = hInstance ;wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;wndclass.lpszMenuName = szAppName ;wndclass.lpszClassName = szAppName ;if (!RegisterClass (&wndclass)){MessageBox (NULL, TEXT ("This program requires Windows NT!"), szAppName, MB_ICONERROR) ;return 0 ;}hwnd = CreateWindow (szAppName,TEXT ("buffer over demo"), WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL, hInstance,NULL) ;ShowWindow (hwnd, iCmdShow) ;UpdateWindow (hwnd) ;while (GetMessage (&msg, NULL, 0, 0)){TranslateMessage (&msg) ;DispatchMessage (&msg) ;}return msg.wParam ; }LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) {HDC hdc ;PAINTSTRUCT ps ;char buff[8] = {0};char *p = "012345678912345";switch (message){case WM_CREATE:return 0 ;case WM_LBUTTONDOWN :hdc = GetDC(hwnd); lstrcpy(buff,p);TextOut(hdc, 100, 100, buff, 15);return 0;case WM_PAINT:hdc = BeginPaint (hwnd, &ps) ;EndPaint (hwnd, &ps) ;return 0 ;case WM_DESTROY:PostQuitMessage (0) ;return 0 ;}return DefWindowProc (hwnd, message, wParam, lParam) ; }

buff長度8,p指向內容長度15;

按理程序應該崩潰;但是Win32窗口程序真的沒崩潰;還輸出了15個長度的字符串;

啥情況?

以上是Win10,VC++6;

?

此程序僅演示緩沖區溢出最基本原理;

如果真能干這事的人,其目的并不是引起程序崩潰,而是通過覆蓋程序返回地址等手段,改變程序的執行流程;

?

總結

以上是生活随笔為你收集整理的缓冲区溢出基本C程序的控制台和Win32版本的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 伊人网伊人影院 | 91久久久久久久久久 | 91精品国产99久久久久久红楼 | www.五月天婷婷 | 免费国产在线观看 | av黄色免费在线观看 | 国产美女又黄又爽又色视频免费 | 国产十八熟妇av成人一区 | 性色av蜜臀av浪潮av老女人 | 嫩草视频国产 | 久久精品69 | youjizz在线视频 | 国产αv| 九九九九热 | 国产全肉乱妇杂乱视频 | 91超碰在线 | 调教一区| 爱啪啪影视 | 日韩欧美国产网站 | 免费黄色链接 | 精品婷婷色一区二区三区蜜桃 | 日本理论片午伦夜理片在线观看 | 国产欧美日韩精品在线 | 老司机午夜免费精品视频 | 国产国语亲子伦亲子 | 午夜影院在线观看视频 | 黄色免费网站在线观看 | 91精东传媒理伦片在线观看 | 日韩一区二区三免费高清在线观看 | 又黄又高潮的视频 | 17c在线观看视频 | a天堂在线观看视频 | 午夜小视频在线观看 | 91精产品一区观看 | 国产精品午夜电影 | 爱看av| 黑人巨大精品欧美黑寡妇 | 中文有码在线 | 激情www| 四虎永久免费地址 | 最新中文字幕在线视频 | 99精品一区二区三区 | 伊人成人在线观看 | 色悠久久综合 | 中文字幕精品无码亚 | 中文字幕一二三四 | 中文字幕在线观看一区二区三区 | 两根大肉大捧一进一出好爽视频 | 九九久久网 | 日韩在线一区二区三区 | 日韩成人在线影院 | 中文字幕一区二区三区人妻四季 | 狠狠人妻久久久久久综合蜜桃 | 国产在线喷水 | 伊人久久大香线蕉av一区 | 久草热在线视频 | 天天夜夜啦啦啦 | 日本一本视频 | 99婷婷 | 久久久久久免费毛片精品 | 嫩草www| 亚洲男女在线 | 成都4电影免费高清 | 午夜家庭影院 | 亚洲一区二区 | 亚洲欧洲一级 | 成人av高清在线 | 无码人妻丰满熟妇精品 | 国产麻豆一精品一av一免费 | 国语播放老妇呻吟对白 | 黄色三级在线视频 | 国产精品丝袜一区二区 | 天天躁日日躁狠狠躁喷水 | 黄床大片 | 91在线精品一区二区三区 | 中国久久久| 亚洲日本在线播放 | 国语精品 | 黑名单上的人全集免费观看 | 少妇av一区二区三区无码 | 男人阁久久 | 国产视频手机在线观看 | 超碰69| 无码人妻丰满熟妇精品区 | a级黄色小说 | 在线观看福利视频 | 成人免费毛片高清视频 | 中文字幕一区二区三区四区五区 | 成年人视频在线观看免费 | 学生调教贱奴丨vk | 色婷婷国产精品视频 | 波多野结衣一区二 | 日韩精品一区二区亚洲av观看 | 欧美视频在线免费 | 亚洲天堂一区在线观看 | 国产一级片免费播放 | 草草浮力影院 | 欧美美女啪啪 | 国产免费一区二区三区在线播放 |