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

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

?? kaeziparchiveimplement.cpp

?? zip解壓源碼.
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
 * ******************************************************************** */
inline UINT KAEZipArchive::get_code(int bits)
{
    UINT    a;                                  // accumulator

    a = lookat_code(bits);                      // prepare return value
    
	if (m_nZipFileCracked)
        return -1;

    bhold >>= bits;                             // ..shift out requested bits
    bsize -= bits;                              // ..decrement remaining bit count

    return(a);                                  // ..and return value
}


/* ******************************************************************** *
 *
 *  get_byte() -- get next byte from input file
 *
 * ******************************************************************** */
inline UINT KAEZipArchive::get_byte()
{
    if (rsize > 0)                              // q. anything left?
    {
        rsize--;                                // a. yes .. decrement count

        //seawind
        int a = fgetc(ifile);
        
		if(a == EOF)
        {
            m_nZipFileCracked = 1;
            return -1;                              // else .. return error 
        }
        return a;                                   // ..and return w/character
    }
    else
        return(-1);                                 // else .. return error
}

/* ******************************************************************** *
 *
 *  store_char() -- store character in output file
 *
 * ******************************************************************** */
inline void KAEZipArchive::store_char(char c)
{
    //static long far *timer = (long far *)MK_FP(0x40, 0x6c); // BIOS timer tick counter down in low memory
    crc_32(c, &crc);                            // determine current crc 32

    *sbp = c;                                   // a. yes .. put char in buffer

    if (++sbp >= sbe)                           // q. past end of buffer?
    {                                           // a. yes .. write buffer
        //if (fwrite(sb, 1, sb_size, ofile)       // q. write buffer ok?
        //    != sb_size)
        //  quit_with(write_error);             // a. no .. quit w/error message

        fwrite(sb, 1, sb_size, ofile);

        sbp = sb;                               // ..then back to start again
    }

    //if (last_kpal < *timer)                     // q. time to update user?
    //{
    //  last_kpal = *timer + 9;                 // a. yes .. set new timeout
    //  printf(kpal_msg, spin_char[spin++ & 3]);// ..then give user a little
    //}
}



/* ******************************************************************** *
 *
 *  scan_zip() -- scan a ZIP file's directory
 *
 * ******************************************************************** */
void KAEZipArchive::scan_zip()
{
    char   *b;                                  // work buffer pointer
    LF     *lfp;                                // local file header pointer

    b = (char *) malloc_chk(1024);              // allocate some memory
    
	if (!b)
    {
        m_nZipFileCracked = 1;
        return;
    }

    lfp = (LF *) b;                             // ..and set up pointer

    //proc(0, lfp);                             // make init call
    extract_zip(0, lfp);                        // make init call

    for (; !feof(ifile); )                      // loop till end of file
    {
        if (fread(b, 4, 1, ifile) != 1)         // q. read a sig ok?
        {
            m_nZipFileCracked = 1;              // seawind added,this zip file is cracked.
            goto Exit0;                         // a. no .. exit loop
        }

        //if (*(int *) b != 0x4b50)             // q. 'PK' zip signature?
        //  continue;                           // a. no .. try again
        
        //seawind modified
        if((b[0] != 'P') || (b[1] != 'K'))
            continue;

        //seawind added
        UINT16 sign = (UINT16)(b[3]);
        sign <<= 8;
        sign |= (BYTE)(b[2]);

        //sign = *(int *) &b[2];

        if (sign == LF_SIG)                     // q. local file header rec?
        {
            // a. yes .. get record
            if(!read_lf(lfp))                   //seawind added
            {
                m_nZipFileCracked = 1;
                goto Exit0;
            }
            
            //proc(1, lfp);                     // call processing routine
            extract_zip(1, lfp);                // call processing routine

            //seawind added
            if(m_nActionCancel || m_nZipFileCracked)
                goto Exit0;
 
        }
        else 
            if (sign == FH_SIG)                 // q. file header record?
            {
                if(!read_fh((FH *) b))          // a. yes .. get record
                {
                    m_nZipFileCracked = 1;
                    goto Exit0;
                }
            }
            else 
                if (sign == ED_SIG)             // q. end of central dir rec?
                {
                    if(!read_ed((ED *) b))      // a. yes .. get record
                    {
                        m_nZipFileCracked = 1;
                        goto Exit0;
                    }
                }

    }//for (; ! feof(ifile);)

    //proc(2, lfp);                             // competion call to proc rtn
    extract_zip(2, lfp);                        // competion call to proc rtn

Exit0:

    free(b);                                    // finally, release memory

}

