精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Malloc兩種內存獲取方式的區別

安全 終端安全 黑客攻防
既然你正在看這篇文章,那么你就應該知道malloc函數是通過syscall調用從操作系統獲取內存的。 如下圖所示,malloc是通過調用brk或mmap這兩種syscall之一來獲取內存的。

既然你正在看這篇文章,那么你就應該知道malloc函數是通過syscall調用從操作系統獲取內存的。 如下圖所示,malloc是通過調用brk或mmap這兩種syscall之一來獲取內存的。

1.brk方式

brk:brk是通過增設程序斷點來從內核獲取內存(非清零)的。最初堆段的起點(start_brk)和堆段終點(brk)是指向相同的位置的。當ASLR關閉時,start_brk和brk將指向data/bss段(end_data)的末尾。當ASLR打開時,start_brk和brk的值將等于data/bss段(end_data)的結尾加上一個隨機的brk偏移。

正如上面的“進程虛擬內存布局”圖展示的,start_brk是堆段的開始,brk(程序中斷)是堆段的結尾。

例程如下:

  1. /* sbrk and brk example */ 
  2. #include <stdio.h> 
  3. #include <unistd.h> 
  4. #include <sys/types.h> 
  5.  
  6. int main() 
  7.         void *curr_brk, *tmp_brk = NULL
  8.  
  9.         printf("Welcome to sbrk example:%d\n", getpid()); 
  10.  
  11.         /* sbrk(0)返回此進程的斷點位置*/ 
  12.         tmp_brk = curr_brk = sbrk(0); 
  13.         printf("Program Break Location1:%p\n", curr_brk); 
  14.         getchar(); 
  15.  
  16.         /* brk(addr)遞增/遞減程序的斷點位置*/ 
  17.         brk(curr_brk+4096); 
  18.  
  19.         curr_brk = sbrk(0); 
  20.         printf("Program break Location2:%p\n", curr_brk); 
  21.         getchar(); 
  22.  
  23.         brk(tmp_brk); 
  24.  
  25.         curr_brk = sbrk(0); 
  26.         printf("Program Break Location3:%p\n", curr_brk); 
  27.         getchar(); 
  28.  
  29.         return 0; 

輸出分析:在增設程序中斷之前,通過下面的輸出,我們可以看到并沒有堆段。

因此:• start_brk = brk = end_data = 0x804b000

  1. sploitfun@sploitfun-VirtualBox:~/ptmalloc.ppt/syscalls$ ./sbrk  
  2. Welcome to sbrk example:6141 
  3. Program Break Location1:0x804b000 
  4. ... 
  5. sploitfun@sploitfun-VirtualBox:~/ptmalloc.ppt/syscalls$ cat /proc/6141/maps 
  6. ... 
  7. 0804a000-0804b000 rw-p 00001000 08:01 539624     /home/sploitfun/ptmalloc.ppt/syscalls/sbrk 
  8. b7e21000-b7e22000 rw-p 00000000 00:00 0  
  9. ... 
  10. sploitfun@sploitfun-VirtualBox:~/ptmalloc.ppt/syscalls$ 

在增設了程序斷點后:在下面的輸出我們可以觀察到有堆段。

因此:• start_brk = end_data = 0x804b000• brk = 0x804c000

  1. sploitfun@sploitfun-VirtualBox:~/ptmalloc.ppt/syscalls$ ./sbrk  
  2. Welcome to sbrk example:6141 
  3. Program Break Location1:0x804b000 
  4. Program Break Location2:0x804c000 
  5. ... 
  6. sploitfun@sploitfun-VirtualBox:~/ptmalloc.ppt/syscalls$ cat /proc/6141/maps 
  7. ... 
  8. 0804a000-0804b000 rw-p 00001000 08:01 539624     /home/sploitfun/ptmalloc.ppt/syscalls/sbrk 
  9. 0804b000-0804c000 rw-p 00000000 00:00 0          [heap] 
  10. b7e21000-b7e22000 rw-p 00000000 00:00 0  
  11. ... 
  12. sploitfun@sploitfun-VirtualBox:~/ptmalloc.ppt/syscalls$ 

其中0804b000-0804c000是此堆段的虛擬地址范圍

rw-p是Flags(可讀,可寫,不可執行,私有)

00000000是文件偏移 – 由于不存在文件映射,所以這里為零

00:00是主要/次要設備號 – 由于不存在文件映射,所以這里為零

0是Inode編號 – 由于不存在文件映射,所以這里為零

[heap]表示是堆段

2.mmap方式

mmap:malloc使用mmap去創建一個私有的匿名映射段。映射這個私有匿名段的主要目的是為了分配新的內存(已清零),并且這個新的內存將被調用進程獨占使用。

