亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dumpmemory.cpp

?? wince 內核dump程序
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
    if (offset<=0xffffffff)    {        debug("\n%08lx - %08lx unknown", offset, 0);    }    debug("\n");}//-------------------------------------------------------------------------------#define GETBITS(w, start, end) ((w>>end)&((1<<(start-end+1)) - 1))void DumpTLB2(DWORD sectiontype, DWORD section, DWORD sectionvbase, DWORD basepaddress, DWORD nentries);void DumpIgnoreTLB2Entry(DWORD sectiontype, DWORD section, DWORD page, DWORD *ppageentry);void DumpTinyPageDescriptor(DWORD sectiontype, DWORD section, DWORD page, DWORD *ppageentry);void DumpSmallPageDescriptor(DWORD sectiontype, DWORD section, DWORD page, DWORD *ppageentry);void DumpLargePageDescriptor(DWORD sectiontype, DWORD section, DWORD page, DWORD *ppageentry);void DumpTLB(DWORD TLBBase);void DumpCoarseTLBEntry(DWORD section, DWORD sectionvbase, DWORD *psectionentry);void DumpFineTLBEntry(DWORD section, DWORD sectionvbase, DWORD *psectionentry);void DumpIgnoreTLBEntry(DWORD section, DWORD sectionvbase, DWORD *psectionentry);void DumpSectionDescriptor(DWORD section, DWORD sectionvbase, DWORD *psectionentry);extern "C" BOOL SetKMode(BOOL bFlag);extern "C" DWORD SetProcPermissions(DWORD dwPerms);int WINAPI WinMain(	HINSTANCE hInstance,					HINSTANCE hPrevInstance,					LPTSTR    lpCmdLine,					int       nCmdShow){	g_vmem.MapMemory(0xac000000, 0xc0000000, 0x02000000);	g_vmem.MapMemory(0x8c000000, 0xc0000000, 0x02000000);	g_vmem.MapMemory(0x80000000, 0x00000000, 0x02000000);    BOOL bMode = SetKMode(TRUE);    DWORD dwPerm = SetProcPermissions(0xFFFFFFFF);	DumpTLB(0xc00b0000);    SetKMode(bMode );    SetProcPermissions(dwPerm);	debug("virtual memory map-----------------------------------\n");    g_vregions.DumpMemoryMap();	debug("reverse memory map-----------------------------------\n");	g_vmem.DumpReverseMap();	return 0;}void DumpTLB(DWORD tlbbase){	// this is from p15, c2	// set it with 'MCR p15, 0, Rn, c2, c0'	// read it with 'MRC p15, 0, Rn, c2, c0'	//  or EE?2nf10   ?=0: MCR, ?=1: MRC    DWORD *TLB1= (DWORD*)g_vmem.GetPtr(tlbbase&0xffffc000);	g_vregions.MarkRegion((DWORD)TLB1, 0, "start of top level pagetable");	g_vregions.MarkRegion((DWORD)TLB1+4096*sizeof(DWORD), 0, "end of top level pagetable");    for (int section=0 ; section<4096 ; section++)    {        DWORD sectionentry= TLB1[section];        DWORD sectionvbase= section<<20;        switch(sectionentry&3)        {        case 0: DumpIgnoreTLBEntry(section, sectionvbase, TLB1+section); break;        case 1: DumpCoarseTLBEntry(section, sectionvbase, TLB1+section); break;        case 2: DumpSectionDescriptor(section, sectionvbase, TLB1+section); break;        case 3: DumpFineTLBEntry(section, sectionvbase, TLB1+section); break;        }    }}void DumpIgnoreTLBEntry(DWORD section, DWORD sectionvbase, DWORD *psectionentry){    if (*psectionentry&~3)		g_vregions.MarkRegion((DWORD)psectionentry, sizeof(DWORD), "IGN %08lx  : %08lx", sectionvbase, *psectionentry);}// describes 1MB page// physaddr= bits( TLB1[bits(addr,31,20)], 31, 20)<<20 | bits(addr,19,0)void DumpSectionDescriptor(DWORD section, DWORD sectionvbase, DWORD *psectionentry){	DWORD sectionentry = *psectionentry;    DWORD basepaddress= GETBITS(sectionentry, 31, 20)<<20;    int unused1= GETBITS(sectionentry, 19, 12);    int accessperms= GETBITS(sectionentry, 11, 10);    int unused2= GETBITS(sectionentry, 9, 9);    int domain= GETBITS(sectionentry, 8, 5);    int imp= GETBITS(sectionentry, 4, 4);    int cachable_bit= GETBITS(sectionentry, 3, 3);    int bufferable_bit= GETBITS(sectionentry, 2, 2);    if (unused1 || unused2)        debug("unexpected bits not null: %02x %02x\n", unused1, unused2);	g_vregions.MarkRegion((DWORD)psectionentry, sizeof(DWORD), "1st level tlb: section entry v%08lx -> p%08lx P=%d dom=%x imp=%d cachable=%d bufferable=%d",		sectionvbase, basepaddress, accessperms, domain, imp, cachable_bit, bufferable_bit);	g_vregions.MarkRegion(sectionvbase, 1024*1024, "section phys=%08lx", basepaddress);	g_vmem.MapMemory(sectionvbase, basepaddress, 1024*1024);}// TLB2=bits(TLB1[bits(addr,31,20)], 31, 10)<<10 //    TLB3= TLB2[bits(addr, 19,12)]//    physaddr= bits(TLB3, ?,?) | bits(addr(11,0)// can point to large and small pages.// a coarse table is 1Kbytevoid DumpCoarseTLBEntry(DWORD section, DWORD sectionvbase, DWORD *psectionentry){	DWORD sectionentry = *psectionentry;    DWORD basepaddress= GETBITS(sectionentry, 31, 10)<<10;    int unused1= GETBITS(sectionentry, 9, 9);    int domain= GETBITS(sectionentry, 8, 5);    int imp= GETBITS(sectionentry, 4, 2);    if (unused1)        debug("unexpected bits not null: %02x\n", unused1);	g_vregions.MarkRegion((DWORD)psectionentry, sizeof(DWORD), "1st level tlb: coarse tlb entry  @%08lx  dom=%x imp=%d   v=%08lx", 		basepaddress, domain, imp, sectionvbase);    DumpTLB2(1, section, sectionvbase, basepaddress, 256);}// // TLB2=bits(TLB1[bits(addr,31,20)], 31, 12)<<12//    TLB3= TLB2[bits(addr, 19,10)]//    physaddr= bits(TLB3, ?,?) | bits(addr(9,0)// a coarse table is 4Kbytevoid DumpFineTLBEntry(DWORD section, DWORD sectionvbase, DWORD *psectionentry){	DWORD sectionentry = *psectionentry;    DWORD basepaddress= GETBITS(sectionentry, 31, 12)<<12;    int unused1= GETBITS(sectionentry, 11, 9);    int domain= GETBITS(sectionentry, 8, 5);    int imp= GETBITS(sectionentry, 4, 2);    if (unused1)        debug("unexpected bits not null: %02x\n", unused1);	g_vregions.MarkRegion((DWORD)psectionentry, sizeof(DWORD), "1st level tlb: fine tlb entry @%08lx dom=%x imp=%d  v=%08lx", 			basepaddress, domain, imp, sectionvbase);    DumpTLB2(3, section, sectionvbase, basepaddress, 1024);}// sectionbase is the 1MB virtual memory range this tlb maps.// baseaddress is the physical memmory address of this 2nd level tlbvoid DumpTLB2(DWORD sectiontype, DWORD section, DWORD sectionvbase, DWORD basepaddress, DWORD nentries){    DWORD *TLB2= (DWORD*)g_vmem.GetPtr(basepaddress);	if (TLB2==NULL)	{		debug(".......\n");		return;	}	g_vregions.MarkRegion((DWORD)TLB2, 0, "start 2nd level page table for section %08lx  (v=%08lx)", section, sectionvbase);	g_vregions.MarkRegion((DWORD)TLB2+nentries*sizeof(DWORD), 0, "end 2nd level page table for section %08lx  (v=%08lx)", section, sectionvbase);    for (DWORD page=0 ; page<nentries ; page++)    {        DWORD pageentry= TLB2[page];        switch(pageentry&3)        {        case 0: DumpIgnoreTLB2Entry(sectiontype, section, page, TLB2+page); break;        case 1: DumpLargePageDescriptor(sectiontype, section, page, TLB2+page); break;        case 2: DumpSmallPageDescriptor(sectiontype, section, page, TLB2+page); break;        case 3: DumpTinyPageDescriptor(sectiontype, section, page, TLB2+page); break;        }    }}void DumpIgnoreTLB2Entry(DWORD sectiontype, DWORD section, DWORD page, DWORD *ppageentry){    if (*ppageentry&~3)		g_vregions.MarkRegion((DWORD)ppageentry, sizeof(DWORD), "IGN sect %08lx  page %08lx : %08lx", section, page, *ppageentry);}// describes 64K page// bits(tlb, 31, 16) | bits(addr, 15, 0)//    // large page table entry must repeat 16 times in a coarse page table,//                            and 64 times in a fine page table// or in other words://      in a 2nd level coarse page table, bits 15-12 of the page index are ignored//  and in a 2nd level fine page table, bits  15-10 of the page index are ignoredvoid DumpLargePageDescriptor(DWORD sectiontype, DWORD section, DWORD page, DWORD *ppageentry){	DWORD pageentry= *ppageentry;    DWORD basepaddress= GETBITS(pageentry, 31, 16)<<16;    DWORD unused1= GETBITS(pageentry, 15, 12);    DWORD ap3= GETBITS(pageentry, 11, 10);    DWORD ap2= GETBITS(pageentry, 9, 8);    DWORD ap1= GETBITS(pageentry, 7, 6);    DWORD ap0= GETBITS(pageentry, 5, 4);    int cachable_bit= GETBITS(pageentry, 3, 3);    int bufferable_bit= GETBITS(pageentry, 2, 2);    if (unused1)        debug("unexpected non-0: %02x\n", unused1);	DWORD pagevaddress= (section<<20) | (page<< (sectiontype==1?12:10))&0xffff0000;	g_vregions.MarkRegion((DWORD)ppageentry, sizeof(DWORD), 			"2nd level tlb: large page entry  v=%08lx p=%08lx ap=%d.%d.%d.%d cachable=%d bufferable=%d   [ s=%08lx ]",			pagevaddress, basepaddress, ap0, ap1, ap2, ap3, cachable_bit, bufferable_bit, section<<20);	g_vregions.MarkRegion(pagevaddress, 65536, "large page phys=%08lx  entry=%08lx", basepaddress, ppageentry);	g_vmem.MapMemory(pagevaddress, basepaddress, 65536);}// describe 4K page// bits(tlb, 31, 12) | bits(addr, 11, 0)void DumpSmallPageDescriptor(DWORD sectiontype, DWORD section, DWORD page, DWORD *ppageentry){	DWORD pageentry= *ppageentry;    DWORD basepaddress= GETBITS(pageentry, 31, 12)<<12;    DWORD ap3= GETBITS(pageentry, 11, 10);    DWORD ap2= GETBITS(pageentry, 9, 8);    DWORD ap1= GETBITS(pageentry, 7, 6);    DWORD ap0= GETBITS(pageentry, 5, 4);    int cachable_bit= GETBITS(pageentry, 3, 3);    int bufferable_bit= GETBITS(pageentry, 2, 2);	DWORD pagevaddress= (section<<20) | (page<<12);	g_vregions.MarkRegion((DWORD)ppageentry, sizeof(DWORD), 			"2nd level tlb: small page entry  v=%08lx p=%08lx ap=%d.%d.%d.%d cachable=%d bufferable=%d   [ s=%08lx ]",			pagevaddress, basepaddress, ap0, ap1, ap2, ap3, cachable_bit, bufferable_bit, section<<20);	g_vregions.MarkRegion(pagevaddress, 4096, "small page phys=%08lx  entry=%08lx", basepaddress, ppageentry);	g_vmem.MapMemory(pagevaddress, basepaddress, 4096);}// describe a 1K page// bits(tlb, 31, 10) | bits(addr, 9, 0)void DumpTinyPageDescriptor(DWORD sectiontype, DWORD section, DWORD page, DWORD *ppageentry){	DWORD pageentry= *ppageentry;    DWORD basepaddress= GETBITS(pageentry, 31, 10)<<10;    DWORD unused1= GETBITS(pageentry, 9, 6);    DWORD ap= GETBITS(pageentry, 5, 4);    int cachable_bit= GETBITS(pageentry, 3, 3);    int bufferable_bit= GETBITS(pageentry, 2, 2);    if (unused1)        debug("unexpected non-0: %02x\n", unused1);	DWORD pagevaddress= (section<<20) | (page<<12);	g_vregions.MarkRegion((DWORD)ppageentry, sizeof(DWORD), 			"2nd level tlb: tiny page entry  v=%08lx p=%08lx ap=%d cachable=%d bufferable=%d   [ s=%08lx ]",			pagevaddress, basepaddress, ap, cachable_bit, bufferable_bit, section<<20);	g_vregions.MarkRegion(pagevaddress, 1024, "tiny page phys=%08lx  entry=%08lx", basepaddress, ppageentry);	g_vmem.MapMemory(pagevaddress, basepaddress, 1024);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
