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

Linux虛擬內(nèi)存地址轉(zhuǎn)化成物理內(nèi)存地址

系統(tǒng) Linux
多核共享同一個(gè)地址空間也有個(gè)弊端,就是如果程序有問(wèn)題(野指針,數(shù)組越界)可能會(huì)寫別的core管理的內(nèi)存空間,這樣給我們帶來(lái)的問(wèn)題就是程序的值莫名其妙的被改變了。我們?yōu)榱伺挪檫@種問(wèn)題,才考慮把應(yīng)用程序的虛擬地址轉(zhuǎn)化為物理地址,進(jìn)行print debug以便于統(tǒng)一分析。

[[197961]]

背景

現(xiàn)代手機(jī)這種SOC(system on chip),因?yàn)楣摹odem等功能soc上集成了很多core,他們還可以是獨(dú)立的系統(tǒng)在運(yùn)轉(zhuǎn)。

比如ADSP簡(jiǎn)介ADSP(Application Digital Signal Processing)就是高通的Hexagon DSP ,就是獨(dú)立運(yùn)轉(zhuǎn)的一個(gè)core+system。這樣做不僅可以使用soc上的專用核處理專業(yè)的事情,比如上面說(shuō)的ADSP就可以處理音頻解碼,當(dāng)然它的DSP特性還可以處理sensor融合算法,比起通用處理器(cortex a72 a53 a17 a9 a8這些核)處理效率更高,更省電。

當(dāng)然出于成本因素我們不會(huì)為它單獨(dú)焊上一個(gè)內(nèi)存顆粒,它共享了主存的一部分,比如從地址0xc0000000 - 0xc0100000 1MB的空間,此時(shí)內(nèi)核(Linux運(yùn)行在通用處理器上)將不再觸碰這塊內(nèi)存。

但是多核共享同一個(gè)地址空間也有個(gè)弊端,就是如果程序有問(wèn)題(野指針,數(shù)組越界)可能會(huì)寫別的core管理的內(nèi)存空間,這樣給我們帶來(lái)的問(wèn)題就是程序的值莫名其妙的被改變了。我們?yōu)榱伺挪檫@種問(wèn)題,才考慮把應(yīng)用程序的虛擬地址轉(zhuǎn)化為物理地址,進(jìn)行print debug以便于統(tǒng)一分析。

實(shí)現(xiàn)

kernel 在2.6.25的時(shí)候加入了這樣一個(gè)功能/proc/self/pagemap 也就是在每個(gè)進(jìn)程的/proc里面都有一個(gè)pagemap通過(guò)讀取里面的內(nèi)容就可以算出當(dāng)前虛擬地址對(duì)應(yīng)的物理頁(yè),然后加入page_offset就可以知道當(dāng)前虛擬地址對(duì)應(yīng)的物理地址。