例程:

  1. /* Private anonymous mapping example using mmap syscall */ 
  2. #include <stdio.h> 
  3. #include <sys/mman.h> 
  4. #include <sys/types.h> 
  5. #include <sys/stat.h> 
  6. #include <fcntl.h> 
  7. #include <unistd.h> 
  8. #include <stdlib.h> 
  9.  
  10. void static inline errExit(const char* msg) 
  11.         printf("%s failed. Exiting the process\n", msg); 
  12.         exit(-1); 
  13.  
  14. int main() 
  15.         int ret = -1; 
  16.         printf("Welcome to private anonymous mapping example::PID:%d\n", getpid()); 
  17.         printf("Before mmap\n"); 
  18.         getchar(); 
  19.         char* addr = NULL
  20.         addr = mmap(NULL, (size_t)132*1024, PROT_READ|PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); 
  21.         if (addr == MAP_FAILED) 
  22.                 errExit("mmap"); 
  23.         printf("After mmap\n"); 
  24.         getchar(); 
  25.  
  26.         /* Unmap mapped region. */ 
  27.         ret = munmap(addr, (size_t)132*1024); 
  28.         if(ret == -1) 
  29.                 errExit("munmap"); 
  30.         printf("After munmap\n"); 
  31.         getchar(); 
  32.         return 0; 

輸出分析:

mmap調用前:在下面的輸出中,我們只能看到屬于共享庫libc.so和ld-linux.so的內存映射段

  1. sploitfun@sploitfun-VirtualBox:~/ptmalloc.ppt/syscalls$ cat /proc/6067/maps 
  2. 08048000-08049000 r-xp 00000000 08:01 539691     /home/sploitfun/ptmalloc.ppt/syscalls/mmap 
  3. 08049000-0804a000 r--p 00000000 08:01 539691     /home/sploitfun/ptmalloc.ppt/syscalls/mmap 
  4. 0804a000-0804b000 rw-p 00001000 08:01 539691     /home/sploitfun/ptmalloc.ppt/syscalls/mmap 
  5. b7e21000-b7e22000 rw-p 00000000 00:00 0  
  6. ... 
  7. sploitfun@sploitfun-VirtualBox:~/ptmalloc.ppt/syscalls$ 

mmap調用后:在下面的輸出中,我們可以看到我們的內存映射段(b7e00000 – b7e21000,大小為132KB)與已映射的內存映射段(b7e21000 – b7e22000)拼接在一起了。

  1. sploitfun@sploitfun-VirtualBox:~/ptmalloc.ppt/syscalls$ cat /proc/6067/maps 
  2. 08048000-08049000 r-xp 00000000 08:01 539691     /home/sploitfun/ptmalloc.ppt/syscalls/mmap 
  3. 08049000-0804a000 r--p 00000000 08:01 539691     /home/sploitfun/ptmalloc.ppt/syscalls/mmap 
  4. 0804a000-0804b000 rw-p 00001000 08:01 539691     /home/sploitfun/ptmalloc.ppt/syscalls/mmap 
  5. b7e00000-b7e22000 rw-p 00000000 00:00 0  
  6. ... 
  7. sploitfun@sploitfun-VirtualBox:~/ptmalloc.ppt/syscalls$ 

其中b7e00000-b7e22000是此段的虛擬地址范圍

rw-p是Flags(可讀,可寫,不可執行,私有)

00000000是文件偏移 – 由于不存在文件映射,所以這里為零

00:00是主要/次要設備號 – 由于不存在文件映射,所以這里為零

0是Inode編號 – 由于不存在文件映射,所以這里為零

munmap調用后:在下面的輸出中,我們可以看到我們的內存映射段是未映射的,就是說其相應的內存已經釋放到操作系統了。

  1. sploitfun@sploitfun-VirtualBox:~/ptmalloc.ppt/syscalls$ cat /proc/6067/maps 
  2. 08048000-08049000 r-xp 00000000 08:01 539691     /home/sploitfun/ptmalloc.ppt/syscalls/mmap 
  3. 08049000-0804a000 r--p 00000000 08:01 539691     /home/sploitfun/ptmalloc.ppt/syscalls/mmap 
  4. 0804a000-0804b000 rw-p 00001000 08:01 539691     /home/sploitfun/ptmalloc.ppt/syscalls/mmap 
  5. b7e21000-b7e22000 rw-p 00000000 00:00 0  
  6. ... 
  7. sploitfun@sploitfun-VirtualBox:~/ptmalloc.ppt/syscalls$ 