/* ******************************************************************** *
 *
 *  read_lf() -- read in the remains of a local file header record
 *
 * ******************************************************************** */
int KAEZipArchive::read_lf(LF *lfp)
{
    char *p = wf.path;                          // work string pointer

    // read in remains of record
    if(fread(&lfp->lf_extract, sizeof(struct tagLF) - 4, 1, ifile) != 1)
        return 0;

    // ..and filename
    if (lfp->lf_fn_len > MAX_PATH)
        return 0;

    if(fread(p, lfp->lf_fn_len, 1, ifile) != 1)
        return 0;

    p[lfp->lf_fn_len] = 0;                      // terminate filename string

    for (; *p; p++)                             // loop thru filename string
        if (*p == '/')                          // q. unix style dir separator?
            *p = '\\';                          // a. yes .. fix for MSDOS

    SPLIT(wf);                                  // split filename into pieces

    if (lfp->lf_ef_len)                         // q. any extra field data?
        if(fseek(ifile, lfp->lf_ef_len, SEEK_CUR) != 0)
            return 0;                           // a. yes .. seek past data

    if (
        (wf.path[0] == '\0') ||
        ((unsigned)StrLen(wf.path) > (unsigned)lfp->lf_fn_len)
    )
        return 0;

    //seawind added
    StrCpy(m_szFullNameInArchive, wf.path);

    m_uCompressedSize = lfp->lf_csize;
    m_uUnCompressedSize = lfp->lf_size;

    return 1;
}

/* ******************************************************************** *
 *
 *  read_fh() -- read in the remains of a file header record
 *
 * ******************************************************************** */
int KAEZipArchive::read_fh(FH *fhp)
{
    // read in remains of record
    if(fread(&fhp->fh_made, sizeof(struct tagFH) - 4, 1, ifile) != 1)
        return 0;

    // seek past filename
    if(fseek(ifile, fhp->fh_fn_len, SEEK_CUR) != 0)
        return 0;

    if (fhp->fh_ef_len)                         // q. any extra field data?
        if(fseek(ifile, fhp->fh_ef_len, SEEK_CUR) != 0) // a. yes .. seek past data
            return 0;

    if (fhp->fh_fc_len)                         // q. any file comments?
        if(fseek(ifile, fhp->fh_fc_len, SEEK_CUR) != 0) // a. yes .. seek past data
            return 0;

    return 1;
}

/* ******************************************************************** *
 *
 *  read_ed() -- read in the remains of the end of central dir record
 *
 * ******************************************************************** */
int KAEZipArchive::read_ed(ED *edp)
{
    // read in remains of record
    if(fread(&edp->ed_disk, sizeof(struct tagED) - 4, 1, ifile) != 1)
        return 0;

    if (edp->ed_zc_len)                         // q. any zip file comments?
        if(fseek(ifile, edp->ed_zc_len, SEEK_CUR) != 0) // a. yes .. seek past data
            return 0;

    return 1;
}

/* ******************************************************************** *
 *
 *  initialization() -- init interrupts
 *
 * ******************************************************************** */