不卡在线观看av| 麻豆久久一区二区| 99视频热这里只有精品免费| 国产欧美va欧美不卡在线| 国产精品99久久久久| 欧美激情一区不卡| 一本一道综合狠狠老| 亚洲成人动漫在线免费观看| 欧美一区2区视频在线观看| 美女免费视频一区二区| 久久一区二区三区国产精品| 丁香桃色午夜亚洲一区二区三区| 91麻豆国产香蕉久久精品| 欧美成人性福生活免费看| 国产老肥熟一区二区三区| 国产精品久久久久久久久快鸭| 91玉足脚交白嫩脚丫在线播放| 一区二区三区在线视频观看| 51午夜精品国产| 丁香婷婷综合色啪| 性感美女极品91精品| 精品盗摄一区二区三区| 91论坛在线播放| 欧美aa在线视频| 亚洲欧美综合另类在线卡通| 欧美人与z0zoxxxx视频| 国产99一区视频免费| 亚洲chinese男男1069| 精品国产三级a在线观看| 一本色道久久综合狠狠躁的推荐| 美国十次综合导航| 一区二区视频在线看| 精品日产卡一卡二卡麻豆| 91在线视频观看| 激情五月婷婷综合| 一级特黄大欧美久久久| 国产亚洲美州欧州综合国| 欧美日韩国产综合一区二区三区| 丰满白嫩尤物一区二区| 免费在线观看成人| 亚洲一区日韩精品中文字幕| 久久久久久久综合| 欧美图片一区二区三区| 成人黄色片在线观看| 美女视频一区二区三区| 亚洲影院久久精品| 国产女同互慰高潮91漫画| 日韩一级片在线播放| 91麻豆福利精品推荐| 国产99久久久国产精品潘金网站| 日本不卡123| 亚洲一区av在线| 成人欧美一区二区三区| 国产日产欧美一区二区三区| 欧美电影免费观看高清完整版在线 | 日本久久一区二区| 国产精品66部| 麻豆视频一区二区| 日日摸夜夜添夜夜添国产精品| 国产精品高清亚洲| 久久久久九九视频| 日韩精品一区二| 欧美一激情一区二区三区| 欧美亚洲一区三区| 91视频xxxx| av一本久道久久综合久久鬼色| 激情都市一区二区| 精品99一区二区| 国产精品亲子乱子伦xxxx裸| 日韩欧美成人一区二区| 欧美日韩成人一区| 一道本成人在线| 日本高清视频一区二区| 91亚洲男人天堂| av激情亚洲男人天堂| 床上的激情91.| 成人免费视频播放| av资源网一区| 91一区二区在线观看| 色就色 综合激情| 欧美视频一区二区三区在线观看 | 国产精品理论在线观看| 日韩一区二区免费在线观看| 欧美日韩免费一区二区三区| 欧美亚洲日本国产| 欧美午夜精品免费| 欧美日韩你懂得| 欧美一级理论片| 久久综合九色综合欧美98| 精品黑人一区二区三区久久| 国产日韩欧美精品在线| 国产精品视频看| 夜夜爽夜夜爽精品视频| 视频一区国产视频| 亚洲国产一二三| 午夜视频在线观看一区二区 | 91久久一区二区| 欧美日韩精品一区二区在线播放 | 色天天综合色天天久久| 欧美系列亚洲系列| 日韩一区国产二区欧美三区| 日韩免费看网站| 国产精品免费看片| 亚洲国产wwwccc36天堂| 久热成人在线视频| 国产成人a级片| 在线一区二区视频| 91精品国产综合久久精品app | www激情久久| **欧美大码日韩| 日韩精品一二三| 成人黄色国产精品网站大全在线免费观看 | 91色|porny| 777亚洲妇女| 欧美高清在线精品一区| 亚洲国产一二三| 国产成人免费视频网站| 在线日韩av片| 久久久噜噜噜久久人人看| 亚洲精品视频在线观看网站| 久久精品国产秦先生| 91麻豆123| 国产校园另类小说区| 亚洲国产精品久久久久秋霞影院| 国产一区二区三区香蕉 | 91精品午夜视频| 国产日韩综合av| 午夜av电影一区| 成人av在线观| 欧美成人a视频| 亚洲视频一区二区免费在线观看| 蜜桃av噜噜一区二区三区小说| eeuss鲁片一区二区三区在线观看| 日韩一区二区中文字幕| 亚洲天堂免费看| 国产自产2019最新不卡| 欧美三级一区二区| 国产精品成人一区二区艾草| 久久国产综合精品| 欧美日韩专区在线| 亚洲人成网站影音先锋播放| 国产精品一区久久久久| 欧美一卡二卡三卡| 亚洲成a人v欧美综合天堂| 91老师片黄在线观看| 国产欧美日韩三区| 久久99久久久欧美国产| 在线成人高清不卡| 亚洲乱码一区二区三区在线观看| 国产成人精品亚洲午夜麻豆| 欧美一级在线观看| 亚洲成人一区二区| 一本大道av伊人久久综合| 国产精品水嫩水嫩| 国产在线视频一区二区| 日韩午夜在线影院| 日韩国产高清在线| 欧美日韩第一区日日骚| 一区二区三区加勒比av| 91在线国产福利| 国产精品卡一卡二| 91在线精品秘密一区二区| 亚洲欧美一区二区三区国产精品| 成人免费观看av| 中文字幕一区二区三| 9i看片成人免费高清| 1区2区3区欧美| 99精品视频在线观看免费| 中文字幕第一区综合| 成人精品视频.| 国产精品国产三级国产专播品爱网| 国产福利一区二区三区视频在线| 精品sm捆绑视频| 国产69精品久久99不卡| 中文文精品字幕一区二区| 高清国产午夜精品久久久久久| 欧美激情一区二区三区全黄| av高清久久久| 亚洲资源在线观看| 制服丝袜亚洲网站| 韩国视频一区二区| 久久夜色精品一区| 国产传媒久久文化传媒| 国产精品午夜在线| 97se狠狠狠综合亚洲狠狠| 亚洲精品日韩一| 欧美精品久久天天躁| 久久电影国产免费久久电影| 日韩免费在线观看| 国产成人久久精品77777最新版本| 日本一区二区三区电影| 99精品一区二区| 亚洲成人tv网| 亚洲精品一区二区精华| 成人91在线观看| 日韩专区欧美专区| 久久免费电影网| 色综合天天狠狠| 精品一区二区久久久| 综合分类小说区另类春色亚洲小说欧美|