注意:在我們的示例程序中ASLR是關閉的。

責任編輯:武曉燕 來源: FreeBuf
相關推薦

2024-09-20 11:32:28

.NET內存管理

2010-03-18 10:18:52

python模塊

2009-12-25 16:46:08

2011-03-03 10:26:04

Pureftpd

2021-05-27 10:57:01

TCP定時器網絡協議

2009-06-25 13:43:00

Buffalo AJA

2010-10-21 16:24:18

sql server升

2023-03-29 13:06:36

2010-08-06 09:38:11

Flex讀取XML

2010-09-07 11:09:59

2010-07-27 15:03:37

Flex ArrayC

2011-03-23 11:22:14

oracle dbli

2010-07-14 10:30:26

Perl多線程

2010-05-10 18:19:00

負載平衡技術

2024-02-04 09:24:45

MyBatisSQL語句Spring

2011-04-02 09:48:38

深拷貝

2010-10-20 15:48:56

SQL Server許

2011-06-16 10:02:08

JAVA靜態載入

2021-12-08 10:47:35

RabbitMQ 實現延遲

2010-07-15 14:38:55

Perl eval函數
點贊
收藏

51CTO技術棧公眾號

一区二区三区四区毛片| 国产在线观看一区| 黄色a级片在线观看| 国产精品白浆| 色丁香久综合在线久综合在线观看| 天天综合色天天综合色hd| 国产免费的av| 亚欧美中日韩视频| 久久av在线播放| 强迫凌虐淫辱の牝奴在线观看| 97欧美成人| 图片区小说区区亚洲影院| 日韩欧美一区二区三区四区五区| 国产免费不卡av| 丝袜亚洲另类丝袜在线| 久久精品亚洲国产| 成人免费网站黄| 欧美专区一区| 精品1区2区3区| 欧美综合在线播放| 麻豆最新免费在线视频| 久久这里只有精品6| 91精品视频在线播放| 九九热在线免费观看| 欧美成人tv| 中文字幕无线精品亚洲乱码一区| 逼特逼视频在线观看| 日本欧美在线| 在线免费亚洲电影| 免费看国产曰批40分钟| 在线中文免费视频| 中文字幕一区二区日韩精品绯色| 欧美日韩国产精品一卡| 亚洲高清视频网站| 国内精品伊人久久久久av一坑| 欧美一二三视频| 久久久无码精品亚洲国产| 午夜av一区| 中文字幕亚洲色图| 日韩中文字幕电影| 精品伊人久久久| 精品黑人一区二区三区久久| 色婷婷综合在线观看| 韩国精品视频在线观看| 欧美在线观看视频在线| 中国丰满人妻videoshd| 国产精品xx| 亚洲成a天堂v人片| 日韩 欧美 视频| 日韩免费影院| 亚洲一区av在线| wwwwww欧美| 色yeye免费人成网站在线观看| 综合久久综合久久| 99久久久无码国产精品性色戒| 97在线观看免费观看高清| 久久蜜桃一区二区| 欧美污视频久久久| 国产在线一二三区| 欧美国产精品一区二区三区| 四虎一区二区| 丝袜美腿美女被狂躁在线观看| 国产精品不卡在线观看| 一区二区国产日产| 91小视频xxxx网站在线| 一区二区三区四区视频精品免费| 91精品国产毛片武则天| 欧美aaa免费| 黄色91在线观看| 日韩在线一级片| 91看片一区| 欧美日韩不卡一区二区| 国产精品自在自线| 一区视频网站| 亚洲精品v天堂中文字幕| 蜜桃传媒一区二区亚洲av| 国产午夜一区| 日韩亚洲精品视频| 美女毛片在线观看| 一区二区三区精品视频在线观看| 欧美在线一区二区视频| 成人黄色免费网| 国产在线视频一区二区三区| 成人在线免费网站| 极品美乳网红视频免费在线观看| 国产精品三级电影| 野外做受又硬又粗又大视频√| 女海盗2成人h版中文字幕| 91激情在线视频| 激情图片中文字幕| 色婷婷综合久久久久久| 视频在线一区二区| 亚洲综合一二三| 蜜桃久久精品一区二区| 91九色蝌蚪成人| 欧美老女人性开放| 亚洲人午夜精品天堂一二香蕉| 国产美女在线一区| 久久天天久久| 亚洲国模精品一区| 神马午夜精品91| 香蕉视频成人在线观看| 成人妇女淫片aaaa视频| 亚洲av电影一区| 中文字幕在线观看不卡视频| 日韩伦理在线免费观看| 成人全视频免费观看在线看| 精品国产乱码久久久久久图片 | 91蜜桃免费观看视频| 亚洲精品一区二区毛豆| 麻豆免费版在线观看| 欧美日韩国产乱码电影| 中文成人无字幕乱码精品区| 日韩三级在线| 日韩美女福利视频| 六月婷婷综合网| 国产精品久久久久久久久搜平片| 国产人妻777人伦精品hd| avtt久久| 最近2019年手机中文字幕| 日本天堂网在线观看| 国产在线不卡一区| 亚洲精品二区| 大胆人体一区| 亚洲国产成人精品女人久久久| 成人涩涩小片视频日本| 免费美女久久99| 牛人盗摄一区二区三区视频| 97超碰免费在线| 日韩视频一区二区三区在线播放 | 亚洲高清免费观看高清完整版在线观看| 天天影视综合色| 欧美电影免费网站| 久久久久久久国产| 精品黑人一区二区三区在线观看| 国产精品私人自拍| 日本男人操女人| 九一国产精品| 欧美做受高潮电影o| 日韩在线视频免费| 亚洲午夜羞羞片| 午夜福利三级理论电影| 你懂的国产精品永久在线| 成人高h视频在线| 毛片网站在线免费观看| 欧美精品aⅴ在线视频| 四虎国产成人精品免费一女五男| 久久久久99| 日本精品一区二区三区高清 久久| 亚洲精品福利电影| 亚洲少妇激情视频| 手机av免费观看| 国产亚洲一区二区三区在线观看| 波多野结衣家庭教师视频| 色狼人综合干| 国产999精品久久久| 国产69精品久久app免费版| 色悠久久久久综合欧美99| 中文字幕 自拍| 日本欧美韩国一区三区| 亚洲成人蜜桃| 高清一区二区三区av| 久久国产精品偷| 亚洲精品一区二区口爆| 亚欧色一区w666天堂| 国产全是老熟女太爽了| 免费在线观看一区二区三区| 亚洲一卡二卡| 亚洲成人黄色| 91精品国产91久久久久福利| 水莓100国产免费av在线播放| 色噜噜狠狠成人网p站| www久久久久久久| 精品一区在线看| 国产精品www在线观看| 五月国产精品| 国产美女精品视频| 四虎影院观看视频在线观看| 日韩电影中文字幕在线观看| 男操女视频网站| 亚洲乱码中文字幕| 亚洲xxxx在线| 亚洲www色| 国产视频自拍一区| 又骚又黄的视频| 一区二区日韩电影| 国产精品无码永久免费不卡| 欧美aaaaa成人免费观看视频| 91看片淫黄大片91| 小说区图片区色综合区| 国产视频观看一区| 成年男女免费视频网站不卡| 国产亚洲精品久久久久久牛牛| 一级特黄aa大片| 午夜欧美视频在线观看| 亚洲天堂av中文字幕| 高清av一区二区| 不卡av免费在线| 国产精品二区影院| 五月天亚洲综合| 国产精品99久久免费观看| 国产精品久久久久久亚洲影视 | 午夜精品久久久久久久久久| 久久久久久国产免费a片| 国产久卡久卡久卡久卡视频精品| 草草久久久无码国产专区| 在线中文字幕亚洲| 日韩欧美国产二区| 国产精品自在线拍| 成人午夜在线观看| 欧美黑人疯狂性受xxxxx野外| 久久综合亚洲社区| 岛国视频免费在线观看| 精品国产a毛片| 国产露脸无套对白在线播放| 色综合久久久久综合体| 国产精品suv一区二区| 国产精品久久久久久户外露出 | 一级片视频免费观看| 亚洲精品社区| 男人的天堂avav| 亚洲澳门在线| 亚洲 国产 欧美一区| 校花撩起jk露出白色内裤国产精品| 51国偷自产一区二区三区的来源 | 国产成人午夜| 在线性视频日韩欧美| 日本不卡视频一区二区| 亚洲精品在线电影| 性一交一乱一乱一视频| 制服丝袜亚洲播放| 在线观看一二三区| 欧美综合天天夜夜久久| 久久国产黄色片| 精品动漫一区二区| 日韩欧美高清在线观看| 亚洲一区二区免费视频| 麻豆成人在线视频| 亚洲欧美日韩一区| 亚洲AV成人无码精电影在线| 中文一区二区完整视频在线观看 | 黑人乱码一区二区三区av| 日韩午夜在线观看视频| 国产日韩免费视频| 91精品国产欧美一区二区成人| 亚洲一级黄色大片| 欧美日韩国产在线播放网站| 在线观看免费视频一区| 91精品免费在线观看| 91精品国产乱码久久久久| 欧美日韩久久久| 一级特黄aaa| 欧美一区二区视频观看视频| 国产女人高潮毛片| 日韩欧美国产wwwww| 亚洲精选一区二区三区| 亚洲成色999久久网站| 亚洲 国产 欧美 日韩| 国产视频精品在线| 国产香蕉在线| xxx一区二区| 中文字幕资源网在线观看| 欧美日韩国产成人在线观看| 俺来也官网欧美久久精品| 久久免费视频网站| 中文字幕资源网在线观看免费| 日本久久中文字幕| 未满十八勿进黄网站一区不卡| 91热福利电影| 国产成人在线中文字幕| 欧美精品一区三区在线观看| 欧美日韩一区二区综合| 性做爰过程免费播放| 亚洲性图久久| 久久综合久久色| 精一区二区三区| 亚洲成a人无码| 久久婷婷成人综合色| 国产免费嫩草影院| 亚洲资源在线观看| 日韩三级一区二区| 欧美一区二区三区公司| 日本高清视频www| 一区二区三区 在线观看视| 粗大黑人巨茎大战欧美成人| 97人人做人人爱| 国产精品久久久久久妇女| 亚洲一区亚洲二区| 日韩最新在线| 超碰97免费观看| 国产亚洲一区在线| 欧美激情国内自拍| 91丨porny丨最新| 日韩av手机在线免费观看| 亚洲成人高清在线| 一区二区日韩在线观看| 亚洲精品97久久| 久草免费在线| 欧美制服第一页| 日本综合精品一区| 日韩av电影免费观看| 欧美日韩精品免费观看视频完整| 日韩视频在线免费看| 国产成人精品免费视频网站| 无码人妻aⅴ一区二区三区69岛| 一区二区三区不卡在线观看 | 欧美成人精品一区二区免费看片| 欧美日韩一区二区在线| 99久久一区二区| 亚洲天堂影视av| av漫画网站在线观看| 成人看片人aa| 欧美少妇性xxxx| 六月丁香激情网| 国产99久久久久| 国产精品视频一区二区在线观看| 一本一道久久a久久精品综合蜜臀| 精品国产无码一区二区| 永久免费毛片在线播放不卡| 乱馆动漫1~6集在线观看| 97超碰最新| 亚欧美无遮挡hd高清在线视频 | 欧美大片免费播放| 蜜桃精品视频在线| 国产女主播喷水高潮网红在线| 亚洲高清免费观看高清完整版在线观看| 国产又大又黄的视频| 在线精品视频视频中文字幕| 小早川怜子影音先锋在线观看| 国产高清一区视频| 欧美一区二区三区另类| 中文字幕免费高清在线| 国产精品污污网站在线观看| www毛片com| 亚洲精品综合精品自拍| 欧美办公室脚交xxxx| 国产一区二区三区色淫影院| 国产精品vip| 男人添女人荫蒂国产| 一区二区三区精品在线| 国产黄色片网站| 欧美激情a在线| 亚洲三级av| 国产成人永久免费视频| 国产iv一区二区三区| 久久久久久久中文字幕| 日韩你懂的在线观看| 久久一卡二卡| 国产一区二区三区高清| 在线播放亚洲| 久久无码人妻精品一区二区三区| 图片区小说区国产精品视频| 全色精品综合影院| 国产91免费观看| 色婷婷色综合| 伊人国产精品视频| 樱桃视频在线观看一区| 东京干手机福利视频| 久久久免费观看| 日韩精选在线| 九九热免费精品视频| 国产精品三级在线观看| 99精品国产99久久久久久97| 久99久在线视频| 国产一级成人av| 久久久久人妻精品一区三寸| 国产精品天美传媒| www.国产.com| 91精品国产精品| 久久激情电影| 五月天六月丁香| 精品日本高清在线播放| 国产在线一在线二| 亚洲一区二区三区乱码aⅴ| 亚洲视频狠狠| 国产又粗又黄又猛| 91精品国产全国免费观看| 啊啊啊久久久| 亚洲高清123| 成人综合在线视频| 男人天堂av在线播放| 日韩视频亚洲视频| 精品少妇一区| 亚洲欧美自拍另类日韩| 夜夜嗨av一区二区三区四季av| 青青草视频在线免费观看| 国产一区红桃视频| 99热在线精品观看| 91制片厂在线| 精品成人一区二区三区四区| 欧美日韩免费观看视频| 一级性生活视频| 国产亚洲精品中文字幕| 精品国产999久久久免费| 热久久这里只有精品| 欧美1区视频| 中文字幕av久久爽一区| 欧美精品一区二区在线观看| 成人一区视频| 免费黄色日本网站|