int  KAEZipArchive::initialization(const char * szZipPathName)
{
    total_files = 0;
    total_size = 0;
    total_csize = 0;

    crc = 0;                               // running crc 32 value
    bhold = 0;                             // bits hold area
    
    rsize = 0;                             // remaining size to process
    last_kpal = 0;                         // keep alive message time
    total_size = 0;                        // uncompressed sum
    total_csize = 0;                       // compressed sum
    
    //int     rc /*= 1*/,                         // errorlevel return code
    pos_count = 0;                         // positional parms count
    sf_count = 0;                          // select file parms count
    e_count = 0;                           // end of data counter/flag
    total_files = 0;                       // files processed
    
    // because init in KAEZipArchive::KAEZipArchive
    //sb_size = 0;                         // sliding buffer size
    
    bsize = 0;                             // bits left to process

    m_nActionCancel = 0;
    m_nZipFileCracked = 0;

    StrCpy(zfn, szZipPathName);

    ifile = fopen(zfn, "rb");

    if(ifile == NULL)//seawind added
    {
        return 0;
    }

    StrCpy(output_path,"");

    /*
    StrCpy(output_path, m_szTempPath);
    
    if(LAST(output_path) == '\\')
        LAST(output_path) = '\0';
    */

    return 1;

    /*
    int i, j;                               // loop control

    init_path = getcwd(NULL, MAX_PATH);         // get current directory
    ctrlbrk(control_break);                     // set up ctrl break handler
    _dos_setvect(0x24, critical_routine);       // ..and DOS critical handler

    pos_count = parse_parms(ac, av,             // parse switches and
            COUNT(parm_table), parm_table,      // ..positional parameters
            &pos_parms);                        // ..and based on parm count

    if (pos_count < 1)                          // q. zip file name given?
        quit_with(help);                        // a. no .. quit w/help message

    if (pos_count > 1)                          // q. user selecting file?
    {
        if (NOT sw_view &&                      // q. extracting files
                LAST(pos_parms[1]) == '\\') // ..and 2nd parm a dir name?
        {
            StrCpy(output_path, pos_parms[1]);  // a. yes .. save this parm
            touppers(output_path);              // ..in uppercase form
            LAST(output_path) = 0;              // ..but nop the last backslash
            j = 2;                              // ..and start with the next
        }
        else
            j = 1;                              // else .. start with the 2nd

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕一区二区三区乱码在线| 精品一区二区三区视频在线观看| 国产91露脸合集magnet| 日韩欧美电影一二三| 久久精品999| 久久精品视频在线免费观看 | 欧美性生交片4| 亚洲三级电影网站| 欧美日韩一区二区三区在线| 丝袜亚洲另类丝袜在线| 精品国产精品网麻豆系列| 国产成都精品91一区二区三| 亚洲柠檬福利资源导航| 欧美精品在线观看播放| 久久se这里有精品| 成人看片黄a免费看在线| 最近中文字幕一区二区三区| 欧美色涩在线第一页| 久久精品久久99精品久久| 亚洲国产高清在线观看视频| 色婷婷精品大视频在线蜜桃视频| 日本网站在线观看一区二区三区| 久久亚洲精品国产精品紫薇| 91免费在线看| 久久精品99国产精品| 亚洲天堂福利av| 日韩一区二区三区四区五区六区 | 国产麻豆精品视频| 自拍偷自拍亚洲精品播放| 欧美亚洲综合一区| 国产福利一区二区三区| 亚洲成人激情自拍| 国产一区二区久久| 亚洲一区二区av电影| 欧美精品一区二区三区一线天视频 | 成人综合在线观看| 日韩一区欧美二区| 亚洲欧洲日韩一区二区三区| 欧美日韩国产免费一区二区| 国产成人欧美日韩在线电影| 亚洲.国产.中文慕字在线| 久久精品亚洲精品国产欧美kt∨ | 中文字幕字幕中文在线中不卡视频| 精品视频1区2区| 成人久久视频在线观看| 免费成人你懂的| 亚洲一区二区三区四区的| 日本一区二区免费在线 | 欧美午夜在线一二页| 成人黄色小视频在线观看| 看电影不卡的网站| 亚洲国产日韩一级| 亚洲黄色性网站| 国产欧美日韩视频一区二区| 日韩一级完整毛片| 欧美日韩一区 二区 三区 久久精品| 高清不卡一区二区| 久久99精品久久久久| 亚洲成av人片| 亚洲在线视频网站| 国产精品盗摄一区二区三区| 久久午夜老司机| 亚洲伦理在线精品| 欧美日韩高清一区二区不卡| 在线中文字幕不卡| 国产永久精品大片wwwapp | 色国产综合视频| 成人app软件下载大全免费| 国产自产高清不卡| 麻豆久久一区二区| 久久99国产精品尤物| 日本伊人精品一区二区三区观看方式| 99v久久综合狠狠综合久久| 国产乱国产乱300精品| 国产精品正在播放| 国产成人aaaa| av男人天堂一区| 成人在线视频一区二区| 国产精品1024| 丰满少妇在线播放bd日韩电影| 国产在线不卡一区| 国产激情精品久久久第一区二区| 国产在线精品一区在线观看麻豆| 久久av资源网| 国产精品1024| 亚洲色图丝袜美腿| 亚洲精品乱码久久久久久| 亚洲在线成人精品| 午夜免费久久看| 免费观看久久久4p| 国产一区二区三区免费在线观看| 国产美女精品一区二区三区| 成人免费视频视频| 日本乱码高清不卡字幕| 欧美精品在线观看一区二区| 日韩一区二区三区视频在线观看| 日韩精品中文字幕一区二区三区| 精品福利二区三区| 国产精品久久一级| 亚洲自拍偷拍综合| 日av在线不卡| 国产成人av福利| 欧美少妇一区二区| 日韩欧美自拍偷拍| 亚洲国产精品二十页| 亚洲另类一区二区| 欧美aⅴ一区二区三区视频| 国产精品香蕉一区二区三区| 99久久精品99国产精品| 欧美一区二区三区啪啪| 欧美国产欧美亚州国产日韩mv天天看完整 | 91国产免费看| 精品久久免费看| 亚洲色图.com| 日产国产高清一区二区三区| 国产精品一区在线观看乱码| 欧美亚州韩日在线看免费版国语版| 欧美精品 日韩| 亚洲国产精品激情在线观看| 亚洲成人你懂的| 国产盗摄精品一区二区三区在线| 色吊一区二区三区| 国产午夜三级一区二区三| 亚洲伊人色欲综合网| 国产精品一区二区在线观看不卡 | 亚洲在线视频网站| 精品在线亚洲视频| 在线一区二区三区四区| 精品国产免费一区二区三区香蕉| ...xxx性欧美| 精品一区二区在线视频| 在线观看精品一区| 久久久综合精品| 五月综合激情网| 色老综合老女人久久久| 国产免费观看久久| 美腿丝袜亚洲三区| 欧美日韩午夜影院| 国产精品九色蝌蚪自拍| 国产在线不卡一卡二卡三卡四卡| 欧美视频一区二区三区| 国产精品水嫩水嫩| 国产麻豆日韩欧美久久| 91精品国产日韩91久久久久久| 亚洲啪啪综合av一区二区三区| 国产一区二区剧情av在线| 欧美一区二区三区在| 一区二区三区蜜桃网| av不卡免费电影| 国产精品国产三级国产三级人妇 | 在线观看一区不卡| 国产精品女主播在线观看| 激情另类小说区图片区视频区| 欧美精品在线视频| 亚洲国产精品综合小说图片区| 91丨九色丨蝌蚪富婆spa| 国产日韩欧美不卡在线| 国产一区二区伦理片| 26uuu另类欧美| 精品亚洲成a人| wwwwww.欧美系列| 久久国产精品99久久久久久老狼| 欧美一区二区三区播放老司机| 亚洲777理论| 欧美人成免费网站| 视频在线在亚洲| 91精品国产综合久久香蕉麻豆 | 一本大道久久a久久综合| 国产精品视频一区二区三区不卡| 国产精品88888| 国产精品三级在线观看| 成人av资源在线观看| 91久久人澡人人添人人爽欧美| 日韩毛片视频在线看| 91麻豆精品一区二区三区| 亚洲天堂2014| 91欧美一区二区| 亚洲国产视频直播| 欧美老肥妇做.爰bbww视频| 石原莉奈一区二区三区在线观看 | 麻豆精品视频在线观看免费| 欧美成人福利视频| 国产美女精品在线| 国产精品久久久久久久浪潮网站| av网站一区二区三区| 亚洲一区视频在线观看视频| 欧美日韩国产综合一区二区三区| 日本欧美肥老太交大片| 精品99999| 99久久精品国产毛片| 亚洲一区二区三区视频在线 | 成人污污视频在线观看| 最新日韩av在线| 欧美日韩国产综合一区二区| 久久精品国产一区二区三 | 欧美专区日韩专区| 九九**精品视频免费播放| 国产精品短视频| 欧美精品在线视频| 懂色av一区二区三区蜜臀|