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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? dumprom.cpp

?? wince 內(nèi)核dump程序
?? CPP
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
        if (buflen!=CEDECOMPRESS_FAILED)        {            buf= dcbuf;        }        else {            printf("error decompressing %s\n", filename);            buflen= end-start;            delete dcbuf;            bCompressed=false;        }    }    char fn[1024];    if (regnr<0)        _snprintf(fn, 1024, "%s/%s", g_outputdirectory, filename);    else        _snprintf(fn, 1024, "%s/%s-%d-%08lx", g_outputdirectory, filename, regnr, realofs);    FILE *f= fopen(fn, "w+b");    if (f==NULL)    {        perror(fn);        if (bCompressed)            delete buf;        return;    }    DWORD nWritten= fwrite(buf, 1, buflen, f);    if (nWritten!=buflen)    {        printf("error writing %ld bytes - wrote %ld\n", buflen, nWritten);        perror(fn);    }    fclose(f);    if (bCompressed)        delete buf;}bool isObjectContainsSection(const o32_rom& o32, const info& inf){    return o32.o32_rva <= inf.rva && inf.rva+inf.size <= o32.o32_rva + o32.o32_vsize;}void CreateOriginalFile(const ROMHDR *rom, const TOCentry *t, const char *filename, const e32_rom *e32, const o32_rom *o32){    char fn[1024];    _snprintf(fn, 1024, "%s/%s", g_outputdirectory, filename);    FILE *f= fopen(fn, "w+b");    if (f==NULL)    {        perror(fn);        return;    }    WriteDummyMZHeader(f);    DWORD dwE32Ofs= ftell(f);    WriteE32Header(f, rom, e32, t, o32);    vector<DWORD> o32ofslist;       // list of file offsets to o32_obj structs    vector<DWORD> dataofslist;      // list of file offsets to start of data objects    vector<DWORD> datalenlist;          typedef map<DWORD, std::pair<DWORD,DWORD> > RvaRvaSizeMap;    RvaRvaSizeMap rvamap;           // map of rva -> adjusted rva    memset(g_segmentNameUsage, 0, sizeof(g_segmentNameUsage));    int i;    for (i=0 ; i<e32->e32_objcnt ; i++)    {        o32ofslist.push_back(ftell(f));        DWORD rva= WriteO32Header(f, e32, &o32[i]);        if (rva != o32[i].o32_rva)            printf("NOTE: section at %08lx iso %08lx for %s\n", rva, o32[i].o32_rva, filename);        rvamap[o32[i].o32_rva]= std::pair<DWORD,DWORD>(rva, o32[i].o32_vsize);    }    WriteAlignment(f, 0x200);    DWORD dwHeaderSize= ftell(f);    for (i=0 ; i<e32->e32_objcnt ; i++)    {        dataofslist.push_back(ftell(f));        DWORD datalen= WriteUncompressedData(f, o32[i].o32_dataptr, min(o32[i].o32_vsize, o32[i].o32_psize), o32[i].o32_flags&IMAGE_SCN_COMPRESSED, o32[i].o32_vsize);        datalenlist.push_back(datalen);        WriteAlignment(f, 0x200);    }    DWORD dwTotalFileSize= ftell(f);    // fix rawdatalen + dataoffsets in segment list    for (i=0 ; i<e32->e32_objcnt ; i++)    {        fseek(f, o32ofslist[i]+16, SEEK_SET);        fwrite(&datalenlist[i], 1, sizeof(DWORD), f);   // ofs to o32_psize        fwrite(&dataofslist[i], 1, sizeof(DWORD), f);   // ofs to o32_dataptr        // update imp_address's in IMP section        if (b_use_negative_rva && isObjectContainsSection(o32[i], e32->e32_unit[IMP])) {            fseek(f, dataofslist[i]+ e32->e32_unit[IMP].rva -o32[i].o32_rva+0x10, SEEK_SET );            while (1) {                DWORD imp_addr;                fread(&imp_addr, 1, sizeof(DWORD), f);  // read ImpHdr.imp_address                if (imp_addr==0)                    break;                // this finds the next rva                 RvaRvaSizeMap::iterator s= rvamap.upper_bound(imp_addr);                if (s!=rvamap.end() && s!=rvamap.begin()) {                    s--;                    if (imp_addr < (*s).first+(*s).second.second) { //                     printf("moving imp %08lx from rva[%08lx-%08lx] -> %08lx-%08lx  : %08lx\n", //                             imp_addr, (*s).first, (*s).first+(*s).second.second, //                             (*s).second.first, (*s).second.first+(*s).second.second, //                             imp_addr-(*s).first +(*s).second.first);                        imp_addr -= (*s).first -(*s).second.first;                        fseek(f, -4, SEEK_CUR);                        fwrite(&imp_addr, 1, sizeof(DWORD), f);                        fseek(f, 0x10, SEEK_CUR);                    }                    else {                        printf("!!! %08lx after %08lx but not before %08lx\n", imp_addr, (*s).first, (*s).first+(*s).second.second);                    }                }            }        }    }    fseek(f, dwE32Ofs+0x54, SEEK_SET);  // ofs to e32_hdrsize    fwrite(&dwHeaderSize, 1, sizeof(DWORD), f);    fseek(f, dwTotalFileSize, SEEK_SET);    fclose(f);    //todo: set fileattributes + datetime.}// -----------------------------------------------------------------------------// -----------------------------------------------------------------------------void DumpXIPChainEntry(int xipnr, XIPCHAIN_ENTRY *xip){    g_regions.MarkRegion(g_mem.GetOfs(xip), sizeof(XIPCHAIN_ENTRY), "xip%d : %s", xipnr, xip->szName);    g_regions.MarkRegion((DWORD)xip->pvAddr, 0, "start xip%d : %s", xipnr, xip->szName);    if (g_verbose)        g_regions.MarkRegion((DWORD)xip->pvAddr+xip->dwLength, 0, "end xip%d : %s", xipnr, xip->szName);}void DumpXIPChain(DWORD dwXipOffset){    XIPCHAIN_INFO *xipchain= (XIPCHAIN_INFO *)g_mem.GetPtr(dwXipOffset);    if (xipchain==NULL)        return;    if (xipchain->cXIPs > MAX_ROM)    {        printf("ERROR - invalid xipchain\n");        return;    }    g_regions.MarkRegion(dwXipOffset, sizeof(DWORD), "xipchain head");    XIPCHAIN_ENTRY *xip= &xipchain->xipEntryStart;    for (DWORD i=0 ; i<xipchain->cXIPs ; ++i)    {        DumpXIPChainEntry(i, &xip[i]);    }}typedef std::set<DWORD> DwordSet;DwordSet g_extensions_processed;bool extensionAlreadyProcessed(DWORD dwOffset){  DwordSet::iterator it = g_extensions_processed.find(dwOffset);  return it != g_extensions_processed.end();}void recordExtensionProcessed(DWORD dwOffset){    g_extensions_processed.insert(dwOffset);}void DumpExtensions(DWORD dwPidOffset){    if (extensionAlreadyProcessed(dwPidOffset))        return;    recordExtensionProcessed(dwPidOffset);    ROMPID *pid= (ROMPID *)g_mem.GetPtr(dwPidOffset);    if (pid==NULL)        return;    // first is inside nk.exe    pid= (ROMPID*)g_mem.GetPtr(dwPidOffset=(DWORD)pid->pNextExt);    while (pid) {        g_regions.MarkRegion(dwPidOffset, sizeof(ROMPID), "rom extension entry %s", pid->s.name);        g_regions.MarkRegion((DWORD)pid->s.pdata, pid->s.length, "rom extension data %s", pid->s.name);        pid= (ROMPID*)g_mem.GetPtr(dwPidOffset=(DWORD)pid->pNextExt);    }}void DumpModuleTOCentry(const ROMHDR *rom, int modnr, DWORD ofs){    TOCentry *t= (TOCentry *)g_mem.GetPtr(ofs);    if (t==NULL)    {        printf("invalid modtoc ofs %08lx\n", ofs);        return;    }    char *filename= (char *)g_mem.GetPtr((DWORD)t->lpszFileName);    if (filename==NULL)        return;    g_regions.MarkRegion(ofs, sizeof(TOCentry), "modent %3d %08lx %08lx%08lx %8d %08lx %s",            modnr, t->dwFileAttributes, t->ftTime.dwHighDateTime, t->ftTime.dwLowDateTime, t->nFileSize, t->ulLoadOffset, filename);    g_regions.MarkRegion((DWORD)t->lpszFileName, strlen(filename)+1, "modname %s", filename);    e32_rom *e32= (e32_rom *)g_mem.GetPtr((DWORD)t->ulE32Offset);    if (e32==NULL)        return;    if (b_wm2005_rom) {        printf("NOTE: removing %08lx from e32 struct for %s\n", *(DWORD*)e32->e32_unit, filename);        memmove((BYTE*)e32->e32_unit, (BYTE*)e32->e32_unit+4, ROM_EXTRA*sizeof(struct info)+sizeof(DWORD));    }    MemRegion &m=  g_regions.MarkRegion((DWORD)t->ulE32Offset, sizeof(e32_rom)+(b_wm2005_rom?4:0), "e32 struct %d objs, img=%04x entrypt=%08lx base=%08lx v%d.%d tp%d %s",             e32->e32_objcnt, e32->e32_imageflags, e32->e32_entryrva, e32->e32_vbase, e32->e32_subsysmajor, e32->e32_subsysminor, e32->e32_subsys, filename);    o32_rom *o32= (o32_rom *)g_mem.GetPtr((DWORD)t->ulO32Offset);    if (o32==NULL)        return;    if (g_verbose) {        *m.description += dworddumpasstring(t->ulE32Offset, t->ulE32Offset+sizeof(e32_rom)+(b_wm2005_rom?4:0));    }    m= g_regions.MarkRegion((DWORD)t->ulO32Offset, e32->e32_objcnt*sizeof(o32_rom), "o32 struct %s", filename);    for (int i= 0 ; i<e32->e32_objcnt ; ++i)    {        m= g_regions.MarkRegion(o32[i].o32_dataptr ? o32[i].o32_dataptr : ofs, min(o32[i].o32_vsize, o32[i].o32_psize),                 "o32 region_%d rva=%08lx vsize=%08lx real=%08lx psize=%08lx f=%08lx for %s", i, o32[i].o32_rva, o32[i].o32_vsize, o32[i].o32_realaddr, o32[i].o32_psize, o32[i].o32_flags, filename);//        if (g_outputdirectory)//            UncompressAndWrite(m.start, m.end, filename, i, o32[i].o32_flags&IMAGE_SCN_COMPRESSED, o32[i].o32_vsize, o32[i].o32_realaddr);    }    if (g_outputdirectory)        CreateOriginalFile(rom, t, filename, e32, o32);}void DumpFileTOCentry(int filenr, DWORD ofs){    FILESentry *t= (FILESentry *)g_mem.GetPtr(ofs);    if (t==NULL)    {        printf("invalid filetoc ofs %08lx\n", ofs);        return;    }    char *filename= (char *)g_mem.GetPtr((DWORD)t->lpszFileName);    if (filename==NULL)        return;    g_regions.MarkRegion(ofs, sizeof(FILESentry), "filent %3d %08lx %08lx%08lx %8d %8d %08lx %s",            filenr, t->dwFileAttributes, t->ftTime.dwHighDateTime, t->ftTime.dwLowDateTime, t->nRealFileSize, t->nCompFileSize, t->ulLoadOffset, filename);    g_regions.MarkRegion((DWORD)t->lpszFileName, strlen(filename)+1, "filename %s", filename);    MemRegion &m= g_regions.MarkRegion((DWORD)t->ulLoadOffset, t->nCompFileSize, "filedata %s", filename);    if (g_outputdirectory)        UncompressAndWrite(m.start, m.end, filename, -1, t->nCompFileSize!=t->nRealFileSize, t->nRealFileSize, t->ulLoadOffset);}void DumpRomHdr(int romnr, DWORD ofs){    ROMHDR *r= (ROMHDR *)g_mem.GetPtr(ofs);    if (r==NULL)    {        printf("invalid romhdr ofs %08lx\n", ofs);        return;    }// r->ulRAMFree r->ulFSRamPercent,     MemRegion &m= g_regions.MarkRegion(ofs, sizeof(ROMHDR),             "rom_%02d header: dlls=%08lx-%08lx phys=%08lx-%08lx, %d modules, %d files, %d copyentries ext=%08lx  ram=%08lx-%08lx cputype=%08lx",             romnr, r->dllfirst, r->dlllast, r->physfirst, r->physlast,            r->nummods, r->numfiles, r->ulCopyEntries, r->pExtensions,            r->ulRAMStart, r->ulRAMEnd, r->usCPUType);    if (g_verbose) {        *m.description += dworddumpasstring(ofs, ofs+sizeof(ROMHDR));    }    g_regions.MarkRegion(r->physfirst, 0, "rom_%02d start", romnr);    g_regions.MarkRegion(r->physlast, 0, "rom_%02d end", romnr);    if (r->pExtensions)        DumpExtensions((DWORD)r->pExtensions);    DWORD i;    TOCentry *tm= (TOCentry *)&r[1];    for (i=0 ; i<r->nummods; i++)    {        DumpModuleTOCentry(r, i, g_mem.GetOfs(&tm[i]));    }    FILESentry *tf= (FILESentry *)&tm[r->nummods];    for (i=0 ; i<r->numfiles; i++)    {        DumpFileTOCentry(i, g_mem.GetOfs(&tf[i]));    }    if (r->ulCopyEntries) {        COPYentry *cp= (COPYentry *)g_mem.GetPtr(r->ulCopyOffset);        if (cp==NULL)            return;        MemRegion &m= g_regions.MarkRegion(r->ulCopyOffset, sizeof(COPYentry)*r->ulCopyEntries, "rom_%02d copy to ram: ", romnr);        for (DWORD i=0 ; i<r->ulCopyEntries ; ++i)        {            char buf[64];            _snprintf(buf, 64, " %08lxL%06lx -> %08lxL%06lx", cp->ulSource, cp->ulCopyLen, cp->ulDest, cp->ulDestLen);            *m.description += buf;        }    }}// -----------------------------------------------------------------------------// -----------------------------------------------------------------------------typedef map<DWORD,DWORD> MapDwordDword;    struct ScoreCmp {        ScoreCmp(const MapDwordDword& map) : m_map(map) {}        bool operator()(DWORD a, DWORD b) {            return m_map[a] > m_map[b];        }        MapDwordDword m_map;    };DWORD FindXipRegion(){    // find all occurrences of 'RSA1'    // '0x48' = offset in struct + xip header    vector<DWORD> pos;    for (MemoryMapIterator i(g_mem.begin()) ; i!=g_mem.end() ; i+=4)    {        if (i.GetDword()==0x31415352)            pos.push_back(i.m_ofs-0x48);    }    // look for sequence of 'RSA1'    MapDwordDword posscore;    DWORD start=0;    for(vector<DWORD>::iterator i= pos.begin() ; i!=pos.end() ; ++i)    {        if (!start || *i != start+0x290) {            start= *i;            posscore[start]++;        }        else {            posscore[start]++;        }    }        sort(pos.begin(), pos.end(), ScoreCmp(posscore));    // try in descending nr of hits    for (MapDwordDword::iterator i= posscore.begin() ; i!=posscore.end() ; ++i)    {        if ((*i).first % 0x1000)            continue;        DWORD nxips= g_mem.GetDword((*i).first);        if (nxips>= (*i).second)

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品亚洲综合一区在线观看| 久久久影视传媒| 91丨九色丨尤物| 97精品国产露脸对白| 成人午夜激情影院| 成人一道本在线| 成人精品一区二区三区中文字幕| 成人网页在线观看| 成人精品gif动图一区| 不卡av电影在线播放| 成人污污视频在线观看| 99麻豆久久久国产精品免费优播| av一区二区三区四区| 在线视频中文字幕一区二区| 欧美日韩精品一区二区| 9191成人精品久久| 欧美电影免费观看高清完整版在线| 日韩欧美的一区| 国产亚洲精品超碰| 亚洲图片你懂的| 亚洲图片一区二区| 日本色综合中文字幕| 国产一区二区三区在线观看免费视频| 国产精品伊人色| av一区二区三区在线| 欧美性猛片aaaaaaa做受| 欧美一区二区在线免费播放| 精品成人在线观看| 国产欧美日韩在线视频| 亚洲美女视频一区| 七七婷婷婷婷精品国产| 国产精品一区免费视频| eeuss鲁片一区二区三区| 在线观看区一区二| 日韩精品在线网站| 国产精品进线69影院| 一区二区三区精品| 久久精品免费看| 成人性生交大片免费看中文 | 精品捆绑美女sm三区| 国产三级欧美三级| 一区二区三区在线视频观看| 日韩精品三区四区| 国产白丝精品91爽爽久久| 91社区在线播放| 日韩欧美国产三级| 亚洲免费色视频| 久久99九九99精品| 色综合久久九月婷婷色综合| 91精品国产综合久久精品app | 国产精品嫩草影院com| 午夜天堂影视香蕉久久| 国产成人aaa| 欧美日韩视频在线观看一区二区三区 | 丁香婷婷深情五月亚洲| 欧美视频一区二区在线观看| 久久日韩粉嫩一区二区三区 | 国产一区二区三区不卡在线观看| 色婷婷久久综合| 亚洲精品一区二区三区影院| 亚洲精品一二三区| 国产一区二区三区久久悠悠色av | 亚洲男人天堂av网| 精品一区二区免费看| 欧美专区日韩专区| 国产欧美一区视频| 另类的小说在线视频另类成人小视频在线 | 亚洲国产精品久久人人爱| 国产成人自拍网| 欧美一区二区免费观在线| 亚洲图片你懂的| 国产精品一区二区黑丝| 6080午夜不卡| 亚洲午夜久久久久久久久久久| 国产乱子伦视频一区二区三区| 欧美日韩精品一区二区| 亚洲婷婷在线视频| 国产风韵犹存在线视精品| 日韩午夜在线观看| 亚洲成av人在线观看| 91免费视频网址| 亚洲国产精品激情在线观看| 精品中文字幕一区二区| 欧美一区二区视频在线观看 | 视频一区国产视频| 色噜噜狠狠一区二区三区果冻| 国产午夜亚洲精品理论片色戒 | 日韩精品一卡二卡三卡四卡无卡| 一本一道久久a久久精品综合蜜臀| 国产日韩欧美电影| 国产自产高清不卡| 2017欧美狠狠色| 久久se这里有精品| 日韩一区和二区| 日韩精品乱码av一区二区| 在线看国产一区| 亚洲香肠在线观看| 色成人在线视频| 一区二区免费看| 色综合久久久久久久久| 亚洲精品视频免费看| 91麻豆自制传媒国产之光| 国产精品亲子伦对白| 丰满放荡岳乱妇91ww| 国产欧美日韩在线| 成人精品一区二区三区四区| 日本一区二区三区在线观看| 懂色av一区二区夜夜嗨| 国产日韩欧美综合一区| 成人国产亚洲欧美成人综合网| 中文字幕免费不卡在线| 成人精品视频一区二区三区| 国产精品美女久久久久久| 成人av网站在线| 亚洲人成影院在线观看| 在线观看亚洲精品视频| 亚洲国产一区二区视频| 6080国产精品一区二区| 麻豆成人91精品二区三区| 日韩久久久精品| 国产一区二区在线电影| 国产人妖乱国产精品人妖| eeuss影院一区二区三区| 亚洲精品免费在线观看| 欧美美女一区二区| 蜜桃91丨九色丨蝌蚪91桃色| 国产性天天综合网| 一本色道**综合亚洲精品蜜桃冫| 亚洲专区一二三| 日韩免费看的电影| 懂色中文一区二区在线播放| 一区二区三区免费看视频| 欧美日韩一卡二卡| 精彩视频一区二区三区| 国产精品毛片大码女人| 欧美三级在线视频| 久久精品国产99久久6| 欧美国产成人精品| 欧洲一区在线观看| 国内精品伊人久久久久影院对白| 中文欧美字幕免费| 欧美三级在线视频| 国产高清久久久久| 亚洲尤物在线视频观看| 日韩女优视频免费观看| av资源网一区| 日韩国产精品久久久久久亚洲| 久久午夜色播影院免费高清| 一本一道久久a久久精品| 另类中文字幕网| 亚洲天堂免费看| 日韩精品影音先锋| 91丝袜国产在线播放| 久久成人免费日本黄色| 亚洲欧美成人一区二区三区| 欧美va日韩va| 在线观看av不卡| 粉嫩嫩av羞羞动漫久久久| 亚洲高清不卡在线观看| 中文一区在线播放| 91精品国产综合久久香蕉麻豆| av亚洲精华国产精华| 美女网站在线免费欧美精品| 亚洲天堂福利av| 久久精品夜夜夜夜久久| 欧美另类久久久品| 97久久超碰国产精品电影| 精品一区二区三区视频| 亚洲在线中文字幕| 国产精品久久久久影院色老大| 日韩视频免费观看高清完整版 | 久久先锋影音av| 欧美老女人在线| 91麻豆精品一区二区三区| 久久99国内精品| 亚洲一级电影视频| 国产精品天干天干在线综合| 日韩一二三区视频| 欧美三片在线视频观看| 99riav久久精品riav| 国产精品小仙女| 麻豆专区一区二区三区四区五区| 亚洲欧洲综合另类| 中文字幕第一区| 久久精品夜色噜噜亚洲a∨| 日韩美女天天操| 日韩一区二区三区在线| 欧美日韩综合色| 91国产福利在线| 色偷偷88欧美精品久久久| 成人免费视频国产在线观看| 国产一区日韩二区欧美三区| 久久激情五月激情| 日韩成人一区二区| 日韩电影一区二区三区四区| 性欧美疯狂xxxxbbbb| 亚洲一线二线三线久久久| 亚洲欧美日韩一区| 亚洲精品久久嫩草网站秘色| 亚洲欧美色综合|