pagemap需要你的應(yīng)用有root權(quán)限才能使用。

  1. #include <errno.h> 
  2.  
  3. #include <stdio.h> 
  4.  
  5. #include <sys/stat.h> 
  6.  
  7. #include <string.h> 
  8.  
  9. #include <fcntl.h> 
  10.  
  11. #include <stdlib.h> 
  12.  
  13. #include <stdint.h> 
  14.  
  15. #include <sys/types.h> 
  16.  
  17. #include <sys/stat.h> 
  18.  
  19. #include <fcntl.h> 
  20.  
  21. #include <unistd.h> 
  22.  
  23. #include <sys/mman.h> 
  24.  
  25. // 參考 
  26.  
  27. // https://www.kernel.org/doc/Documentation/vm/pagemap.txt 
  28.  
  29. #define    page_map_file     "/proc/self/pagemap" 
  30.  
  31. #define    PFN_MASK          ((((uint64_t)1)<<55)-1) 
  32.  
  33. #define    PFN_PRESENT_FLAG  (((uint64_t)1)<<63) 
  34.  
  35. int mem_addr_vir2phy(unsigned long vir, unsigned long *phy) 
  36.  
  37.  
  38. int fd; 
  39.  
  40. int page_size=getpagesize(); 
  41.  
  42. unsigned long vir_page_idx = vir/page_size; 
  43.  
  44. unsigned long pfn_item_offset = vir_page_idx*sizeof(uint64_t); 
  45.  
  46. uint64_t pfn_item; 
  47.  
  48. fd = open(page_map_file, O_RDONLY); 
  49.  
  50. if (fd<0) 
  51.  
  52.  
  53. fprintf(stderr, "open %s failed", page_map_file); 
  54.  
  55. return -1; 
  56.  
  57.  
  58. if ((off_t)-1 == lseek(fd, pfn_item_offset, SEEK_SET)) 
  59.  
  60.  
  61. fprintf(stderr, "lseek %s failed", page_map_file); 
  62.  
  63. return -1; 
  64.  
  65.  
  66. if (sizeof(uint64_t) != read(fd, &pfn_item, sizeof(uint64_t))) 
  67.  
  68.  
  69. fprintf(stderr, "read %s failed", page_map_file); 
  70.  
  71. return -1; 
  72.  
  73.  
  74. if (0==(pfn_item & PFN_PRESENT_FLAG)) 
  75.  
  76.  
  77. fprintf(stderr, "page is not present"); 
  78.  
  79. return -1; 
  80.  
  81.  
  82. *phy = (pfn_item & PFN_MASK)*page_size + vir % page_size; 
  83.  
  84. return 0; 
  85.  
  86.  
  87. int main(int argc, char* argv[]) { 
  88.  
  89. unsigned long a = 0xffbbccaa; 
  90.  
  91. unsigned long vir = reinterpret_cast<unsigned long>(&a); 
  92.  
  93. unsigned long phy = 0; 
  94.  
  95. fprintf(stderr, "sizeof(unsigned long):%lu, sizeof(unsigned long*):%lu\n", sizeof(unsigned long), sizeof(unsigned long*)); 
  96.  
  97. mem_addr_vir2phy(vir, &phy); 
  98.  
  99. fprintf(stderr, "1 vir:0x%lx, phy: 0x%lx getchar to continue\n", vir, phy); 
  100.  
  101. getchar(); 
  102.  
  103. a = 0x11111111; 
  104.  
  105. fprintf(stderr, "2 vir:0x%lx, phy: 0x%lx getchar to continue\n", vir, phy); 
  106.  
  107. getchar(); 
  108.  
  109. fprintf(stderr, "3 vir:0x%lx, phy: 0x%lx a:0x%lx\n", vir, phy, a); 
  110.  

 

如何驗(yàn)證

你需要開(kāi)啟kernel如下模塊

CONFIG_DEVMEM=y

關(guān)閉如下模塊

CONFIG_STRICT_DEVMEM=n

一般的Android 都有/system/bin/r(源碼在system/core/toolbox/r.c)這個(gè)命令,這個(gè)命令類似devmem之類的嵌入式工具,通過(guò)/dev/mem(物理內(nèi)存)mmap來(lái)讀取物理內(nèi)存的值,當(dāng)然你也可以修改該地址的值

上面的例子他們通過(guò)getchar() 阻止程序的運(yùn)行,以便你有足夠的時(shí)間來(lái)敲/system/bin/r命令和參數(shù)

命令用法,上面的例子我們?nèi)×艘粋€(gè)棧上變量的虛擬地址,轉(zhuǎn)換成物理地址。然后你就可以通過(guò)/system/bin/r來(lái)讀取和修改這個(gè)地址的值了。

讀取0x9a6f0b20地址的值

  1. adb shell /system/bin/r 0x9a6f0b20 

修改0x9a6f0b20地址的值為0xffbbccaa

  1. adb shell /system/bin/r 0x9a6f0b20 0xffbbccaa 

源碼可以直接git clone git@github.com:green130181/kernel-study.git

工程里的 pagemap直接拷貝到aosp的任意目錄

然后aosp的根目錄執(zhí)行

  1. source build/envsetup.sh 
  2.  
  3. lunch "your select" 
  4.  
  5. cd pagemap dir 
  6.  
  7. mm 

 

之后adb push 到你的機(jī)器,即可開(kāi)始驗(yàn)證。

當(dāng)然還有很多先進(jìn)的比如ramdump Trace32來(lái)實(shí)現(xiàn)內(nèi)存地址查看,不過(guò)上面的對(duì)于一個(gè)應(yīng)用來(lái)講足夠輕量級(jí),夠用就好! 

 

責(zé)任編輯:龐桂玉 來(lái)源: 嵌入式Linux中文站
相關(guān)推薦

2013-08-05 15:44:36

C語(yǔ)言基礎(chǔ)

2021-04-27 13:56:49

內(nèi)存.映射地址

2021-10-06 20:23:08

Linux共享內(nèi)存

2019-12-26 08:45:46

Linux虛擬內(nèi)存

2022-10-24 08:48:07

虛擬內(nèi)存Linux

2023-10-18 13:25:00

操作系統(tǒng)進(jìn)程

2020-11-11 08:25:45

