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

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

?? parsecrash.pl

?? wince 內核dump程序
?? PL
?? 第 1 頁 / 共 5 頁
字號:
#!perl -w# (C) 2003-2007 Willem Jan Hengeveld <itsme@xs4all.nl># Web: http://www.xs4all.nl/~itsme/#      http://wiki.xda-developers.com/## $Id: parsecrash.pl 1762 2008-04-10 11:57:55Z itsme $#use strict;use IO::File;use Carp qw(croak verbose);use Getopt::Long qw(:config no_ignore_case);use Dumpvalue;my $d= new Dumpvalue;$|=1;# find the tlb by looking for 'vfffd0000' in the output of 'pmemmap -v'# magician:#  load 0xa0000000 allram.nb#  tlb 0xa0660000## typhoon:# load 0x20001000 4640.mem# load 0x10000000 8300.mem# load 0x10200000 8c00.mem# load 0x20000000 8e00.mem# load 0x11d00000 8f10.mem# tlb 0x10200000 # #  himalaya:#  0xfffd0000 -> 0x901c0000  TLB#  0xffff0000 -> 0x901c4000  vectors#  0xffffc000 -> 0x901c5000  Kdata##  z:/sources/wince500/PUBLIC/COMMON/SDK/INC/winnt.h#     IMAGE_DOS_HEADER#  z:/sources/wince500/PUBLIC/COMMON/SDK/INC/kfuncs.h#     SH_*  #  z:/sources/wince500/PUBLIC/COMMON/OAK/INC/romldr.h#     ROMHDR, TOCentry, FILESentry#  z:/sources/wince500/PRIVATE/WINCEOS/COREOS/NK/INC/kernel.h#     cinfo APISet MemBlock CALLSTACK openexe_t#     Thread PGPOOL_Q Process Module FSMAP HDATA ##  z:/sources/wince500/PRIVATE/WINCEOS/COREOS/NK/INC/nkarm.h#     KDataStruct _CPUCONTEXT##  z:/sources/wince500/PRIVATE/WINCEOS/COREOS/NK/INC/schedule.h#     PROXY EVENT CRIT MUTEX SEMAPHORE CLEANEVENT##  z:/sources/wince500/PUBLIC/COMMON/OAK/INC/pehdr.h#     e32_lite o32_lite info e32_exe## z:/sources/wince500/PUBLIC/COMMON/SDK/INC/winbase.h#     CRITICAL_SECTION## z:/sources/wince500/PUBLIC/COMMON/OAK/INC/pkfuncs.h#     KINX_* constants## z:/sources/wince500/PUBLIC/COMMON/SDK/INC/winioctl.h#     FILE_DEVICE_* constants#my %syms;my %structs= (    char=> {size=>1, format=>'%s'},    wchar=>{size=>2, format=>'%s'},    BYTE=> {size=>1, format=>'%02x'},    WORD=> {size=>2, format=>'%04x'},    DWORD=>{size=>4, format=>'%08lx'},);readsymbols();#$d->dumpValue(\%structs);sub readsymbols {    my $curtype= "";    my $curstruct= "";    while (<DATA>) {        if (/^!struct\s(\w+)/) {            $curstruct= $1;            $curtype= undef;            $structs{$curstruct}= {size=>0, items=>{}};        }        elsif (/^!(\w+)/) {            $curtype= $1;            $curstruct= undef;        }        elsif ($curtype && /^(\w+)\s+(\w+)/) {            $syms{$curtype}{$2}= eval($1);        }        elsif ($curstruct && /^(\w+)\s+(\*)?(\w+)(?:@(\d+))?\s+(\w+)/) {            my ($ofs, $ptrflag, $type, $count, $itemname)= (eval($1), $2, $3, $4 || 1, $5);            my $ptype;            if ($ptrflag) {                $ptype= $type;                $type= "DWORD";            }            $structs{$curstruct}{items}{$itemname}= {                ofs=>$ofs,                type=>$type,                count=>$count,                name=>$itemname,                $ptrflag?(ptype=>$ptype):(),            };            if (!exists $structs{$type}) {                croak "unknown type $type  in struct $curstruct\n";            }            if ($structs{$curstruct}{size} != $ofs) {                warn sprintf("offset-size mismatch: o=%08lx s=%08lx  %s.%s\n",                     $ofs, $structs{$curstruct}{size}, $curstruct, $itemname);            }            $structs{$curstruct}{size} += $count * $structs{$type}{size};        }    }}my %handletypes= (    FFSD=> { simpledump=>\&handleFFSD, structtype=>'FFSDinfo' },    HFSD=> { simpledump=>\&handleHFSD, structtype=>'FFSDinfo' },    W32D=> { simpledump=>\&handleW32D, structtype=>'fsopendev_t' },    W32H=> { simpledump=>\&handleW32H, structtype=>'W32Hinfo' },    PFSD=> { simpledump=>\&handlePFSD, structtype=>'FFSDinfo' },    BDEV=> { simpledump=>\&handleBDEV, structtype=>'BDEVinfo' },    STRG=> { simpledump=>\&handleSTRG, structtype=>'STRGinfo' },    FMAP=> { simpledump=>\&handleFMAP, structtype=>'FSMAP' },    PROC=> {    structtype=>'PROCESS' },    THRD=> {    structtype=>'THREAD' },    APIS=> {    structtype=>'APISET' },    EVNT=> {    structtype=>'EVENT' },    MUTX=> {    structtype=>'MUTEX' },    SEMP=> {    structtype=>'SEMAPHORE' },    DBOA=> {    structtype=>'DBInfo' },    Sock=> {    structtype=>'SocketInfo' },);my $img= PhysicalMemory->new();my %dumptypes;my %dumpedstructs;my %dumpoffsets;my $doListProcesses= 0;my $doListKdata= 0;my $doDumpMemory= 0;my $doSaveSection= 0;my $doSectionOverview= 0;my $doListHandles= 0;my $doListModules= 0;my $g_verbose= 0;sub usage {    return <<__EOF__Usage: parsecrash [-d VOFS] [-p] [-k] [-s VADDR LEN file] cfgfile   -p  : list processes   -k  : list kdata   -d  : dump memory   -s  : save section   -S  : save all sections   -h  : list handles   -o  : section overview   -v  : verbose__EOF__}GetOptions(    "p"=>\$doListProcesses,    "k"=>\$doListKdata,    "d"=>\$doDumpMemory,    "m"=>\$doListModules,    "s"=>\$doSaveSection,    "S"=> sub { $doSaveSection= 2; },    "h"=>\$doListHandles,    "o"=>\$doSectionOverview,    "v"=>\$g_verbose,) or croak usage();my $cfgname= shift || croak usage();my $cfg= LoadConfig($cfgname);sub LoadConfig {    my ($fn)= @_;    my $fh= IO::File->new($fn, "r") or croak "LoadConfig $fn: $!\n";    my %cfg;    while (<$fh>)    {        s/\s+$//;        next if (/^$/);        next if (/^\s*[#;]/);        if (/load\s+(\w+)\s+(.*)/i) {            push @{$cfg{images}}, { poffset=>eval($1), filename=>$2 };        }        elsif (/tlb\s+(\w+)/i) {            $cfg{PhysTLBOffset}= eval($1);        }        else {            croak "unrecognized cfg line: $_\n";        }    }    $fh->close();    return \%cfg;}for (@{$cfg->{images}}) {    $img->Load($_->{filename}, $_->{poffset});}my $vimg= VirtualMemory->new($img, $cfg->{PhysTLBOffset});$vimg->SetSectionTable(kdata('KINX_SECTIONS'));sub kdata {    my $sym= shift;        return $vimg->ReadDword($syms{kdata}{$sym});}sub vmofs {    my ($ofs, $vmbase)= @_;    if ($vmbase && $ofs>=0x10000 && $ofs<0x02000000) { $ofs += $vmbase; }    return $ofs;}sub ofsvm {    my ($ofs)= @_;    if ($ofs<0x80000000) {        return $ofs&0xfe000000;    }    return 0;}sub structofs {    my ($sym, $ofs, $vmbase)= @_;    if ($vmbase && $ofs<0x02000000) { $ofs += $vmbase; }    if ($sym =~ /^(\w+)\.(\w+)((?:\.|->).*)?$/) {        my ($structname, $itemname, $subitems)= ($1, $2, $3);        if (!exists $structs{$structname}) {            croak "invalid structname $structname\n";        }        if (!exists $structs{$structname}{items}{$itemname}) {            croak "invalid itemname $structname.$itemname\n";        }        my $item= $structs{$structname}{items}{$itemname};        if (!defined $subitems) {            return $item->{ofs}+$ofs;        }        elsif ($subitems =~ /^\./) {            return structofs("$item->{type}$subitems", $ofs+$item->{ofs}, $vmbase);        }        elsif ($subitems =~ /^->(.*)/) {            return structofs("$item->{ptype}.$1", struct("$structname.$itemname", $ofs, $vmbase), $vmbase);        }        else {            croak "invalid subitem spec: $sym\n";        }    }    else {        croak "invalid struct spec: '$sym'\n";    }}sub struct {    my ($sym, $ofs, $vmbase)= @_;    #printf("struct(%s %08lx)\n", $sym, $ofs);    if ($vmbase && $ofs<0x02000000) { $ofs += $vmbase; }    if ($sym =~ /^(\w+)\.(\w+)((?:\.|->).*)?$/) {        my ($structname, $itemname, $subitems)= ($1, $2, $3);        if (!exists $structs{$structname}) {            croak "invalid structname $structname\n";        }        if (!exists $structs{$structname}{items}{$itemname}) {            croak "invalid itemname $structname.$itemname\n";        }        my $item= $structs{$structname}{items}{$itemname};        my @result;        if (!defined $subitems) {            if ($item->{type} eq "DWORD") {                for (0..$item->{count}-1) {                    push @result, $vimg->ReadDword($ofs+4*$_+$item->{ofs});                }            }            elsif ($item->{type} eq "WORD") {                for (0..$item->{count}-1) {                    push @result, $vimg->ReadWord($ofs+2*$_+$item->{ofs});                }            }            elsif ($item->{type} eq "BYTE") {                for (0..$item->{count}-1) {                    push @result, $vimg->ReadByte($ofs+$_+$item->{ofs});                }            }            elsif ($item->{type} eq "char") {                my @chars;                for (0..$item->{count}-1) {                    my $char= $vimg->ReadByte($ofs+$_+$item->{ofs});                    last if ($char==0);                    push @chars, $char;                }                #printf("char: @chars\n");                push @result, pack("C*", @chars);            }            elsif ($item->{type} eq "wchar") {                my @chars;                for (0..$item->{count}-1) {                    my $wchar= $vimg->ReadWord($ofs+$_*2+$item->{ofs});                    last if ($wchar==0);                    push @chars, $wchar;                }                push @result, pack("U*", @chars);            }            else {                croak "unknown primitive type in struct $sym: $item->{type}\n";            }        }        elsif ($subitems =~ /^\./) {            if (exists $structs{$item->{type}}) {                for (0..$item->{count}-1) {                    push @result, struct("$item->{type}$subitems", $ofs+$_*$structs{$item->{type}}{size}+$item->{ofs}, $vmbase);                }            }            else {                croak "could not resolve struct specifier $sym\n";            }        }        elsif ($subitems =~ /^->(.*)/) {            for (0..$item->{count}-1) {                my $ptr= struct("$structname.$itemname", $ofs, $vmbase);                if ($ptr) {                    push @result, struct("$item->{ptype}.$1", $ptr, $vmbase);                }                else {                    push @result, 0xFFFFFFFF;                }            }        }        else {            croak "invalid subitem spec: $sym\n";        }        if (@result==1) {            return $result[0];        }        else {            return @result;        }    }    else {        croak "invalid struct spec: '$sym'\n";    }}if ($doListKdata) {    for (sort { $syms{kdata}{$a} <=> $syms{kdata}{$b} } keys %{$syms{kdata}}) {        eval { printf("%08lx %-20s  %08lx\n", $syms{kdata}{$_}, $_, kdata($_)); };    }}if ($doListProcesses) {    my $procbase= kdata('KINX_PROCARRAY');    printf("procbase= %08lx  curproc=%08lx(%08lx) curthread=(%08lx)%08lx\n",         $procbase, kdata('hCurProc'), kdata('pCurPrc'), kdata('hCurThread'), kdata('pCurThd'));    if (!$procbase) {        croak "could not find procbase\n";    }    for (my $pi= 0 ; $pi<32 ; $pi++) {        #todo: 0xf0 = sizeof(PROCESS)        DumpProcessEntry($pi*0xf0+$procbase);    }}sub DumpModuleEntry {    my ($mod)= @_;    printf("%08lx %08lx %08lx %08lx %02x %s\n",        struct('Module.inuse', $mod),        struct('Module.BasePtr', $mod),        struct('Module.e32.e32_vbase', $mod),        struct('Module.startip', $mod),

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美久久久久中文字幕| 国产精品每日更新| 国产91丝袜在线播放九色| 亚洲乱码国产乱码精品精的特点| 欧美精品视频www在线观看| 成人午夜又粗又硬又大| 另类人妖一区二区av| 伊人夜夜躁av伊人久久| 国产日本欧洲亚洲| 日韩欧美高清dvd碟片| 欧美影院一区二区三区| av在线不卡观看免费观看| 国产一区二区在线免费观看| 五月婷婷激情综合| 一区二区三区在线免费视频| 国产精品久久久久影视| 久久香蕉国产线看观看99| 在线播放中文字幕一区| 91成人免费在线| 91丨九色丨蝌蚪丨老版| 成人激情综合网站| 大桥未久av一区二区三区中文| 久草在线在线精品观看| 奇米影视一区二区三区| 日韩中文欧美在线| 亚洲一二三级电影| 一区二区成人在线视频| 18成人在线视频| 国产精品理论片在线观看| 久久久99精品久久| 国产亚洲综合在线| 国产偷v国产偷v亚洲高清| 精品成人免费观看| 久久久噜噜噜久噜久久综合| 欧美不卡一区二区三区四区| 欧美一区二区免费观在线| 7777精品伊人久久久大香线蕉的 | 夜夜揉揉日日人人青青一国产精品 | 日韩国产在线观看| 亚洲午夜精品在线| 亚洲成人在线网站| 日韩一区精品字幕| 日本一区中文字幕| 久久国产福利国产秒拍| 麻豆91在线看| 豆国产96在线|亚洲| 成人免费福利片| 99国产欧美另类久久久精品| 日本高清不卡一区| 欧美日韩黄色影视| 欧美一区二区福利视频| 精品电影一区二区| 国产精品国产三级国产aⅴ原创| 亚洲视频在线观看三级| 亚洲精品一二三四区| 亚洲午夜视频在线观看| 日本va欧美va精品| 国产精品一级片| 99久久久无码国产精品| 欧美三级视频在线| 欧美v亚洲v综合ⅴ国产v| 欧美国产综合色视频| 亚洲黄网站在线观看| 日韩在线播放一区二区| 国产自产2019最新不卡| 不卡av在线网| 欧美日韩成人一区| 久久夜色精品国产噜噜av| 国产精品传媒入口麻豆| 亚洲午夜日本在线观看| 国内精品伊人久久久久影院对白| 99riav一区二区三区| 欧美视频你懂的| 久久久午夜电影| 一区二区视频在线| 精品一区二区三区在线视频| fc2成人免费人成在线观看播放 | 欧美性大战xxxxx久久久| 精品国产伦一区二区三区观看体验| 中文字幕第一页久久| 午夜a成v人精品| 成人免费av在线| 欧美一区二区三区思思人| 国产精品―色哟哟| 日本欧美肥老太交大片| 91免费观看视频| 日韩精品一区二区三区三区免费| 国产精品国模大尺度视频| 免费av成人在线| 在线精品国精品国产尤物884a | 午夜精品一区在线观看| 大桥未久av一区二区三区中文| 欧美少妇xxx| 国产精品乱码一区二三区小蝌蚪| 日日欢夜夜爽一区| av在线综合网| 久久精品一区蜜桃臀影院| 午夜不卡av免费| 91免费精品国自产拍在线不卡| 久久在线观看免费| 青青草97国产精品免费观看| 日本韩国欧美三级| 国产清纯在线一区二区www| 免费精品视频最新在线| 在线观看亚洲专区| 中文字幕在线观看不卡| 国产精品自拍在线| 这里是久久伊人| 亚洲香肠在线观看| 日本韩国欧美三级| 亚洲人吸女人奶水| 波多野结衣欧美| 国产欧美日韩综合精品一区二区| 久久国产福利国产秒拍| 欧美一级黄色录像| 日韩一区精品字幕| 在线不卡的av| 日韩在线观看一区二区| 欧美精品一级二级| 亚洲一区在线免费观看| 91在线免费视频观看| 亚洲欧美综合在线精品| 成人av在线一区二区| 日本一区二区动态图| 国产成人99久久亚洲综合精品| 久久人人97超碰com| 国内精品视频一区二区三区八戒| 久久综合色综合88| 国产不卡一区视频| 久久精品亚洲国产奇米99| 国产精品888| 国产精品美女久久久久久| 国产91精品在线观看| 国产精品久久影院| 色综合久久久久综合| 亚洲乱码精品一二三四区日韩在线| 91丨九色丨蝌蚪丨老版| 一区二区三区免费网站| 91豆麻精品91久久久久久| 亚洲午夜激情网站| 欧美一区日韩一区| 久久99九九99精品| 国产色91在线| 99热精品国产| 亚洲香肠在线观看| 日韩欧美成人激情| 国产91色综合久久免费分享| |精品福利一区二区三区| 在线免费观看一区| 午夜激情一区二区三区| 日韩你懂的电影在线观看| 国产高清亚洲一区| 亚洲精品老司机| 欧美一区二区精品| 成人午夜精品在线| 一区二区三区精品视频| 欧美日韩黄视频| 国产精品羞羞答答xxdd| 亚洲激情网站免费观看| 91精品国产色综合久久ai换脸| 国产在线精品免费| 亚洲天堂久久久久久久| 在线电影国产精品| 国产乱一区二区| 一区二区三区中文字幕精品精品| 日韩欧美一区二区视频| 成人网页在线观看| 日日夜夜免费精品| 国产精品私人影院| 88在线观看91蜜桃国自产| 国产一区二区三区日韩| 亚洲精品美腿丝袜| 欧美成人三级电影在线| 97超碰欧美中文字幕| 日本一区中文字幕| 国产精品二三区| 日韩一区二区三区电影在线观看| 国产一区二区三区高清播放| 亚洲免费伊人电影| 精品国产一区二区三区四区四 | 777久久久精品| 波多野结衣亚洲| 蜜臂av日日欢夜夜爽一区| 国产精品视频一二| 日韩区在线观看| 色av成人天堂桃色av| 国产米奇在线777精品观看| 亚洲国产综合在线| 中文字幕一区在线观看| 欧美一级理论性理论a| 97久久精品人人做人人爽| 极品少妇xxxx精品少妇| 亚洲一区中文日韩| 国产精品进线69影院| www国产亚洲精品久久麻豆| 欧美亚日韩国产aⅴ精品中极品| 国产suv精品一区二区6| 蜜臀久久99精品久久久久久9| 亚洲欧美电影一区二区| 国产精品网曝门|