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

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

?? packer.cpp

?? UPX 源代碼
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
void Packer::checkPatch(void *b, int blen, int boff, int size){    if (b == NULL && blen == 0 && boff == 0 && size == 0)    {        // reset        last_patch = NULL;        last_patch_len = 0;        last_patch_off = 0;        return;    }    if (b == NULL || blen <= 0 || boff < 0 || size <= 0)        throwBadLoader();    if (boff + size <= 0 || boff + size > blen)        throwBadLoader();    //printf("checkPatch: %p %5d %5d %2d\n", b, blen, boff, size);    if (b == last_patch)    {        if (boff + size > last_patch_off)            throwInternalError("invalid patch order");        // The next check is not strictly necessary, but the buffer        // length should better not increase...        if (blen > last_patch_len)            throwInternalError("invalid patch order (length)");    }    else        last_patch = b;    last_patch_len = blen;    last_patch_off = boff;}int Packer::patch_be16(void *b, int blen, unsigned old, unsigned new_){    int boff = find_be16(b, blen, old);    checkPatch(b, blen, boff, 2);    unsigned char *p = (unsigned char *)b + boff;    set_be16(p, new_);    return boff;}int Packer::patch_be16(void *b, int blen, const void *old, unsigned new_){    int boff = find(b, blen, old, 2);    checkPatch(b, blen, boff, 2);    unsigned char *p = (unsigned char *)b + boff;    set_be16(p, new_);    return boff;}int Packer::patch_be32(void *b, int blen, unsigned old, unsigned new_){    int boff = find_be32(b, blen, old);    checkPatch(b, blen, boff, 4);    unsigned char *p = (unsigned char *)b + boff;    set_be32(p, new_);    return boff;}int Packer::patch_be32(void *b, int blen, const void *old, unsigned new_){    int boff = find(b, blen, old, 4);    checkPatch(b, blen, boff, 4);    unsigned char *p = (unsigned char *)b + boff;    set_be32(p, new_);    return boff;}int Packer::patch_le16(void *b, int blen, unsigned old, unsigned new_){    int boff = find_le16(b, blen, old);    checkPatch(b, blen, boff, 2);    unsigned char *p = (unsigned char *)b + boff;    set_le16(p, new_);    return boff;}int Packer::patch_le16(void *b, int blen, const void *old, unsigned new_){    int boff = find(b, blen, old, 2);    checkPatch(b, blen, boff, 2);    unsigned char *p = (unsigned char *)b + boff;    set_le16(p, new_);    return boff;}int Packer::patch_le32(void *b, int blen, unsigned old, unsigned new_){    int boff = find_le32(b, blen, old);    checkPatch(b, blen, boff, 4);    unsigned char *p = (unsigned char *)b + boff;    set_le32(p, new_);    return boff;}int Packer::patch_le32(void *b, int blen, const void *old, unsigned new_){    int boff = find(b, blen, old, 4);    checkPatch(b, blen, boff, 4);    unsigned char *p = (unsigned char *)b + boff;    set_le32(p, new_);    return boff;}/*************************************************************************// relocation util**************************************************************************/upx_byte *Packer::optimizeReloc32(upx_byte *in, unsigned relocnum,                                  upx_byte *out, upx_byte *image,                                  int bswap, int *big){    if (opt->exact)        throwCantPackExact();    *big = 0;    if (relocnum == 0)        return out;    qsort(in,relocnum,4,le32_compare);    unsigned jc,pc,oc;    upx_byte *fix = out;    pc = (unsigned) -4;    for (jc = 0; jc<relocnum; jc++)    {        oc = get_le32(in+jc*4) - pc;        if (oc == 0)            continue;        else if ((int)oc < 4)            throwCantPack("overlapping fixups");        else if (oc < 0xF0)            *fix++ = (unsigned char) oc;        else if (oc < 0x100000)        {            *fix++ = (unsigned char) (0xF0+(oc>>16));            *fix++ = (unsigned char) oc;            *fix++ = (unsigned char) (oc>>8);        }        else        {            *big = 1;            *fix++ = 0xf0;            *fix++ = 0;            *fix++ = 0;            set_le32(fix,oc);            fix += 4;        }        pc += oc;        if (bswap)            acc_ua_swab32s(image + pc);    }    *fix++ = 0;    return fix;}unsigned Packer::unoptimizeReloc32(upx_byte **in, upx_byte *image,                                   MemBuffer *out, int bswap){    upx_byte *p;    unsigned relocn = 0;    for (p = *in; *p; p++, relocn++)        if (*p >= 0xF0)        {            if (*p == 0xF0 && get_le16(p+1) == 0)                p += 4;            p += 2;        }    //fprintf(stderr,"relocnum=%x\n",relocn);    out->alloc(4*relocn+4); // one extra data    LE32 *outp = (LE32*) (unsigned char *) *out;    LE32 *relocs = outp;    unsigned jc = (unsigned) -4;    for (p = *in; *p; p++)    {        if (*p < 0xF0)            jc += *p;        else        {            unsigned dif = (*p & 0x0F)*0x10000 + get_le16(p+1);            p += 2;            if (dif == 0)            {                dif = get_le32(p+1);                p += 4;            }            jc += dif;        }        *relocs++ = jc;        if (bswap && image)            acc_ua_swab32s(image + jc);    }    //fprintf(stderr,"relocnum=%x\n",relocn);    *in = p+1;    return (unsigned) (relocs - outp);}/*************************************************************************// loader util (interface to linker)**************************************************************************/static const char *getIdentstr(unsigned *size, int small){    static char identbig[] =        "\n\0"        "$Info: "        "This file is packed with the UPX executable packer http://upx.sf.net $"        "\n\0"        "$Id: UPX "        UPX_VERSION_STRING4        " Copyright (C) 1996-" UPX_VERSION_YEAR " the UPX Team. All Rights Reserved. $"        "\n";    static char identsmall[] =        "\n"        "$Id: UPX "        "(C) 1996-" UPX_VERSION_YEAR " the UPX Team. All Rights Reserved. http://upx.sf.net $"        "\n";    static char identtiny[] = UPX_VERSION_STRING4;    static int done;    if (!done && (opt->debug.fake_stub_version[0] || opt->debug.fake_stub_year[0]))    {        struct strinfo_t { char *s; int size; };        static const strinfo_t strlist[] = {            { identbig,   (int)sizeof(identbig) },            { identsmall, (int)sizeof(identsmall) },            { identtiny,  (int)sizeof(identtiny) },        { NULL, 0 } };        const strinfo_t* iter;        for (iter = strlist; iter->s; ++iter)        {            if (opt->debug.fake_stub_version[0])                mem_replace(iter->s, iter->size, UPX_VERSION_STRING4, 4, opt->debug.fake_stub_version);            if (opt->debug.fake_stub_year[0])                mem_replace(iter->s, iter->size, UPX_VERSION_YEAR, 4, opt->debug.fake_stub_year);        }        done = 1;    }    if (small < 0)        small = opt->small;    if (small >= 2)    {        *size = sizeof(identtiny);        return identtiny;    }    else if (small >= 1)    {        *size = sizeof(identsmall);        return identsmall;    }    else    {        *size = sizeof(identbig);        return identbig;    }}void Packer::initLoader(const void *pdata, int plen, int small){    delete linker;    linker = newLinker();    assert(bele == linker->bele);    linker->init(pdata, plen);    unsigned size;    char const * const ident = getIdentstr(&size, small);    linker->addSection("IDENTSTR", ident, size, 0);}#define C const char *void Packer::addLoader(C a){ addLoaderVA(a, NULL); }void Packer::addLoader(C a, C b){ addLoaderVA(a, b, NULL); }void Packer::addLoader(C a, C b, C c){ addLoaderVA(a, b, c, NULL); }void Packer::addLoader(C a, C b, C c, C d){ addLoaderVA(a, b, c, d, NULL); }void Packer::addLoader(C a, C b, C c, C d, C e){ addLoaderVA(a, b, c, d, e, NULL); }void Packer::addLoader(C a, C b, C c, C d, C e, C f){ addLoaderVA(a, b, c, d, e, f, NULL); }void Packer::addLoader(C a, C b, C c, C d, C e, C f, C g){ addLoaderVA(a, b, c, d, e, f, g, NULL); }void Packer::addLoader(C a, C b, C c, C d, C e, C f, C g, C h){ addLoaderVA(a, b, c, d, e, f, g, h, NULL); }void Packer::addLoader(C a, C b, C c, C d, C e, C f, C g, C h, C i){ addLoaderVA(a, b, c, d, e, f, g, h, i, NULL); }void Packer::addLoader(C a, C b, C c, C d, C e, C f, C g, C h, C i, C j){ addLoaderVA(a, b, c, d, e, f, g, h, i, j, NULL); }#undef Cvoid __acc_cdecl_va Packer::addLoaderVA(const char *s, ...){    va_list ap;    va_start(ap, s);    linker->addLoader(s, ap);    va_end(ap);}upx_byte *Packer::getLoader() const{    int size = -1;    upx_byte *oloader = linker->getLoader(&size);    if (oloader == NULL || size <= 0)        throwBadLoader();    return oloader;}int Packer::getLoaderSize() const{    int size = -1;    upx_byte *oloader = linker->getLoader(&size);    if (oloader == NULL || size <= 0)        throwBadLoader();    return size;}int Packer::getLoaderSection(const char *name, int *slen) const{    int size = -1;    int ostart = linker->getSection(name, &size);    if (ostart < 0 || size <= 0)        throwBadLoader();    if (slen)        *slen = size;    return ostart;}// same, but the size of the section may be == 0int Packer::getLoaderSectionStart(const char *name, int *slen) const{    int size = -1;    int ostart = linker->getSection(name, &size);    if (ostart < 0 || size < 0)        throwBadLoader();    if (slen)        *slen = size;    return ostart;}void Packer::relocateLoader(){    linker->relocate();#if 0    // "relocate" packheader    if (linker->findSection("UPX1HEAD", false))    {        int lsize = -1;        int loff = getLoaderSectionStart("UPX1HEAD", &lsize);        assert(lsize == ph.getPackHeaderSize());        unsigned char *p = getLoader() + loff;        assert(get_le32(p) == UPX_MAGIC_LE32);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久久av麻豆果冻| 国产欧美日韩亚州综合| 在线观看亚洲a| 色94色欧美sute亚洲13| 欧洲精品在线观看| 欧美三级一区二区| 在线91免费看| 日韩美女一区二区三区| 日韩精品一区二区三区在线观看| 欧美一区二区精品在线| 日韩欧美成人一区二区| 久久众筹精品私拍模特| 中文字幕av不卡| 中文字幕久久午夜不卡| 综合色天天鬼久久鬼色| 亚洲精品第一国产综合野| 艳妇臀荡乳欲伦亚洲一区| 亚洲成在线观看| 免费成人深夜小野草| 91亚洲资源网| 国产99久久久国产精品潘金网站| 大白屁股一区二区视频| 91麻豆精品秘密| 欧美电影在哪看比较好| 久久综合网色—综合色88| 欧美国产乱子伦| 伊人婷婷欧美激情| 琪琪一区二区三区| 国产成人高清在线| 色综合欧美在线视频区| 欧美日韩一区二区在线视频| 日韩欧美不卡一区| 亚洲国产精品国自产拍av| 亚洲男人的天堂网| 青青草国产成人99久久| 国产69精品久久久久777| 欧洲精品中文字幕| 久久综合九色综合久久久精品综合| 中文字幕一区二区三| 日韩不卡一区二区三区| 成人午夜免费视频| 欧美人伦禁忌dvd放荡欲情| 欧美mv和日韩mv国产网站| 亚洲欧洲成人自拍| 奇米影视一区二区三区| www.亚洲色图.com| 日韩一区二区在线观看| 中文字幕精品一区二区三区精品| 亚洲18影院在线观看| 国产盗摄一区二区| 7777精品伊人久久久大香线蕉| 国产精品天美传媒| 美腿丝袜亚洲色图| 日本久久电影网| 亚洲精品一区二区三区四区高清 | 久久久美女艺术照精彩视频福利播放| 国产精品久久久久久久久免费桃花| 亚洲国产美国国产综合一区二区| 国产精品伊人色| 欧美日韩国产免费一区二区| 国产色产综合产在线视频| 午夜精品一区二区三区免费视频| 国产呦萝稀缺另类资源| 欧美亚洲一区三区| 中文字幕一区免费在线观看| 麻豆精品在线看| 欧洲av一区二区嗯嗯嗯啊| 国产日韩视频一区二区三区| 青青青伊人色综合久久| 一本大道av一区二区在线播放 | 久99久精品视频免费观看| 欧美在线综合视频| 中文字幕欧美国产| 黄色资源网久久资源365| 欧美制服丝袜第一页| 1024成人网| 粉嫩嫩av羞羞动漫久久久| 日韩免费看网站| 视频一区二区中文字幕| 欧美在线免费播放| 亚洲狠狠丁香婷婷综合久久久| 国产成人av资源| 精品久久国产老人久久综合| 性欧美大战久久久久久久久| 91猫先生在线| 国产精品电影院| 国产成人精品一区二区三区四区| 欧美一级片在线看| 亚洲福利视频一区| 欧美色大人视频| 亚洲男人的天堂在线观看| 菠萝蜜视频在线观看一区| 欧美国产欧美综合| 国产99久久久国产精品| 久久久久久一级片| 久久成人麻豆午夜电影| 欧美一区二区三区色| 五月天一区二区三区| 欧美美女一区二区三区| 亚洲最新视频在线观看| 欧美三级视频在线观看 | 欧美亚洲国产bt| 一区二区三区国产| 欧美在线不卡视频| 亚洲一区二区三区爽爽爽爽爽| 欧美在线制服丝袜| 亚洲成人免费视频| 欧美久久久久中文字幕| 日本va欧美va欧美va精品| 这里只有精品免费| 精品一二线国产| 国产午夜精品一区二区| 国产sm精品调教视频网站| 亚洲伦理在线免费看| 色婷婷综合视频在线观看| 狠狠色狠狠色综合系列| 国产欧美日本一区二区三区| 欧美精品色一区二区三区| 久久91精品久久久久久秒播| 久久伊人蜜桃av一区二区| 日韩精品一区二区三区老鸭窝| 亚洲一区二区精品视频| 国产婷婷色一区二区三区在线| 9色porny自拍视频一区二区| 蜜桃av噜噜一区| 国产一区二区三区| 色噜噜偷拍精品综合在线| 亚洲一级二级三级| 日韩欧美国产综合| 国产传媒欧美日韩成人| 亚洲视频 欧洲视频| 欧美日韩国产123区| 久久99精品久久只有精品| 国产精品系列在线| 欧美日韩在线综合| 国产一区二区美女诱惑| 亚洲女子a中天字幕| 7777精品久久久大香线蕉| 国产精品一区免费视频| 亚洲欧美色一区| 日韩欧美国产不卡| 99国产精品久久久久久久久久| 亚洲国产欧美一区二区三区丁香婷| 91麻豆精品国产91久久久| 国产成a人亚洲| 亚洲成av人**亚洲成av**| 久久久蜜桃精品| 欧美视频一区二区| 国内外成人在线| 亚洲一区二区影院| 久久品道一品道久久精品| 91麻豆蜜桃一区二区三区| 青青草97国产精品免费观看| 国产精品水嫩水嫩| 欧美一区2区视频在线观看| 本田岬高潮一区二区三区| 日韩电影一区二区三区| 中文字幕一区二区三区四区不卡 | 亚洲午夜久久久久中文字幕久| 日韩欧美国产麻豆| 色香蕉久久蜜桃| 韩国一区二区三区| 天天影视色香欲综合网老头| 国产精品水嫩水嫩| 欧美成人女星排名| 欧美性猛片aaaaaaa做受| 国产另类ts人妖一区二区| 亚洲第一福利视频在线| 国产精品动漫网站| 久久久久一区二区三区四区| 欧美一区在线视频| 91成人国产精品| 国产精品18久久久久久久久久久久 | 成人午夜私人影院| 奇米色777欧美一区二区| 亚洲日本在线a| 国产无人区一区二区三区| 日韩欧美一二三| 欧美嫩在线观看| 91色|porny| 成人福利视频在线| 激情综合网激情| 亚洲免费观看高清完整版在线 | 91猫先生在线| 久久久久久97三级| 日韩黄色片在线观看| 色综合久久天天| 中文字幕在线一区| 国产综合成人久久大片91| 欧美性猛交xxxxxx富婆| 亚洲精品一卡二卡| 成人性生交大片免费看在线播放| 日韩视频在线你懂得| 艳妇臀荡乳欲伦亚洲一区| 欧美一区二区在线视频| 国产suv精品一区二区883| 日韩精品成人一区二区三区 | 视频一区视频二区中文字幕| 亚洲宅男天堂在线观看无病毒 | 成人精品国产一区二区4080|