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

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

?? parsecrash.pl

?? wince 內核dump程序
?? PL
?? 第 1 頁 / 共 5 頁
字號:
        struct('Module.bTrustLevel', $mod),        $vimg->ReadWString(struct('Module.lpszModName', $mod)));}if ($doListModules) {    for (my $mod= kdata('KINX_MODULES') ; $mod ; $mod= struct('Module.pMod', $mod)) {        DumpModuleEntry($mod);    }}if ($doDumpMemory) {    croak "specify virtual address with -d\n" if (!@ARGV);    my $addr= eval(shift);    croak "specify virtual address with -d\n" if (!defined $addr);    for (my $i= 0 ; $i<256 ; $i+=4) {        printf("%08lx: ", $addr+$i) if (($i%16)==0);        printf(" %08lx", $vimg->ReadDword($addr+$i));        printf("\n") if (($i%16)==12);    }}if ($doSaveSection == 1) {    croak "specify virtual address with -s\n" if (!@ARGV);    my $addr= eval(shift);    croak "specify virtual address with -s\n" if (!defined $addr);    my $length= eval(shift);    croak "specify length with -s\n" if (!defined $length);    my $savefile= shift;    croak "specify savefile with -s\n" if (!$savefile);    my $fh= IO::File->new($savefile, "w") or croak "$savefile: $!\n";    binmode $fh;    for (my $ofs= $addr ; $ofs < $addr + $length ; $ofs += 0x1000)    {        my $data;        eval {            $data= $vimg->ReadData($ofs, 0x1000);        };        if (!$@) {            $fh->print($data);        }        else {            $fh->seek(0x1000, SEEK_CUR);        }    }}if ($doSaveSection == 2) {    SaveAllSections();}if ($doSectionOverview) {    PrintSectionOverview();}if ($doListHandles) {    ListHandles();}exit(0);sub isStartPtr {    my $ofs= shift;    return ((struct('HDATA.hValue', $ofs)&3)!=2);}sub handle2HData {    my $h= shift;    return kdata('handleBase')+($h&0x1ffffffc);}sub handleFFSD {    my ($vmbase, $obj)= @_;    return struct("FFSDinfo.pFileinfo->pFilename->name", $obj, $vmbase);}sub handleHFSD {    my ($vmbase, $obj)= @_;    return struct("FFSDinfo.pGtgtInfo->pWStrName->str", $obj, $vmbase);}sub handleW32D {    my ($vmbase, $obj)= @_;    return sprintf("%s%d:",         struct("fsopendev_t.lpDev->type", $obj, $vmbase),        struct("fsopendev_t.lpDev->index", $obj, $vmbase)    );}sub handleW32H {    my ($vmbase, $obj)= @_;    return sprintf("oid %08lx", struct("W32Hinfo.oid", $obj, $vmbase));}sub handlePFSD {    my ($vmbase, $obj)= @_;    return "" if ($obj==1);    return struct("FFSDinfo.name", $obj, $vmbase);}sub handleBDEV {    my ($vmbase, $obj)= @_;    return sprintf("%s - %s",         struct("BDEVinfo.name1", $obj, $vmbase),        struct("BDEVinfo.name2", $obj, $vmbase));}sub handleSTRG {    my ($vmbase, $obj)= @_;    return sprintf("%s %s %s",        struct("STRGinfo.pstorageinfo->devname", $obj, $vmbase),        struct("STRGinfo.pstorageinfo->desc1", $obj, $vmbase),        struct("STRGinfo.pstorageinfo->desc2", $obj, $vmbase));}sub handleFMAP {    my ($vmbase, $obj)= @_;    return struct("FSMAP.name->name", $obj, $vmbase);}sub structdumper {    my ($type, $vmbase, $ofs, $parent)= @_;    return "(null)" if ($ofs==0);    return sprintf("(null_%04lx)",$ofs) if ($ofs<0x10000);    if ($type eq "CINFO") {        # special handling for cinfo.        $vmbase= struct("CINFO.pServer->dwVMBase", $ofs);    }    if ( exists $dumptypes{vmofs($ofs,$vmbase)} && $dumptypes{vmofs($ofs,$vmbase)} ne $type          && $dumptypes{vmofs($ofs,$vmbase)} ne "APISET" && $type ne "CINFO") {         #  APISET = { CINFO + dword }        warn sprintf("\n!%08lx : %s != %s  - %s {%s}\n", $ofs, $dumptypes{vmofs($ofs,$vmbase)}, $type, $parent, join(", ", @{$dumpoffsets{vmofs($ofs,$vmbase)}}) );    }    else {        $dumptypes{vmofs($ofs,$vmbase)}= $type;    }    $dumpedstructs{vmofs($ofs, $vmbase)}++;    my @itemstrs;    for my $item (sort { $a->{ofs} <=> $b->{ofs} } values %{$structs{$type}{items}}) {        my $dumppath= sprintf("%s->%s.%s:%08lx", $parent, $type, $item->{name}, $ofs);        if (exists $item->{ptype}) {            my @values= struct("$type.$item->{name}", $ofs, $vmbase);            for my $ixval (0..$#values) {                my $val= $values[$ixval];                next if (!$vimg->isValidPtr(vmofs($val, $vmbase)));                push @{$dumpoffsets{vmofs($val,$vmbase)}}, sprintf("%s[%d]", $dumppath, $ixval);                if ( exists $dumptypes{vmofs($val,$vmbase)} && $dumptypes{vmofs($val,$vmbase)} ne $item->{ptype} ) {                    warn sprintf("\n!%s:%08lx %s=%08lx: %s != %s - %s {%s}\n",                         $type, $ofs, $item->{name}, vmofs($val,$vmbase),                         $dumptypes{vmofs($val,$vmbase)}, $item->{ptype}, $parent, join(", ", @{$dumpoffsets{vmofs($ofs,$vmbase)}}) );                }                else {                    $dumptypes{vmofs($val,$vmbase)}= $item->{ptype};                }            }        }        elsif ($item->{type} eq "DWORD") {            my @values= struct("$type.$item->{name}", $ofs, $vmbase);            for my $ixval (0..$#values) {                my $val= $values[$ixval];                next if (!$vimg->isValidPtr(vmofs($val, $vmbase)));                # todo: add value index to offset string for items.count>1                push @{$dumpoffsets{vmofs($val,$vmbase)}}, sprintf("%s[%d]", $dumppath, $ixval);            }        }        if (exists $structs{$item->{type}}{format}) {            my @value= struct("$type.$item->{name}", $ofs, $vmbase);            push @itemstrs, sprintf("%s=[%s]", $item->{name}, join(",", map { sprintf($structs{$item->{type}}{format}, $value[$_]) } (0..$#value)));        }        else {            push @itemstrs, sprintf("%s=[%s]", $item->{name}, join(",", map {                        structdumper($item->{type}, $vmbase, structofs("$type.$item->{name}", $ofs, $vmbase)+$structs{$item->{type}}{size}*$_,                             sprintf("%s[%d]", $dumppath, $_))                     } (0..$item->{count}-1)));        }    }    return sprintf("%s:%s", $type, join(", ", @itemstrs));}sub ListHandles{    my $ha= handle2HData(kdata('hCurProc'));    my $hi= $ha;    do {        if (isStartPtr($ha)) {            $ha= struct('HDATA.fwd', $ha);        }        my $acname= struct('HDATA.pci->acName', $ha);		printf("%08lx %-4s  %08lx %08lx", $ha, $acname, struct('HDATA.hValue', $ha), struct('HDATA.pvObj', $ha));        $dumptypes{$ha}= "HDATA";        $dumpedstructs{$ha}++;        if (!exists $handletypes{$acname}) {        }        else {            if ($g_verbose) {                print " ", structdumper($handletypes{$acname}{structtype},                    struct('HDATA.pci->pServer', $ha) ? struct('HDATA.pci->pServer->dwVMBase', $ha) : 0,                     struct('HDATA.pvObj', $ha), sprintf("HDATA[%08lx].pvObj", $ha));            }            elsif (exists $handletypes{$acname}{simpledump}) {                print " ", $handletypes{$acname}{simpledump}(                    struct('HDATA.pci->pServer', $ha) ? struct('HDATA.pci->pServer->dwVMBase', $ha) : 0,                     struct('HDATA.pvObj', $ha));            }        }        print "\n";        $ha= struct('HDATA.fwd', $ha);    } while ($hi != $ha);    if ($g_verbose) {        my $newcount;        do {            $newcount=0;            for my $ofs (keys %dumpoffsets) {                if (!exists $dumpedstructs{$ofs}) {                    eval {                        if (exists $dumptypes{$ofs}) {                            printf("%08lx##:%s{%s} %s\n", $ofs, $dumptypes{$ofs}, join(", ", @{$dumpoffsets{$ofs}}), structdumper($dumptypes{$ofs}, ofsvm($ofs), $ofs, sprintf("%s", $dumpoffsets{$ofs}[0])));                        }                        else {                            printf("%08lx##{%s} %s\n", $ofs, join(", ", @{$dumpoffsets{$ofs}}), structdumper("DWLIST", ofsvm($ofs), $ofs, sprintf("%s", $dumpoffsets{$ofs}[0])));                        }                    };                    if ($@) { printf("%08lx!!!!!%s  %s\n", $ofs, exists $dumptypes{$ofs}?$dumptypes{$ofs}:"", $@); }                    $dumpedstructs{$ofs}++;                    $newcount++;                }            }        } while ($newcount);    }}sub SaveAllSections{}sub PrintSectionOverview{    my %phys;    for my $ixSection (1..63, 0xb3) {        my $pscn = $vimg->ReadDword(kdata('KINX_SECTIONS') + 4*$ixSection);        if ($pscn!=0) {            for my $ixBlock (0..511) {                my $pmb = $vimg->ReadDword($pscn+4*$ixBlock);                if ($pmb!=0 && $pmb!=1) {                    my $apages= struct("MemBlock.aPages", $pmb);                    for my $ixPage (0..15) {                        my $dwPage= $vimg->ReadDword($apages+4*$ixPage);                        if ($dwPage!=~0xf && $dwPage!=0) {                            push @{$phys{$dwPage&0xfffff000}}, $ixSection;                        }                    }                }            }        }    }    # todo: process KINX_MEMINFO  -> freelists    my %stotal;    for my $pofs (keys %phys) {        $stotal{$_} += 0x1000 / @{$phys{$pofs}} for @{$phys{$pofs}};    }    printf("memory usage per secion:\n");    for my $ix (sort { $a<=>$b } keys %stotal) {        printf("%02x : %8x\n", $ix*2, $stotal{$ix});    }    my $prevptag;    my $prevprintedofs;    my $lastpofs;    for my $pofs (sort {$a<=>$b} keys %phys)    {        my $ptag= join(":",map { sprintf("%02x", $_) } sort {$a<=>$b} @{$phys{$pofs}});        if (!defined $lastpofs) {            printf("%08lx-%08lx ----\n", 0, $pofs);            $prevptag= undef;            $prevprintedofs= $pofs;        }        elsif (defined $lastpofs && $pofs-$lastpofs>0x1000) {            if (defined $prevptag) {                printf("%08lx-%08lx  %s\n", $prevprintedofs, $lastpofs+0x1000, $prevptag);            }            printf("%08lx-%08lx ----\n", $lastpofs+0x1000, $pofs);            $prevptag= undef;            $prevprintedofs= $pofs;        }        elsif (defined $prevptag && $prevptag ne $ptag) {            printf("%08lx-%08lx  %s\n", $prevprintedofs, $lastpofs+0x1000, $prevptag);            $prevprintedofs= $lastpofs+0x1000;        }        $prevptag= $ptag;        $lastpofs= $pofs;    }    printf("%08lx-%08lx  %s\n", $prevprintedofs, $lastpofs+0x1000, $prevptag);    printf("%08lx-%08lx ----\n", $lastpofs+0x1000, -1);}sub DumpOpenExe {    my $addr= shift;    my $type= struct('openexe_t.filetype', $addr);    my $isoid= struct('openexe_t.bIsOID', $addr);    if ($type==2) {   # objstore        printf("openexe: objectstore handle=%08lx pm=%04x %08lx",            struct('openexe_t.handle', $addr),            struct('openexe_t.pagemode', $addr),            struct('openexe_t.offset', $addr));    }    elsif ($type==3) {# romimage        printf("openexe: TOCentry=%08lx pm=%04x %08lx",            struct('openexe_t.handle', $addr),            struct('openexe_t.pagemode', $addr),            struct('openexe_t.offset', $addr));    }    elsif ($type==4) {# extimage        printf("openexe: ppfs handle=%08lx pm=%04x %08lx",            struct('openexe_t.handle', $addr),            struct('openexe_t.pagemode', $addr),            struct('openexe_t.offset', $addr));    }    if ($isoid) {        printf("  oid=%08lx\n", struct('openexe_t.name', $addr));    }    else {        printf("  name=%s\n", struct('openexe_t.name->name', $addr));    }}sub DumpProcessEntry {    my $addr= shift;    return if (struct('PROCESS.dwVMBase', $addr)==0);    my $nameptr= struct('PROCESS.lpszProcName', $addr);    my $cmdlineptr= struct('PROCESS.pcmdline', $addr);    #todo:    #  create object that translates process memory.    my $procnum= struct('PROCESS.procnum', $addr);    printf("%08lx: slot%02lx vmbase=%08lx hProc= %08lx  name=%08lx:%s  cmd=%08lx:%s\n",        $addr,        $procnum,        struct('PROCESS.dwVMBase', $addr),        struct('PROCESS.hProc', $addr),        $nameptr,        $vimg->ReadWString($nameptr),        $cmdlineptr,        $vimg->ReadWString($cmdlineptr));    DumpOpenExe(structofs('PROCESS.oe', $addr));    if (struct('PROCESS.pTh', $addr)) {        DumpThreads(struct('PROCESS.pTh', $addr));    }}sub DumpThreads {    my $firstaddr= shift;    my $addr= $firstaddr;    while (1) {        DumpThread($addr);        $addr= struct('THREAD.pNextInProc', $addr);        last if ($addr==0 || $addr==$firstaddr);    }}sub DumpThread {    my $addr= shift;    printf("%08lx:    hTh=%08lx  SP=%08lx LR=%08lx PC=%08lx  prio=%02x.%02x start=%08lx  kern=%08lx  user=%08lx\n",         $addr,        struct('THREAD.hTh', $addr),        struct('THREAD.ctx.reg_Sp', $addr),        struct('THREAD.ctx.reg_Lr', $addr),        struct('THREAD.ctx.reg_Pc', $addr),        struct('THREAD.bBPrio', $addr),        struct('THREAD.bCPrio', $addr),        struct('THREAD.dwStartAddr', $addr),        struct('THREAD.dwKernTime', $addr),        struct('THREAD.dwUserTime', $addr)    );    if ($g_verbose) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产午夜一区二区三区| 91久久精品网| 国产亚洲美州欧州综合国| 麻豆精品久久久| 精品久久久久久久久久久久包黑料 | 亚洲色图视频网站| av毛片久久久久**hd| 亚洲欧美经典视频| 欧美精品tushy高清| 久久国产精品色婷婷| 国产午夜亚洲精品不卡| av不卡在线观看| 亚瑟在线精品视频| 精品国产区一区| 成人性生交大合| 一区二区三区四区五区视频在线观看 | 日韩欧美资源站| 国产在线精品一区二区不卡了| 久久精品视频网| 91免费观看视频| 免费三级欧美电影| 国产精品美女久久久久久久久 | 国产成人在线视频网站| 国产精品二三区| 欧美一区二区三区成人| 粉嫩13p一区二区三区| 一区二区三区 在线观看视频| 777色狠狠一区二区三区| 国产福利一区在线| 亚洲电影一级片| 久久精品人人做人人爽97| 色综合亚洲欧洲| 久久69国产一区二区蜜臀| 亚洲蜜臀av乱码久久精品| 日韩精品一区二区三区老鸭窝 | 色婷婷亚洲婷婷| 激情欧美一区二区三区在线观看| ...xxx性欧美| 亚洲精品一区在线观看| 欧美午夜电影在线播放| 国v精品久久久网| 免费成人美女在线观看| 中文字幕在线观看一区| 精品少妇一区二区三区视频免付费 | 中文字幕人成不卡一区| 精品国产乱码久久久久久牛牛| 色吧成人激情小说| 国产成人精品午夜视频免费| 亚洲第一精品在线| 中文字幕一区在线观看| 精品国产伦一区二区三区观看方式 | 成人午夜免费电影| 日韩成人一区二区| 亚洲欧美电影一区二区| 欧美精品一区二| 日韩一区二区影院| 欧美久久久久久久久中文字幕| jlzzjlzz亚洲女人18| 国产一区二区三区蝌蚪| 蜜臀a∨国产成人精品| 亚洲夂夂婷婷色拍ww47 | 欧洲av在线精品| 不卡的av在线| 成人精品一区二区三区四区| 国产美女主播视频一区| 蜜臀av性久久久久蜜臀aⅴ流畅| 性感美女极品91精品| 亚洲国产精品一区二区久久恐怖片| 亚洲欧洲精品天堂一级| 中文字幕色av一区二区三区| 国产女人aaa级久久久级| 久久久久久久久97黄色工厂| 久久伊99综合婷婷久久伊| 日韩久久精品一区| 日韩精品最新网址| 亚洲一区二区三区视频在线| 日韩欧美二区三区| 91麻豆成人久久精品二区三区| 综合网在线视频| 中文字幕亚洲一区二区av在线| 欧美国产成人精品| 中文字幕精品三区| 亚洲欧美色图小说| 亚洲夂夂婷婷色拍ww47| 亚洲一区二区精品视频| 石原莉奈在线亚洲三区| 美女一区二区三区在线观看| 青青草视频一区| 精品在线免费观看| 国产成人av网站| 99久久精品免费看国产免费软件| 91亚洲国产成人精品一区二区三| 91福利国产成人精品照片| 欧美在线你懂得| 日韩区在线观看| 久久精品人人做人人爽人人| 国产精品日韩精品欧美在线| 亚洲免费观看视频| 日韩av网站在线观看| 国内精品免费在线观看| 成人晚上爱看视频| 欧美色涩在线第一页| 日韩一区二区电影网| 国产欧美日韩在线| 亚洲黄色小视频| 激情成人午夜视频| 色综合久久中文字幕| 欧美精品丝袜中出| 国产亚洲视频系列| 一卡二卡欧美日韩| 麻豆精品一二三| av亚洲精华国产精华| 欧美丰满少妇xxxbbb| 久久嫩草精品久久久精品| 亚洲精品视频在线观看网站| 日本视频中文字幕一区二区三区| 国产高清精品久久久久| 欧洲精品中文字幕| 国产亚洲欧美在线| 午夜欧美2019年伦理| 国产精品一区二区久久精品爱涩| 在线观看亚洲成人| 精品国产网站在线观看| 亚洲愉拍自拍另类高清精品| 韩国精品主播一区二区在线观看| 欧美最新大片在线看| 久久精品人人做人人爽人人| 亚洲一级片在线观看| 国产传媒欧美日韩成人| 欧美美女视频在线观看| 中文字幕一区二区三区色视频| 美女脱光内衣内裤视频久久网站| 97se亚洲国产综合自在线观| 精品国产免费一区二区三区香蕉| 亚洲午夜久久久久| 成人美女视频在线观看18| 日韩欧美一区二区视频| 亚洲午夜久久久久久久久电影网 | 精品国产伦一区二区三区免费| 亚洲精品中文字幕在线观看| 国产电影一区在线| 日韩欧美第一区| 亚洲国产色一区| 91小视频免费观看| 国产精品入口麻豆原神| 国产激情一区二区三区四区| 欧美一级久久久久久久大片| 亚洲gay无套男同| 91精彩视频在线| 国产精品国产成人国产三级| 狠狠色狠狠色综合| 欧美一区二区三区四区五区| 亚洲一区二区三区在线| 色国产精品一区在线观看| 中文字幕一区二区三区四区不卡 | 一区二区理论电影在线观看| 成人少妇影院yyyy| 国产校园另类小说区| 国产伦精品一区二区三区免费| 日韩一区二区在线观看视频| 亚洲成人av福利| 欧美性xxxxxx少妇| 亚洲国产欧美在线| 欧美视频在线不卡| 亚洲国产一区二区三区青草影视| 91行情网站电视在线观看高清版| 亚洲视频在线一区| 色婷婷综合久久久久中文一区二区| 亚洲视频精选在线| 日本精品一区二区三区四区的功能| 中文字幕一区二区三区在线播放| av成人免费在线| 亚洲一区二区三区四区五区黄| 91国在线观看| 视频在线在亚洲| 欧美电影免费观看高清完整版| 奇米色一区二区三区四区| 日韩你懂的在线观看| 黄页网站大全一区二区| 国产欧美日韩三区| 99re这里只有精品首页| 亚洲最新在线观看| 欧美另类久久久品| 激情欧美一区二区三区在线观看| 久久精品视频一区二区三区| www.欧美.com| 亚洲成av人片| 精品久久久久久久久久久久包黑料 | 亚洲欧美在线高清| 欧美伊人久久大香线蕉综合69| 亚洲妇女屁股眼交7| 精品免费国产二区三区| 丁香桃色午夜亚洲一区二区三区| 国产精品第一页第二页第三页| 欧洲一区二区av| 国模一区二区三区白浆| 中文字幕一区二区三中文字幕| 欧美日韩色综合| 国产精品综合久久| 一区二区免费在线播放|