虛擬內(nèi)存模型

2010-06-10 17:12:23

Linux 內(nèi)存監(jiān)控

2020-04-14 16:03:31

Linux虛擬內(nèi)存操作系統(tǒng)

2009-10-19 09:45:06

linux內(nèi)存內(nèi)存管理

2019-03-20 14:29:46

Linux虛擬內(nèi)存

2021-06-01 08:20:55

Linux虛擬內(nèi)存命令

2010-06-02 11:33:26

Linux 內(nèi)存監(jiān)控

2022-08-02 09:02:17

虛擬內(nèi)存操作系統(tǒng)

2015-09-29 08:51:59

內(nèi)存地址主引導(dǎo)

2014-01-14 10:52:06

Linux vmsta虛擬內(nèi)存

2022-08-21 16:52:27

Linux虛擬內(nèi)存

2019-03-14 09:29:02

Linux系統(tǒng)內(nèi)存

2010-06-02 12:47:12

Linux 內(nèi)存監(jiān)控

2019-07-10 12:40:29

Linux虛擬地址空間物理地址空間
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

美女网站视频色| 国产精品少妇在线视频| 国产精品欧美亚洲| 黄色成人在线网站| 精品亚洲国产视频| 毛片毛片毛片毛片毛片毛片毛片毛片毛片| 91在线直播| 国产成人三级在线观看| 国产91av在线| 午夜国产小视频| 乱中年女人伦av一区二区| 在线免费观看成人短视频| 国产经典久久久| 欧美一级在线免费观看| 日韩电影在线一区| 久久免费视频在线观看| 国产传媒视频在线| 好吊妞国产欧美日韩免费观看网站 | 色婷婷精品久久二区二区蜜臀av | 国产高清视频在线观看| 国产一区999| 日本精品视频在线| 欧美三级 欧美一级| 精品免费一区二区| 亚洲精品成人久久电影| 午夜免费视频网站| 97精品国产综合久久久动漫日韩 | 成人久久视频在线观看| 国产免费观看久久黄| 91美女免费看| 在线播放亚洲| 欧美精品制服第一页| 欧美 日韩 成人| 国产伦精品一区二区三区免费优势| 欧美视频一区二区三区| 黄www在线观看| 97人人在线视频| 亚洲黄色免费网站| 在线观看一区二区三区三州| 国内三级在线观看| 91色porny| 91嫩草在线| 一本一道人人妻人人妻αv| 午夜宅男久久久| 国内精品美女av在线播放| 午夜免费激情视频| 中文字幕一区二区三区欧美日韩 | 制服诱惑一区二区| 欧美极品少妇xxxxⅹ裸体艺术| 日本二区三区视频| 欧美国产小视频| 深夜福利国产精品| 战狼4完整免费观看在线播放版| 精品一区三区| 国产一区二区激情| 久久国产柳州莫菁门| 免费成人av| 亚洲色无码播放| 一级片视频免费看| 欧洲乱码伦视频免费| 一本色道久久综合狠狠躁篇的优点 | 91精品一区二区三区四区| 午夜老司机在线观看| 国产精品国产三级国产aⅴ中文| 亚洲女人毛片| 国产美女av在线| 亚洲综合成人网| 日韩在线观看a| 黄色污网站在线观看| 精品日本美女福利在线观看| av黄色在线网站| 97久久香蕉国产线看观看| 欧美中文字幕久久| 五月激情婷婷在线| 久久伊人久久| 亚洲国产高清高潮精品美女| 日韩av一二区| 精品香蕉视频| 久久最新资源网| 麻豆一区二区三区精品视频| 国产一区二区三区的电影 | 日韩视频1区| 精品久久久三级丝袜| 亚洲成av人片在线观看无| 天天做夜夜做人人爱精品| 国产亚洲精品久久久久久| www.99re6| 欧美日韩免费观看一区=区三区| 久久久久久久色| 免费观看日批视频| 国产在线观看免费一区| 国产日韩一区二区| 91.xxx.高清在线| 夜夜嗨av一区二区三区中文字幕| 浮妇高潮喷白浆视频| 国产精品无码久久久久| 精品久久一区二区三区| 在线观看免费小视频| 综合国产在线| 国产v综合ⅴ日韩v欧美大片| 国产日韩精品suv| 久久久激情视频| 国产制服91一区二区三区制服| 三妻四妾的电影电视剧在线观看| 欧美日韩精品欧美日韩精品| 日本三级日本三级日本三级极| 国产尤物久久久| 欧美国产激情18| 欧美在线视频精品| 成人国产精品免费观看| 一区二区精品视频| 亚洲天堂电影| 欧美一区日韩一区| 91网站免费视频| 黄色日韩在线| 成人激情视频在线播放| 男男激情在线| 午夜精品久久久久久久久| 手机免费av片| 国产探花一区| 91国在线精品国内播放| 国产chinasex对白videos麻豆| 久久久精品tv| 一区二区传媒有限公司| 最新国产精品精品视频| 日韩亚洲欧美中文高清在线| 国产精品人人人人| 成人黄色小视频在线观看| 国产欧美综合一区| 国产成人午夜性a一级毛片| 日韩毛片中文字幕| 粉嫩aⅴ一区二区三区| 国产一区欧美一区| 一区二区日本伦理| 国产成人精选| 日韩中文字幕在线免费观看| 国产黄色免费视频| 久久久久久久久免费| 黄色一级在线视频| 国产精品香蕉| 欧美激情久久久久久| 精品人妻一区二区三区四区不卡| 国产精品美女久久久久av爽李琼 | 久久成人精品无人区| 欧美日韩日本网| 欧美特大特白屁股xxxx| 精品亚洲一区二区三区四区五区| 亚洲视频免费播放| gogo大胆日本视频一区| 日本男女交配视频| 999久久精品| 久久久天堂国产精品女人| 成人午夜精品福利免费| 亚洲一区二区在线观看视频| 亚洲免费观看在线| 精品96久久久久久中文字幕无| 99在线视频播放| 一区二区三区伦理| 精品卡一卡二卡三卡四在线| 国产一级视频在线播放| 成人黄色一级视频| 日本三级免费观看| 欧美另类69xxxxx| 国产精品视频xxx| 美女av在线播放| 日韩三区在线观看| 久久精品视频日本| xnxx国产精品| 91热这里只有精品| 91九色精品| 99视频在线免费观看| bbw在线视频| 亚洲色图13p| 一级黄色片在线| 亚洲精品免费在线播放| 91传媒理伦片在线观看| 久久国产福利| 制服国产精品| 爱高潮www亚洲精品| 91av在线免费观看视频| 99视频在线观看地址| 制服丝袜亚洲色图| 日本少妇久久久| 国产欧美一区二区精品久导航 | 亚洲欧美国产日韩天堂区| 亚洲精品91天天久久人人| 亚洲人精品午夜| a天堂视频在线观看| 男人的j进女人的j一区| 久久av高潮av| 国产精品一在线观看| 91在线播放国产| 美女网站在线看| www.亚洲免费视频| 无套内谢的新婚少妇国语播放| 在线视频欧美精品| 国产小视频在线看| 中文字幕精品在线不卡| 大尺度在线观看| 日本va欧美va精品发布| 91精品国产91久久久久麻豆 主演| 经典一区二区| 国产福利一区二区三区在线观看| 日韩三区免费| 97香蕉超级碰碰久久免费软件| 69久久精品| 日韩av资源在线播放| 一起草av在线| 色婷婷亚洲综合| 久久亚洲成人av| 国产精品毛片高清在线完整版| 国产艳妇疯狂做爰视频| 久久 天天综合| 欧美韩国日本在线| 亚洲无线视频| 一区二区三区在线视频111| 任你弄精品视频免费观看| 亚洲一区二区三区久久| 最新日韩一区| 97视频在线观看免费高清完整版在线观看| 嫩草在线视频| 国产亚洲a∨片在线观看| 免费国产羞羞网站视频| 91精品国产91久久综合桃花 | 久久久com| 日韩一区二区三区精品视频第3页 日韩一区二区三区精品 | 欧美艳星brazzers| 天天综合网久久综合网| 亚洲国产美女搞黄色| 国产精品久久久久久久精| 日本一区二区三区国色天香 | 色综合色综合久久综合频道88| 高清毛片在线看| 精品亚洲一区二区| 天天综合在线视频| 欧美v日韩v国产v| 精品国产黄色片| 制服丝袜中文字幕一区| 91 中文字幕| 欧美日韩不卡一区| 糖心vlog精品一区二区| 日本韩国精品一区二区在线观看| 国产成人亚洲精品自产在线 | 18禁裸男晨勃露j毛免费观看| 天天做天天爱天天综合网| 日韩精品成人一区二区在线观看| 无码日韩精品一区二区免费| 精品国产一区二区三区日日嗨| 国产成人精品福利| 国产一区精品视频| 高潮久久久久久久久久久久久久| av成人免费观看| 成人av婷婷| 国产专区一区二区| 日本成人a网站| 欧美三级电影在线播放| 精品中文一区| 视频在线精品一区| 91精品精品| 国产情侣第一页| 91久久午夜| 黄色片一级视频| 男女男精品视频| 中文字幕人妻无码系列第三区| 国产成人午夜电影网| a天堂视频在线观看| 久久久久久久一区| 日本一级片免费| 一区二区三区小说| 亚洲 欧美 视频| 在线观看亚洲精品视频| 97视频免费在线| 欧美精品电影在线播放| 国内精品偷拍视频| 精品亚洲国产成av人片传媒| 9色在线观看| 欧美国产第一页| 成人黄色免费短视频| 91在线观看免费观看| 噜噜噜狠狠夜夜躁精品仙踪林| 日本视频精品一区| 欧美在线三区| 欧美精品一区免费| 奇米影视7777精品一区二区| 性鲍视频在线观看| 久久欧美中文字幕| 91嫩草丨国产丨精品| 婷婷开心久久网| 一区二区三区黄| 亚洲国产精品99| 在线看的av网站| 97精品久久久| 亚洲我射av| 裸体丰满少妇做受久久99精品| 99国产精品免费视频观看| 每日在线观看av| 精品一区二区三区香蕉蜜桃| 久久久久国产精品无码免费看| 中文字幕不卡一区| 日韩av在线播| 欧美日韩精品一二三区| 午夜小视频在线播放| 久久精品国产91精品亚洲| 美女在线视频免费| 91精品网站| 成人一级毛片| 亚洲熟妇av一区二区三区漫画| 久久99久久久久| 少妇久久久久久久久久| 亚洲图片一区二区| 亚洲一区二区三区网站| 日韩av在线最新| 欧美人与牲禽动交com| 国产精品一香蕉国产线看观看| 久久激情av| 欧美少妇在线观看| 青青国产91久久久久久| 人妻丰满熟妇aⅴ无码| 一区二区在线观看av| 伊人免费在线观看高清版| 精品无码久久久久久国产| 日本高清在线观看视频| 成人h视频在线| 成人一二三区| 熟妇人妻va精品中文字幕| av在线不卡免费看| 精品亚洲永久免费| 欧美一级欧美三级| 日本中文字幕视频在线| 国产精品久久久久久影视| 亚洲精品国产精品粉嫩| 免费一级特黄毛片| 国产成人精品一区二| 破处女黄色一级片| 制服丝袜在线91| 成a人片在线观看| 成人亚洲激情网| 91精品91| 91精产国品一二三产区别沈先生| 国产精品午夜春色av| 波多野结衣视频网址| 亚洲视频免费一区| 极品美女一区| 日本不卡一区二区三区在线观看| 亚洲尤物影院| 国产精品无码永久免费不卡| 欧美日韩国产精品一区二区三区四区 | 婷婷色在线资源| 91精品国产综合久久久久久丝袜 | 日韩欧美中文字幕电影| 免费av观看网址| 91首页免费视频| 日日夜夜操视频| 亚洲最新视频在线| 岛国精品在线| 青少年xxxxx性开放hg| 国产一区二区伦理| 国产亚洲精品女人久久久久久| 欧美不卡一二三| 国产福利电影在线播放| 久久99精品久久久久久秒播放器 | 刘亦菲毛片一区二区三区| 久久免费观看视频| 牲欧美videos精品| 国产精彩免费视频| 国产精品久久久久久久久免费樱桃| 国产又粗又猛又黄又爽无遮挡| 欧美精品在线观看91| 久久综合社区| 成人在线激情网| 中文字幕一区二区三区四区| 国产熟女一区二区三区四区| 欧美黑人狂野猛交老妇| 色婷婷久久久| 日日噜噜夜夜狠狠| 亚洲黄色尤物视频| 日韩欧美亚洲系列| 成人黄色免费在线观看| 影音先锋久久久| 日韩精品无码一区二区三区久久久| 欧美日精品一区视频| 青春草在线视频| 欧美日韩精品一区| 韩国av一区二区| www.国产高清| 久久久精品一区| 性欧美lx╳lx╳| 亚洲一区二区三区观看| 亚洲a一区二区| yes4444视频在线观看| 98国产高清一区| 老**午夜毛片一区二区三区| 日本女人性生活视频| 亚洲精品99久久久久中文字幕| 巨胸喷奶水www久久久| 国产精品videossex国产高清| 久久久久久久久久看片| 午夜精品久久久久久久99热黄桃| 欧美又大粗又爽又黄大片视频| 91精品国产视频|