ARK 라이브러리 변경 사항
7.36.0.1
- 2024/6/25
- RAR7 포맷 해제 기능 추가 (ARK_COMPRESSION_METHOD_RAR70, SArkProps::maxDictSizeAllowed, ARKERR_DICT_SIZE_OVER 추가)
- RAR/RAR5 포맷에서 발생하는 KVE-2024-0290 보안 문제 수정
- LZ4 포맷 해제 기능 추가
- 7z/rar 포매의 해제 시 ARK의 자체 버퍼 출력 사용하지 않도록 수정
- 코드페이지 자동인식 기능에서 CP_UTF7 은 무시하도록 수정
- libz 1.22.11 -> 1.3, libunrar 6.2.10 -> 7.0.8 업데이트
- ZIP 파일의 내부 파일 삭제 과정에서, 전체 파일이 삭제된 경우 ARKERR_NOFILE_TO_ARCHIVE 대신 ARKERR_ALLFILE_DELETED 리턴하도록 수정
- 구글 드라이브의 오피스 파일 확장자는 파일을 오픈하는 과정에서 바로 읽기 가능한지 체크하는 기능 추가
- TAR 생성 과정에서 패딩 바이트를 1바이트씩 처리하는 문제로 시간 오래 걸리는 버그 수정
- Windows에서 TAR 포맷으로 압축할 때 USTAR 헤더 쓰기 기능 추가
- SArkCompProps::_no_file_time_ 추가
- 파일 앞 더미 데이터의 크기가 큰 ZIP64 파일을 열지 못하는 버그 수정
- ZIP 파일의 병렬 압축 해제 과정에서 콜백 함수에 취소를 리턴하면 다른 파일이 손상되는 경우가 있는 버그 수정
- ZIP 파일의 병렬 압축 해제 과정에서 성공한 경우에만 출력 파일의 파일시간 및 속성을 변경 처리하도록 수정
- GZ 파일의 코멘트를 처리하지 못하는 버그 수정
- 기타
7.31.0.1
- 2023/3/9
- 지원 Windows OS 변경(Windows 7 이상)
- SArkDetectCodepage 및 IArk::DetectCurrentArchivesCodepage() 삭제 및 해당 기능 지원 중단
- ASAR 포맷 해제 기능 추가(ARK_FF_ASAR)
- 일부 info-zip으로 암호를 걸어 압축한 파일이 손상된 경우 파일 목록을 제대로 열지 못하는 버그 수정
- 일부 ZIP 포맷의 압축 해제 진행 처리가 정상 처리되지 않는 버그 수정
- 빈 암호("")로 암호화된 ZPAQ 파일을 열지 못하는 버그 수정
- 일부 ZIP 파일의 뒷부분에 더미 데이터가 있는 경우 손상된 파일로 잘못 인식하는 버그 수정
- 일부 손상된 ZIP 파일의 로컬 헤더에서 DATA DESCRIPTOR SIGNATURE를 제대로 처리 못 하는 버그 수정
- 일부 손상된 ZIP 파일을 여는 과정에서 무한 루프에 빠질 수 있는 버그 수정
- 기타
7.28.0.3
- 2022/11/15
- Read Only 속성을 가진 파일의 압축을 풀 때 Zone.Identifier 정보를 쓰지 못하는 버그 수정
- UUE/UU/XXE 포맷의 파일 앞쪽에 더미 데이터가 있어도 UUE/UU/XXE 포맷으로 처리하도록 개선
- SArkProps::bOpenArchiveWithShareDelete 없애고 SArkProps::dwReadFileShareMode 추가
- 기타
7.28.0.2
- 2022/10/12
- PEA 포맷의 해제 기능 추가 및 ARK_FF_PEA 추가
- MAC OS 에서 생성한 리소스 포크 파일의 처리 방식 개선
- CPU 논리코어가 32개가 넘어가면 ZPAQ 압축 해제 도중 크래시 발생 버그 수정
- POSIX 환경에서 일무 문자열 처리 도중 메모리 오버플로우 버그 수정
- 빈 문자열("") 암호 지원 기능 추가
- 기타
7.28.0.1
- 2022/8/1
- UUE/XXE 포맷의 해제 기능 추가
- SArkProps::arkFlags 추가
- SArkProps::sevenZipLzmaExtNumThreads 추가
- ZPAQ 압축 도중 발생하는 문제 수정 및 개선
- EGG 파일 뒤에 더미 바이트가 있으면 오류가 발생하는 버그 수정
- ZIP 파일에 잘못된 unix 폴더 속성이 있는 경우 무시하도록 기능 추가
- J2J 포맷 지원 기능 강화
- 8G 넘는 TAR 파일을 제대로 처리하지 못하는 버그 수정
- LZMASDK liblzma-21.07 업데이트
- ARK_COMPRESSION_METHOD_REFERENCE 추가 및 zipx 의 reference 압축 알고리즘 해제 지원 기능 추가
- ARK_COMPRESSION_METHOD_MP3 추가 및 zipx 의 MP3 압축 알고리즘 해제 지원 기능 추가
- UDF 파일의 EXTENTLEN_TYPE_1 파일 처리 기능 추가
- 스파스로 압축한 TAR 파일의 압축 해제시 NTFS 에서 SPARSE 파일이 생성되도록 기능 추가
- 기타
7.23.0.3
- 2021/12/13
- GZIP 파일에서 발생하는 보안 문제 수정(KVE-2021-0517)
7.23.0.2
- 2021/12/1
- KVE-2021-1018, KVE-2021-1019 문제 수정
- TAR 파일의 심볼릭 링크 파일명에 ":" 등이 포함되어 있는 경우 WIN32 에서 파일을 생성하지 못하는 버그 수정
- 병렬 해제 수행 후 스레드 종료를 기다리는 시간이 오래걸리는 문제 수정
7.23.0.1
- 2021/11/29
- 일부 센트럴 헤더가 손상된 ZIP 파일도 열 수 있도록 개선
- ZPAQ 포맷을 처리하는 과정에서 발생하는 핸들릭 문제 수정
- ZIP 포맷의 병렬 해제 기능 개선 및 버그 수정
- 하드링크 정보가 포함된 TAR 파일의 압축 해제 진행 정보가 100% 가 안되는 버그 수정
- 병렬 압축 해제 중 취소를 하면 간혹 크래시 발생하는 버그 수정
- 7z 포맷의 파일에 Unix mode 속성이 있을경우, 압축 풀 때 해당 정보를 복구하는 기능 추가
- Linux 2.6 에서 빌드한 64비트용 SO 파일 추가
- 기타
7.20.0.1
- 2021/10/6
- libzpaq 7.13 -> 7.15 업데이트
- ZIP 파일명의 NFD 체크중 널포인터 문제로 죽을 수 있는 버그 수정
- ARC/TGZ/TBZ/XZ/Z/LZMA 파일의 압축 해제 진행률이 특정 조건에서 100% 가 안되는 버그 수정
- 압축 해제 중 ZIP 파일에 저장된 맥의 리소스 포크 파일 처리 기능 추가 및 SArkProps::zipApplyResourceFork2File 추가
- 스트리밍 형태의 ZPAQ 의 파일명이 깨지는 버그 수정
- ZIP 파일의 DATA DESCRIPTOR 에만 파일 정보가 있는 ZIP 파일의 복구 기능 개선
- ZIP 포맷에 대한 병렬 압축 해제 기능 추가 및 SArkProps::useParallelExtraction, SArkProps::parallelExtThreadCount 추가
- IArkSimpleOutStream::SetPos() 추가
- 일부 조작된 NSIS 포맷에서 오버플로우가 발생하는 버그 수정
- 일부 NSIS 파일을 열지 못하는 버그 수정
- 일부 분할 ZIP 파일을 열지 못하는 버그 수정
- 일부 헤더가 조작된 TAR 포맷에서 크래시가 발생할 수 있는 버그 수정(KVE-2021-1017)
7.17.0.3
- 2021/5/3
- IArkCompressor::CreateArchive() 호출할 때, 압축하려는 파일이 모두 잠겨있어 빈 압축파일이 생성될 상황이면 FALSE 를 리턴하고 IArkCompressor::GetLastError() 는 ARKERR_NOFILE_TO_ARCHIVE 를 리턴하도록 수정
- 코멘트가 있고 비어 있는 ZIP 파일을 분할 압축된 ZIP 파일로 잘못 인식하는 버그 수정
7.17.0.1
- 2021/4/20
- ARK_FF_DAA 추가 + DAA 포맷(V1.0) 압축 해제 기능 추가
7.16.0.2
- 2021/3/29
- 파일명이 손상된 ISO 파일의 UTF16 파일명을 UTF32 로 바꾸는 과정에서 크래시 발생 버그 수정 (POSIX)
- ZIP 파일의 폴더에 대한 심볼릭 링크의 압축 해제를 제대로 처리하지 못하는 버그 수정 (Win32)
- HAOZIP의 전용 분할 압축 (论坛专用分卷, .haozip01.zip, .haozip01.7z) 스타일(ARK_MULTIVOL_STYLE_HAOZIP)의 압축해제 기능 추가
- LZMA 알고리즘으로 압축하는 도중 쓰기 에러 발생하면 버퍼 오버플로우로 크래시 발생하는 버그 수정
- 압축 파일을 생성하는 과정에서 쓰기 에러가 발생하여도 특정 조건에서 오류 처리가 안되는 버그 수정
- 기타
7.16.0.1
- 2021/3/15
- 7Z 포맷의 LZ4/LZ5/LIZARD/DEFLATE64 압축 알고리즘 해제 지원 기능 추가
- ZIP 포맷의 ZSTD 압축 알고리즘에 대한 압축 해제 기능 추가(ARK_COMPRESSION_METHOD_ZSTD)
- RAR5 포맷의 junction 폴더를 처리하는 기능 추가
- TAR 포맷으로 압축할 때, 하드 링크 정보 저장하는 기능 추가 (SArkCompProps::tarProcessHardLink)
- ZIP 포맷을 처리하는 과정에서, 로컬 헤더에 파일명이 없어도 정상적으로 처리하도록 개선
- UDF 포맷의 압축 해제 속도 향상
- TAR 포맷의 심볼릭 링크를 생성할 때, 심볼릭 링크 경로가 절대 경로이면 상대 경로로 바꾸는 기능 추가
- IArk::ExtractAllTo() 메소드에 path2remove 파라미터 추가
- 헤더가 암호화된 RAR5를 열 때, 암호가 틀리면 ARKERR_AT_READ_CONTAINER_HEADER를 리턴하던 것을 ARKERR_INVALID_PASSWD 리턴하도록 수정
- 헤더가 암호화된 RAR5를 열 때, 암호가 세팅되지 않았으면 ARKERR_PASSWD_NOT_SET을 리턴하고 끝나던 것을 콜백으로 암호 물어보도록 수정
- IArkCompressor::FindFileItemIndex2Add2() 메소드 호출 시 버퍼 오버플로 발생할 수 있는 버그 수정
- 압축 데이터가 손상된 ACE 포맷의 압축을 해제하는 과정에서 Divide by zero 크래시가 발생할 수 있는 버그 수정
- 헤더가 조작된 RAR5 포맷의 심볼릭 링크를 처리하는 과정에서 널 포인터 참조 크래시 발생할 수 있는 버그 수정
- 압축 데이터가 손상된 ALZ 포맷의 BZIP2 알고리즘 압축 해제 중 버퍼 오버플로 발생할 수 있는 버그 수정
- 헤더가 조작된 TAR 포맷의 심볼릭 링크를 처리하는 과정에서 버퍼 오버플로 발생할 수 있는 버그 수정
- 헤더가 조작된 TAR 포맷을 처리하는 과정에서 버퍼 오버플로 발생할 수 있는 버그 수정
- 헤더가 조작된 ZIP 포맷의 LZMA 알고리즘 압축을 해제하는 과정에서 버퍼 오버플로 발생할 수 있는 버그 수정
- 헤더가 조작된 ARJ 포맷의 압축을 해제하는 과정에서 버퍼 오버플로 발생할 수 있는 버그 수정
- 헤더가 조작된 RAR5 포맷의 압축을 해제하는 과정에서 버퍼 오버플로 발생할 수 있는 버그 수정
- 헤더가 조작된 ALZ 포맷의 파일 목록을 읽는 과정에서 버퍼 오버플로 발생할 수 있는 버그 수정
- 헤더가 조작된 BH 포맷의 압축을 해제하는 과정에서 버퍼 오버플로 발생할 수 있는 버그 수정
- 일부 분할 RAR/RAR5 의 처리를 잘못 처리하는 버그 수정
- 일부 UDF 포맷의 압축 해제를 처리하지 못하는 버그 수정
- DEFLATE 알고리즘으로 압축을 할 때, 간혹 프로그램이 크래시 되는 버그 수정
- 일부 ZIP 파일을 열지 못하고 크래시 발생하는 버그 수정
- 일부 헤더 손상된 TAR 파일을 열 때 프로그램 죽는 버그 수정
- ZIP 포맷으로 압축할 때, DOS를 타겟으로 하면 심볼릭 링크 정보가 저장 안되는 버그 수정
- ZIP 포맷으로 압축할 때, 심볼릭 링크 속성을 추가하는 과정에서 RWX 속성도 추가하도록 개선
- Compound 포맷의 압축을 푸는 과정에서 프로그래스 콜백을 호출 안하는 버그 수정
- 일부 Compound 포맷의 압축을 풀지 못하는 버그 수정
- TAR 포맷의 심볼릭 링크 압축 풀때, 폴더에 대한 심볼릭 링크명 끝에 "/" 가 들어가 있으면 풀지 못하는 버그 수정
- TAR 포맷으로 압축할 때 폴더에 대한 심볼릭 링크를 처리하지 못하는 버그 수정
- SArkCompProps::tarProcessSymbolicLink 가 TRUE 일때, 정상적으로 심볼릭 링크 생성 안되는 버그 수정
- 기타
7.13.0.3
- 2020/12/9
- IArk::CheckFormat() 에 NULL 을 파라미터로 전달하면 크래시 발생하는 버그 수정
- IArk::ExtractAllTo(LPCSTR), IArk::ExtractAllTo(LPCWSTR)에 NULL 을 파라미터로 전달하면 현재 폴더에 압축을 푸는 대신 IArk::TestArchive()를 호출한것과 동일하게 작동하도록 기능을 수정
- 기타
7.13.0.2
- 2020/12/2
- ZSTD, Brotli 압축 알고리즘을 사용한 7z 포맷의 압축을 해제하는 기능 추가
- NSIS 솔리드 압축 데이터 사이에 패딩 데이터가 있는 일부 구형 NSIS 포맷의 압축을 풀지 못하는 버그 수정
- 일부 BCJ 필터를 사용한 NSIS 포맷의 압축을 풀지 못하는 버그 수정
- 일부 UDF 포맷의 Allocation_Extent_Descriptor 를 처리하지 못하는 버그 수정
- IArkCompressor::SetArchiveFile(), IArkCompressor::RenameItem(), IArkCompressor::DeleteItem() API 복원
- RAR5 포맷의 폴더에 대한 심볼릭 링크/하드 링크/유닉스 심볼릭 링크 처리 기능 추가
- 심볼릭 링크를 생성할때 발생할 수 있는 보안 문제 수정
- TAR 포맷의 심볼릭 링크 처리 기능 개선
- Windows 10 build 14972 이상에서 UAC 상승 없이 심볼릭 링크 생성 가능하도록 개선 (SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE)
- 현재 시간의 time_t 가 음수이면 예외 처리 과정에서 크래시 발생하는 버그 수정
- libunrar-5.8.4 -> libunrar-6.0.1 업데이트
- UDF 포맷의 아이템 인덱스 정보가 잘못된 경우, 잘못된 인덱스 참조로 크래시 발생하는 버그 수정
- ZIP 파일을 수정하는 과정에서 기존 ZIP 파일의 파일명이 nullptr 이면 크래시 발생하는 버그 수정
- LZMA 디코더를 LZMA SDK 에 포함된 어셈블리 코드로 변경하여 LZMA 압축 해제 속도 최대 2배 향상
- RAR5 의 분할 파일명이 RAR, R00, ... 형태이면 처리하지 못하는 버그 수정
- 맥에서 압축한 TAR 파일의 리소스 포크파일을 무시하는 기능 추가
- Apple Silicon 지원
- ARK_FF_XAR, ARK_FF_DMG 추가 (압축 해제는 지원 안함)
- POSIX 의 파일 입력 스트림을, 자체 버퍼를 이용한 스트림으로 처리하도록 개선
- 기타
7.10.0.1
- 2020/7/14
- SDK에 C# 예제 프로젝트 포함
7.9.0.1
- 2020/6/22
- libmspack-0.2 -> libmspack-0.10.1alpha 교체로 일부 CAB 파일의 LZX 알고리즘 압축 해제 중 죽는 문제 해결
- 압축을 할 때, 생성될 압축파일의 경로명이 260자를 넘어가면 파일을 생성하지 못하는 버그 수정
- 압축을 할 때, 최대 압축 스레드 수를 16에서 64로 변경
- TAR 포맷의 EXTENDED HEADER에 데이터가 2개 이상 있으면 제대로 처리하지 못해서 파일명이 이상해지는 버그 수정
7.7.0.1
- 2020/5/26
- CentOS 6.10 에서 빌드된 리눅스용 32비트 바이너리(bin.Linux-2.6.32-i686) 추가
- 처음 입력된 7Z 포맷의 암호가 틀렸을때 두번째 입력된 암호가 맞아도 에러가 발생하는 버그 수정
- TGZ 파일 열때 마지막 파일의 TarI_OnOpening() 에서 false 이면 크래시 발생하는 버그 수정
- Test() 메소드를 호출했을때 폴더에 대한 시간을 바꾸려고 시도하는 버그 수정
- SArkProps::setFoldertimeAfterExtraction 추가
- TAR 포맷의 extender header 의 keyword 가 path 가 아니라 mtime 등일 경우, 파일명으로 잘못 처리해서 파일명이 깨져서 처리되는 버그 수정
- tar.gz(solid) 의 harlink 를 처리하지 못하는 버그 수정
- 코드페이지 자동인식 상태에서는 MBCS 코멘트를 처리하지 못하는 버그 수정
- TAR 포맷의 하드링크가 서브 폴더에 있으면 처리하지 못하는 버그 수정
7.0
- 2020/3/9
- 다이나믹 라이브러리 파일명을 ark.<아키텍처>... 형식으로 통일
- Windows XP 지원 종료
- C++11 을 지원하지 않는 구형 Linux 지원 종료
- POSIX 환경에서도 압축 기능 지원(ZIP, 7Z, TAR 포맷)
- POSIX 환경에서도 LGPL 라이브러리(ark.x64.lgpl.so)를 런타임에 로드하여 사용하는 기능 추가
- 라이브러리 폴더 및 파일명 교체
- 자체 모듈로 UDF 2.6 해제 기능 추가
- 자체 모듈로 NSIS 해제 기능 추가
- Brotli(br) 압축 해제 기능 추가
- 자체 모듈로 ACE 포맷 해제 지원 기능 추가
- ZSTD 포맷 해제 기능 추가
- 유닉스에서 압축한 RAR5 포맷의 파일 시간을 처리하지 못하는 버그 수정
- ARKERR_WARN_LOCKED_FILE_OPENED_TO_COMPR 추가
- 일부 압축 포맷에서 해제 진행 프로그래스가 엉터리로 표시되는 버그 수정
- TAR 포맷의 EXTENDED HEADER 로 긴 파일명 처리하는 기능 추가
- libunrar-5.7.3 -> libunrar-5.8.4 교체
- SArkProps::zipOpenStrategy 추가
- 분할 cab 파일을 경로명 없이 파일명만으로 열면 죽는 버그 수정
- 컴파일러 변경 (VS 2017 -> VS 2019)
- ZIP 파일에서 폴더아이템이 compsize 를 가지고 있는 경우, 어떤 종류의 편집을 하는 경우에도 크래시가 발생하는 버그 수정
- EXE 의 .RSRC 뿐만 아니라 UNKNOWN SECTION 에 대해서도 SFX 데이터 처리 기능을 추가
- SFX 파일중 EXE 의 .rcdata 에 NumberOfIdEntries 에 압축 데이터가 들어있는 경우 압축 파일 헤더를 찾지 못하는 버그 수정
- PKLITE 로 압축된 DOS ARJ SFX 파일 해제 기능 추가
- MSI 파일의 파일명에 공백이 있을 경우, 파일명이 깨지는 버그 수정
- COMPOUND 의 아이템 정보에 시간 정보가 전부 0 이면, 파일의 시간을 세팅하지 않도록 개선
- TAR 포맷의 하드링크 파일에 파일 크기 정보가 있을경우, 파일을 제대로 처리하지 못하는 버그 수정
- SArkCompProps::_7zSolidBlockSize 추가
- 7z 압축할 때 solid/non solid 상관 없이 폴더 단위로 처리하도록 구조 개편
- 7Z 압축할 때 non solid + aes + lzma 상태에서 손상된 압축 파일 생성하는 버그 수정
- SArkProps::useSetEndofFile2OutFile 기능 추가
- POSIX 에서 압축 파일 생성할 때 공백이 있는 폴더가 아닌 엉뚱한 폴더에 압축 파일이 생성되는 버그 수정
- LHA- PM1 압축 방식에 대한 디코딩 기능 추가
- SArkProps::tarForceUTF8FileName 기본값을 TRUE->FALSE 변경
- TAR 포맷 압축해제할 때 코드페이지를 자동 인식하도록 기능 추가
- zip 파일명에 ? 가 포함된 경우 무조건 코드페이지 경고 처리하는 버그 수정
- XZ 압축해제할 때, PROGRESS 가 100% 안되는 문제 수정.
- 분할 cab 파일을 경로명 없이 파일명만으로 열때, CArkMultiInFileStream::GetNextCabFileName() 에서 죽는 버그 수정
- SArkProps::openAllSplitVolume 추가
- SArkProps::openAllSplitVolume 켜져있으면 분할 CAB 의 일부 파일도 압축 해제할 수 있도록 수정
- 손상된 ISO 파일열때 하위 폴더 읽다 에러 발생하면 계속 시도하지 않고 멈추도록 개선
- IArk::ChangeArkFileName() 추가
- SArkProps::bShortenPathNameWhenTooLong 추가
- 솔리드 포맷을 해제할 때 마지막 아이템이 폴더이면 메모리 릭 발생하는 문제 수정
- RAR5에서 하드링크 속성(FSREDIR_HARDLINK) 속성의 파일의 처리 관련 버그 수정
- STDIO I/O 스트림의 최적화로 파일 I/O 속도 향상
- liblzma-16.02 -> liblzma-18.05 교체
- BIN 폴더를 bin.win32, bin.Linux.* 폴더로 구분
- POSIX 환경에서 ZIP/TAR 압축할 때 심볼릭 링크 처리 기능 추가
- SArkCompProps::zipOS, SArkCompProps::zipOSwhenUTF8, SArkCompProps::zipProcessSymbolicLink, SArkCompProps::caseSensitive, SArkCompProps::tarProcessSymbolicLink 추가
- SArkProps::zipProcessSymbolicLink, SArkProps::zipProcessStreamingZip, SArkProps::zipIgnoreAppleResourceFork, SArkProps::useThreadFileWrite, SArkProps::copyZoneIdentifierADS 추가
- IArkEvent::OnOpening() 에서 (LPCWSTR archivePathName, int archiveVol) 삭제, IArkEvent::OnOpeningMultivolArchive() 추가
- IArk::LoadArkLGPL(), IArk::IsEditable() 추가
- IArkCompressor::SetProps7z() 추가
- SArkFileItem::fileName 삭제
- POSIX 에서 심볼릭 링크 파일명이 100자 넘어갈때 LONGLINK 로 처리하는 기능 추가
- TAR 압축할 때 파일명이 512자 넘어가도 처리할 수 있도록 기능 추가
- TAR 압축 풀때, SYMLINK 의 LONGLINK 처리 기능 추가
- 하드링크 속성을 가지는 TAR 파일의 압축 해제 기능 추가
- 기타 많은 버그 수정과 개선 및 코드 리팩토링
6.26.0.1
- 2020/1/10
- SArkProps::zipOpenStrategy 추가
- 코드사인 방식 변경 (기존 SHA1+SHA2 를 SHA2 로만 사인)
- 분할 cab 파일을 경로명 없이 파일명만으로 열면 죽는 버그 수정
6.22.0.3
- 2019/6/20
- ALZ 포맷의 obfuscated deflate 알고리즘 압축 해제 지원 기능 추가
- ARJ 포맷의 GARBLE 암호화 해제 지원 기능 추가
- 7z 포맷의 압축 해제중 암호 걸린 파일의 암호를 물어볼때 사용자가 취소를 선택 하면 ARKERR_USER_ABORT_OR_CANCEL 대신 ARKERR_PASSWD_NOT_SET 을 리턴하도록 수정
- DOS에서 압축한 LZH SFX / 분할 RAR SFX / ARJ SFX를 해제하지 못하는 오류 수정
- 일부 손상된 ISO 파일을 제대로 열지 못하는 버그 수정
6.22.0.2
- 2019/3/29
- Ark6 SDK 에서 POSIX 지원 중단
- unacev2.dll 를 사용하지 않고, 자체적으로 ACE 포맷 압축 해제 기능 추가
- ARK_MULTIVOL_STYLE_ACE 추가, ARK_COMPRESSION_METHOD_ACE 삭제, ARK_COMPRESSION_METHOD_ACEBLOCKED 추가,
- 분할 압축된 ARJ의 경로명 구분자가 \ 가 아닌 / 이면 처리하지 못하는 버그 수정
- RAR5가 암호 틀린경우, 압축을 풀지 않고 IArkEvent::OnAskPassword() 를 다시 호출하도록 개선
- ZIP 파일의 앞부분에 더미 데이터가 4MB 이상 이여도 ZIP 파일로 인식하도록 개선
- RAR5에서 하드링크 속성(FSREDIR_HARDLINK) 속성의 파일의 압축을 풀지 못하는 버그 수정
- RAR5에서 하드링크 속성(FSREDIR_HARDLINK)이나 파일 카피(FSREDIR_FILECOPY) 인 파일의 파일 시간을 원본 시간으로 세팅하지 않는 버그 수정
- ZPAQ 압축 해제할 때 메모리 누수 버그 수정
- libunrar-5.6.5 -> libunrar-5.7.3 교체
- 압축 풀때 출력 스트림의 버퍼 크기를 4MB 고정적으로 사용하던것을 시스템 메모리에 따라 4MB~1MB 가변적으로 사용하도록 수정
- 일부 ISO 포맷의 파일 시간을 잘못 처리하는 버그 수정
- 기타
6.20.0.2
- 2019/2/12
- IArkCompressor::SetArchiveFile(), IArkCompressor::RenameItem(), IArkCompressor::DeleteItem() API 삭제
- SArkProps::bAzoSupport 기본값을 TRUE 로 변경
- EGG 포맷의 AZO 알고리즘 해제를 XUNAZO로 대체
- 맥 파인더에서 65535개 넘는 파일을 압축해서 생성된 ZIP 파일을 손상된 파일로 인식하지 않도록 개선
- LZMA 압축 알고리즘과 AES256 암호 알고리즘으로 ZIP 포맷을 압축할 때, useDosTime2PasswordCheck 가 TRUE 여서 해당 비트 플래그가 켜지면 7z 18.04 버전에서 풀지 못하는 문제 수정
- 암호걸린 7z 압축 풀때, 파일이 손상된 경우 간혹 크래시 되는 버그 수정
- 암호걸린 7z 압축 풀때, 사용자가 암호를 입력하지 않는 경우 에러 이벤트를 발생시키지 않는 버그 수정
- unrar 5.5.5 -> 5.6.5 교체
- 멀티 스레드로 deflate 압축할 때 동기화 문제로 크래시가 발생하는 버그 수정
- 일부 헤더가 손상된 NSIS 파일을 열 때 크래시 발생하는 버그 수정
6.18.0.2
- 2018/10/22
- ARM64 CPU 지원 (Ark64a.dll, Ark64algplv2.dll)
- ARKERR_DUPE_FILE_NAME 추가
- 빈 ZIP, ZIP64 파일을 손상된 파일로 인식하는 버그 수정
- RAR4 포맷의 파일 시간 확장 정보(LHD_EXTTIME) 처리 기능 추가
- IArkCompressor::FindFileItemIndex2Add2() 추가
- 파일명의 경로명 끝이 점(.) 으로 끝나는 파일을 압축하지 못하는 버그 수정
- SArkProps::copyZoneIdentifierADS 추가
- unacev2.dll 를 LoadLibrary()로 로드할 때, 경로명을 풀패스로 호출하도록 개선
- ZIP 파일 열때 센트럴 헤더가 손상된 경우, Open() 에서 FALSE 를 리턴하도록 수정 (ARKERR_AT_READ_CONTAINER_HEADER 에러)
6.14.2.1
- 2018/7/23
- ZIP 포맷의 센트럴 헤더가 손상되었을 때 로컬 헤더를 대신 분석하도록 하는 기준을 기존의 시그너처 손상 여부에서 End of central directory record의 "total number of entries in the central directory" 항목과 파일 목록 카운트를 비교하여 판단하도록 개선
6.14.1.1
- 2018/7/10
- IArkCompressor::AddFileItem2() 추가
6.14.0.1
- 2018/7/4
- 코드페이지 자동 인식 기능 사용 시(IArk::DetectCurrentArchivesCodepage() MBCS 코멘트도 같이 처리하는 기능 추가
- 코드페이지 자동 인식 기능 사용 시 변경된 코멘트 정보를 저장하지 않는 버그 수정
- 파일 I/O 처리 시 4K 클러스터 정렬 처리 모듈의 버그로, 일부 AES256 으로 암호화된 RAR5 포맷의 암호가 틀렸다며 압축을 풀지 못하는 버그 수정
- ARK_COMPRESSION_METHOD_LZ5 알고리즘으로 압축된 LZH 파일의 압축을 풀려고 하면 크래시 되는 버그를 ARKERR_UNKNOWN_COMPRESSION_METHOD 오류를 리턴하도록 수정
- 파일 뒤에 더미 데이터가 있는 ALZ 파일의 압축을 풀 때 에러 이벤트를 발생 시키지 않도록 개선
- SArkProps::tarForceUTF8FileName 추가
- IArkCompressor::AddFileItem() 로 추가된 폴더에 폴더 속성이 없는 문제 수정
- 솔리드 포맷의 7z 파일의 압축을 풀 때 ARKERR_USER_ABORT_OR_CANCEL 상황에서 E_FAIL을 리턴하지 않고, FALSE를 리턴하는 버그 수정
- TGZ, TBZ 파일을 솔리드 압축 파일로 풀 때, 사용자가 덮어쓰기에서 취소를 선택한 경우 바로 OnError(ARKERR_USER_ABORT_OR_CANCEL) 를 호출하지 않는 것을 바로 호출하도록 수정
- BZIP2 압축 해제할 때 파일 출력에서 에러 발생 시 에러 이벤트가 두 번 발생하지 않도록 개선
- IArkCompr::SetCodePage()에 잘못된 값(ARK_CP_UNKNOWN) 이 들어오면, 기본값으로 교정하는 코드 추가
- GZIP 파일 뒤쪽에 테일(CRC+크기 정보)이 없는 경우 압축 해제 시 에러 이벤트 발생하도록 수정
- 시놀로지 NAS에서 압축한 ZIP 파일의 파일명이 깨지는 버그 수정
- RAR5 포맷의 Redirect 속성을 가진 파일 중 symbolic link 와 hardlink 속성의 파일을 풀지 못하는 버그 수정
- ZIP 포맷으로 압축할 때 랜덤 솔트값이 랜덤하지 않아서 발생하는 보안 문제 수정
- Windows에서 심볼릭 링크 생성할 때 생성할 파일의 경로명이 너무 길어서 실패하는 경우는 UNC 로 다시 시도하도록 개선
- RAR5 포맷의 HIDDEN, READONLY 속성 등을 처리하지 못하는 버그 수정
- 헤더가 손상된 WAVPACK 압축 알고리즘의 압축 해제 중 프로그램이 크래시 되는 버그 수정 (두 군데)
- 솔리드로 압축된 RAR5 포맷의 파일에 RAW로 저장된 파일이 섞여 있을 경우 압축 해제 시 CRC 에러가 발생하는 버그 수정
- zlib 1.2.8를 최신 버전인 zlib 1.2.11로 업그레이드
- ACE 포맷에 저장된 DOS 시간을 time_t로 잘못 처리하고 있던 버그 수정
- ACE 포맷의 CRC 정보를 잘못 가져오는 버그 수정
- 분할 압축된 ACE 포맷의 파일 목록을 제대로 가져오지 못하는 버그 수정
6.8.0.2
- 2017/7/14
- CAB 포맷에서 압축 데이터가 중복 처리되어 저장되어 있는 경우 ExtractOneAs()/ExtractOneTo() 메소드가 정상 작동하지 않는 버그 수정
- CAB 포맷에서 압축 데이터가 중복 처리되어 저장되어 있는 경우 진행 상황 이벤트(OnProgressFile())가 정확하게 계산되지 않는 버그 수정
6.8.0.1
- 2017/6/27
- VMSF_DELTA 버퍼 오버플로우 문제가 수정된 unrar 5.5.5 적용 (https://www.exploit-db.com/exploits/42245/)
- ZPAQ 파일의 버전 히스토리를 전부 파일 목록으로 처리하는 기능 추가
- 다량(10만개 이상)의 파일이 포함된 ZIP 파일을 열때, 파일 목록 얻어오는 속도 최대 400% 향상
- 파일 읽기 처리를 4K 클러스터 단위로 맞춰서 처리 속도 향상
- DEFLATE 압축 해제할 때 첫 디코딩 버퍼 크기를 줄여서 압축 해제 속도 향상
- 중국어 코드페이지중 CP54936 지원 기능 추가
- ARKERR_CANT_RENAME_ARCHIVE, ARKERR_NOFILE_TO_ARCHIVE, ARKERR_TOOMANYFILE_TO_ARCHIVE 에러코드 추가
- ARKERR_USER_ABORTED 와 ARKERR_USER_CANCEL 에러코드를 ARKERR_USER_ABORT_OR_CANCEL 로 통일
- ARK_PASSWORD_RET enum 값에 ARK_PASSWORD_RET_UNDEF 추가
- GZ, XZ 압축할 파일이 2개 이상이면 ARKERR_TOOMANYFILE_TO_ARCHIVE 에러코드 리턴하도록 기능 추가
- IArk::DetectCurrentArchivesCodepage() 호출 중 특정 상황에서 NULL 포인터 참조로 죽는 버그 수정
- RAR 파일 초기화 부분에서 메모리가 부족한 경우 throw 를 캐치하지 않아서 프로그램이 죽을 수 있는 버그 수정
- ZIP 포맷중 LZMA 알고리즘을 사용한 파일의 압축 전 크기가 4GB가 넘는 파일의 압축을 풀지 못하는 버그 수정
- ZIP 파일 수정할 때 기존 파일을 덮어쓰는 경우 진행률이 100%가 되지 않는 버그 수정
- ZOPFLI 알고리즘으로 압축할 때 압축률이 0이하일때 에러가 발생하는 버그 수정
- 여러개의 GZ 블럭으로 구정된 TGZ 파일을 열지 못하는 버그 수정
- 압축 마무리 단계에서 사용자 중지를 호출한 경우 데드락에 걸리는 버그 수정
- 7Z 압축할 때 폴더의 시간정보를 제대로 저장하지 못하는 버그 수정
- 분할 압축 크기를 1바이트로 설정하면 내부 리커전 코드에서 스택 오버플로우로 죽는 버그 수정
- GZ, XZ, LZH, TAR, TGZ 압축할 때 압축할 파일 목록이 없으면 죽는 버그 수정.
- ISO 파일 처리할 때 MainVolDescIndex 가 배열 범위 벗어나는 경우 죽는 버그 수정
- 코드 페이지 자동인식하면 TAR/TGZ 에서 파일명이 ?로 처리되는 버그 수정
- 파일명 암호걸린 7Z 열때, 사용자가 취소를 해도 한번 더 암호를 물어보는 버그 수정
- SArkProps::bUseRAR5QuickOpen 기본값을 TRUE 에서 FALSE 로 수정
- 기타
6.0.1.2
- 2016/11/25
- 빈 ZIP64 파일을 분할 압축 ZIP 파일로 잘못 인식하는 버그 수정
- CAB 파일의 분할 압축 파일명이 재귀 반복되지 않도록 개선
6.0.0.1
- 2016/11/4
- SDK 라이선스 변경 및 IArk::Verify() 메소드 추가
- ARKERR 시작값을 0 이 아닌 0xa0000000 으로 변경 및 시스템 에러 발생시 WinError.h 에 정의된 값을 리턴하도록 개선
- FreeArc 지원 기능 삭제
- Arc 포맷 압축 해제 기능 추가
- 분할 ISO 파일(i00, i01, ... ) 지원 기능 추가
- Ark32LPGL.dll -> Ark32LPGLv2.dll 로 이름 변경
- MS Comound(MSI,DOC,XLS,PPT) 포맷 풀기 기능 추가
- ZIPX/EXE 압축시 XZ 압축 알고리즘 지원 기능 추가
- EGG 포맷의 LEA 암호화 알고리즘 지원 기능 추가
- TAR 헤더의 폴더 정보에 comp/uncomp 정보가 있는 경우 TGZ 압축 해제시 먹통되는 버그 수정
- 로컬헤더의 ZIP64 EXTRA FIELD 에 잘못된 파일 크기 정보가 들어 있을 경우 압축을 풀지 못하는 버그 수정
- 폴더, 파일명 앞의 공백을 _ 로 바꾸는 기능 삭제
- 멀티볼륨 rar,rar5 포맷의 압축 해제시, 중간 볼륨 파일이 손상된 경우 전체 파일의 끝까지 압축을 해제하지 않고 현재 볼륨의 끝에서 CRC 에러를 출력하고 멈추는 기능 추가
- ArkTest 프로젝트 개선
- 주석이 달린 GZIP 파일의 압축을 풀지 못하는 버그 수정
- ISO 생성시 경로명에 MBCS가 포함되면 프로그램이 간혹 죽는 버그 수정
- ZIP 포맷의 센트럴 헤더의 파일명 필드가 0 인 경우 죽는 버그 수정
- WinRar 3.0으로 압축한 압축 파일중 일부 파일이 압축된 크기정보가 -1 인 경우 오류가 발생하던것을 정상적으로 처리하도록 수정
- LZMA SDK 16.02 업데이트
- unrar 5.3.11 업데이트
- zlib 1.2.8 업데이트
- EGG 포맷의 끝에 더미 데이터가 추가된 경우 손상된 파일로 인식하던것을 손상된 파일로 인식하지 않도록 수정
- Deflate 알고리즘을 멀티 스레드로 압축시에도 bypassWhenUncompressible 옵션이 적용되도록 기능 추가
- 압축 해제시 기존의 300자 였던 최대 암호길이의 제한이 없어짐
- 10만개가 넘어가는 분할 zip 파일을 열지 못하는 버그 수정
- RAR5의 QUICK OPEN 지원 기능 추가
- Ark.h 의 Option을 Props 로 바꿈 (SArkCompressorOpt->SArkCompProps, SetOption()->SetProps())
- GZ/XZ 압축 기능 추가
- ARK_MAX_PATH 를 300 에서 512 로 늘림
- 11GB 가 넘는 J2J 파일을 열지 못하는 버그 수정
- CAB 포맷에서 0바이트 파일이 포함된 경우 일부 처리를 제대로 하지 못하는 버그 수정
- ARK_FILEATTR_SYMLINK 추가
- TAR 포맷 심볼릭 링크 지원 기능 추가
- LZIP 포맷 해제 기능 추가
- 폴더 생성시 FILE_ATTRIBUTE_READONLY, FILE_ATTRIBUTE_SYSTEM 속성을 복구하지 않는 버그 수정
- RAR5 압축 해제 속도 향상
- SPARSE TAR 파일 처리 기능 추가
- zopfli 압축 기능 추가(SArkCompProps::defaultUseZopfli)
- 20 바이트 짜리 GZIP 파일을 열지 못하는 버그 수정
- ZPAQ 포맷 해제 지원 기능 추가
- IArkEvent::OnAskPassword() 에 setPasswd 추가
- IArkEvent::OnStartFile 에 changeFullPathName 추가
- IArkEvent::OnAskOverwrite 에 changeLocalPathName 으로 변경
- 7Z 압축시 시스템의 메모리에 따라 자동으로 압축률 조절하는 기능 추가
- TAR 포맷 압축할 때 경로명이 512자를 넘어가면 오류처리를 하도록 기능 추가
- TAR 포맷 열때 심볼릭 링크 처리 부분이 느리던 버그 수정
- ZIP 포맷의 파일 아이템의 폴더 속성이 켜져 있어도, 압축크기/해제크기/CRC 정보등이 존재하면 파일로 처리하도록 기능 추가
- ISZ 포맷 및 분할 ISZ 압축 해제 기능 추가
- ZIPX 포맷의 XZ 압축 알고리즘 압축 해제 지원 추가 (ARK_COMPRESSION_METHOD_XZ)
- ZIP 포맷의 REDUCE 압축 알고리즘 압축 해제 지원 추가 (ARK_COMPRESSION_METHOD_REDUCE1 ~ ARK_COMPRESSION_METHOD_REDUCE4)
- AesCrypt(.AES) 해제기능 추가
- 파일 I/O 처리 기능 향상
- LZH 압축시 하드가 꽉차면 하드가 꽉찾다고 메시지 출력하도록 개선 + 출력 파일을 삭제하지 않던 버그 수정
- ISO 압축시 하드가 꽉차면 에러 메시지가 두번 호출되던 버그 수정
- ZIP 파일의 내부 파일명이 MAX_PATH*2 를 넘을 경우 ARKERR_INVALID_FILENAME_LENGTH 에러를 발생시키던것을 에러를 발생시키지 않도록 개선
- ZIP 파일 편집시 기존 파일의 progress 처리에 대한 100% 기준을 "압축 해제된" 크기로 처리하던걸, "압축된 데이터 크기"로 처리하도록 수정
- ZIP 파일 생성 version needed to extract 를 10에서 20으로 변경
- PKZIP 으로 헤더가 암호화 된 경우 ARKERR_NOT_SUPPORTED_FILEFORMAT 를 리턴하도록 기능 추가
- SFX 나 CRX 처럼 ZIP 앞에 물리적으로 더미 헤더가 있는 경우, 기존에는 무조건 로컬 헤더를 읽던 것을 일단 센트럴 헤더를 먼저 읽어서 처리해 보도록 개선
- ZIP 해제 모듈에서 분할크기가 4GB 넘은 분할 zip 에서 offset 이 4GB 를 넘어가는 파일의 처리를 제대로 못해서 압축을 풀지 못하는 버그 수정
- RAR 포맷의 파일 시간이 2038년을 넘어가는 경우, 압축 푼 파일의 파일 시간이 잘못 처리되는 버그 수정
- 원본 ZIP 파일 수정시 CopyStream 에서 진행률 잘못 처리되던 버그 수정
- 암호를 걸고 Store로 저장된 RAR5 파일의 압축을 해제하지 못하던 버그 수정
- MSZIP 알고리즘을 사용하고, 분할 압축된 CAB 포맷의 압축파일을 풀지 못하던 버그 수정
- 7Z포맷의 SWAP2, SWAP4 필터를 처리하지 못하던 버그 수정
- 4기가가 넘는 2개 이상의 파일을 ZIP/ZIPX/EXE 포맷으로 분할 압축시 헤더 정보를 잘못 읽어서 압축을 풀지 못하는 버그 수정
- 여러개의 gz파일이 물리적으로 합쳐진 형태의 gz 파일의 압축도 제대로 해제하는 기능 추가
- 일부 특이한 형태의 TAR 포맷을 처리하지 못하던 버그 수정
- ArkLib.h 에서 Win98 체크코드 삭제
- 7z 솔리드 압축시 마지막 입력 파일을 압축하고 바로 닫지 않던걸 처리가 끝나면 바로 닫도록 개선
- ISO 파일 생성시 최대 파일명 길이는 64자에서 107자로 늘림
- 확장자가 .rar 이 아닌 분할 압축된 rar 파일도 제대로 처리하도록 개선
- ExtractOneAs(...WCHAR resultPathName[ARK_MAX_PATH]) -> ExtractOneAs(... WCHAR* resultPathName, int resultPathNameLen) 로 변경
- 리소스에 패킹된 NSIS 파일도 열 수 있도록 개선
- ARK_FF_MP4 추가
- 7z 파일 압축 해제중 파일 Read() 에서 에러가 발생할 경우 에러 이벤트가 발생하지 않던 버그 수정
- 이동식 드라이브에서 파일 I/O 가 발생할 경우, 매 10MB 마다 플러시를 호출하도록 기능 추가
- 기타
5.0.6.7
- 2014/8/8
- ARK_COMPRESSION_METHOD_REDIR 추가
- ARKERR_CANT_OPEN_SRC_FILE_TO_COPY 추가
- RAR5의 redirect 속성 처리 기능 추가
- NSIS 해제시 간혹 데드락 걸리는 버그 수정
- RAR 압축 해제시 128자가 넘는 암호를 쓰면 여전히 버퍼 오버플로우 발생하던 버그 수정
- ZIP으로 압축한 파일에 동일한 이름의 파일을 추가하려고 할 때 표시되는 중복확인창에서 기존 파일의 파일시간을 제대로 보여주지 못하는 버그 수정
5.0.5.6
- 2014/4/29
- ARK_FF_RAR5 추가 및 RAR5 압축 해제 지원
- 폴더가 순환참조하도록 잘못 만들어진 ISO 파일에서 재귀가 발생하지 않도록 수정
- RAR 파일의 압축 암호가 128자가 넘어가는 경우 버퍼 오버플로우가 발생하던 버그 수정
- GZIP 파일의 뒤에 더미로 0 이 포함되면 풀지 못하던 버그 수정
- TAR 포맷의 폴더 속성이 잘못 저장된 경우 풀지 못하던 버그 수정
- 폴더에 Hidden 속성이 있는 경우 압축 푼 폴더에도 Hidden 속성이 적용되도록 기능 추가
- IArk::Open(LPCWSTR _szPathName, DWORD& error, WCHAR resultPathName[ARK_MAX_PATH]) 호출시 결과 경로명이 ARK_MAX_PATH 를 넘어갈 경우 크래시 되는 버그 수정
- ZIP64 포맷에서 numberOfThisDisk 가 0xffff 인 경우 파일을 열지 못하던 버그 수정
- 7Z 압축시 메모리가 부족한 경우, 내부적으로 메모리 사용량을 줄여서 다시 압축을 시도하던 코드 때문에 발생하던 문제 수정
- ARK_FF_COMPOUND 추가 및 MSI 파일을 ARK_FF_CAB 으로 인식하지 않도록 수정
5.0.2.3
5.0.1.2
- 2013/5/16
- 솔리드 압축된 RAR 파일에 STORE 로 저장된 파일이 포함된 경우 압축을 풀지 못하던 버그 수정
- EGG 파일을 솔리드 형태로 압축할 때 빈 폴더가 포함된 경우 압축을 해제하지 못하던 버그 수정
5.0.0.1
- 2013/5/7
- ISO, 7z, lzh 압축 기능 추가
- ZIPX 포맷의 Winzip-Jpeg, Wavpack 압축 알고리즘의 압축 해제 기능 지원
- 압축된 Wim 포맷 압축 해제 기능 추가
- NSIS 파일 압축 해제 기능 추가
- 분할 압축된 CAB 포맷의 압축 해제 지원, CAB 포맷의 QUANTUM 알고리즘 압축 해제 기능 지원
- 코드페이지 자동 인식 기능 추가
- 등등등등등등... 자세한 사항은 SDK 변경사항 항목 참고
4.6.1.18
- 2012/11/13
- 2GB 이상의 J2J 파일을 처리하지 못하던 문제 수정
4.6.0.17
- 2012/10/23
- .avi.001 과 같이 avi/mkv 를 split 한 경우 ARK_FF_SPLIT 로 인식하지 못하던 버그 수정
- 빈 zip 파일을 열지 못하던 버그 수정
- 암호걸리고 솔리드 압축된 RAR의 압축 해제시 콜백으로 OnAskPassword()를 호출하지 않던 버그 수정
- POSIX 환경에서 서브폴더가 포함된 rar 분할 압축파일의 압축을 제대로 풀지 못하는 버그 수정
- POSIX 환경에서 .7z 파일 압축 풀때 파일 시간을 세팅하지 않던 문제 수정
- 유니코드를 지원하지 않는 압축 파일(zip,lzh..)의 코드페이지를 CP_ACP 대신 CP_OEMCP 로 처리하도록 수정
4.5.3.16
- 2012/6/8
- SFX 부가 정보가 포함된 EGG 포맷의 분할 SFX 파일을 분할 파일로 인식하지 못해서 손상된 파일로 잘못 인식하던 버그 수정
- ZIP 포맷이 아닌, ALZ포맷의 SFX파일을 열지 못하던 버그 수정
- ZIP 파일의 내부 경로명에 '.app/Contents/MacOS' 이 포함된 경우, 압축 해제시 무조건 실행파일로 처리하도록 수정 (POSIX만)
- TAR 파일의 실행파일 속성이 제대로 처리되지 않던 버그 수정(POSIX만)
- Security Data 가 들어간 WIM파일을 열지 못하던 버그 수정
- 압축파일 내 경로명이 260자를 넘어가는 ALZ 파일을 열지 못하는 버그 수정
4.5.2.15
- 2012/5/10
- 압축파일 인식 부분 개선
- __OSX 메타폴더 무시 기능 사용시 발생하는 메모리 릭 문제 수정
- FILE_ATTRIBUTE_SYSTEM 속성을 처리하지 못하던 버그 수정
- unix 에서 압축한 zip 파일의 심볼릭 링크 처리 기능 추가(POSIX)
4.5.1.14
- 2012/4/23
- AVI, MKV 파일을 압축파일로 잘못 인식하지 않도록 개선 및 ARK_FF_MATROSKA 추가
- 7z 포맷의 FILE_ATTRIBUTE_ARCHIVE 속성을 가져오지 않던 버그 수정
4.5.0.13
- 2012/4/12
- 일부 파일을 BH포맷으로 잘못 인식하던 문제 수정
- tar 파일 생성시 헤더 저장방식 개선
- 코드사인된 zip 포맷의 sfx 파일을 열때 손상된 파일로 잘못 인식하던 버그 수정
- 아주 작은 크기의 .Z 포맷의 압축을 풀지 못하던 버그 수정
- 파일명에 포함된 tab 을 _ 로 바꾸도록 기능 추가
- 파일명에 따옴표가 포함된 경우 파일을 풀지 못하던 문제 수정
- 7z 포맷의 delta, deflate 알고리즘 압축 해제 지원 추가
- ARK_COMPRESSION_METHOD_DELTA 추가
4.4.0.11
- 2012/3/5
- J2J 로 두번 변조한 파일을 열지 못하는 문제점 수정
- zip/zipx 압축시 forceUtf8FileName 옵션이 켜져 있으면 파일의 read only, hidden 등의 속성이 저장되지 않는 버그 수정
- 리소스에 압축 데이터가 포함된 일부 SFX 파일을 열지 못하던 문제 수정
- CheckFormat 에서 파일 앞부분을 체크하는 버퍼의 크기를 30k->1MB 로 늘림
- 일부 환경에서 작은 파일의 압축해제 속도가 느리던 문제 수정
- 맥 환경에서 발생하는 충돌을 피하기 위해서, Ark.h 의 BOOL 을 전부 BOOL32 로 바꾸어 버림
- ARKERR_CANT_CONVERT_FILENAME 추가
- zip 포맷에서 SArkFileInfo::SetFileName() 호출시 에러 발생할 경우 파일을 목록에 추가하지 않던것을 그냥 추가하도록 수정 (posix 에만 해당.)
- posix 에서는 파일명에 '?' 가 들어간 경우 정상적으로 압축을 해제할 수 있도록 수정
4.3.1.10
- 2012/2/22
- 여러개의 블럭에 파일의 데이터가 걸쳐진 CAB 파일의 압축을 풀지 못하던 버그 수정
- ZipCrypto 처리 속도 약간 향상 (대략 10%?)
- SArkGlobalOpt::bIgnoreMacOSXMetaFolder 옵션 추가
- 암호걸린 3G 이상인 EGG 포맷의 압축을 풀지 못하는 버그 수정
- AES 암호화 된 EGG 파일의 암호가 틀리거나 파일이 손상된 경우 ARKERR_CANT_READ_DATA 를 리턴하던것을 ARKERR_INVALID_FILE_CRC 를 리턴하도록 수정
- 압축하거나 압축 풀때 0 바이트 파일에 대한 진행률이 0% 가 나오던것을 100% 가 나오도록 수정
4.3.0.9
- 2012/2/10
- ZIP 파일 내부의 파일 개수가 10만개쯤 넘어가면 파일을 여는 속도가 무지 느려지던 문제 수정
- TBZ 파일을 솔리드 압축으로 열때 파일 크기가 커지면(100MB 정도) 파일을 여는 속도가 무지 느려지던 문제 수정
- ZIP 포맷의 extra field header 가 손상된 경우 죽는 경우가 있던 버그 수정
- ZIP 포맷의 센트럴 헤더가 손상되어서 로컬헤더 정보를 읽다가 죽는 경우가 있던 버그 수정
- ZIP 포맷의 deflate64 알고리즘 처리시 데이터가 손상된 경우 죽는 경우가 있던 버그 수정
- LZH 포맷의 헤더가 손상된 경우 죽는 경우가 있던 버그 수정
- LZH 포맷의 데이터가 손상된 경우 죽는 경우가 있던 버그 수정
- LZH 포맷의 데이터가 조작되어서 압축 풀때 매우 큰 파일을 생성하는 문제 수정
- RAR 포맷의 헤더가 손상된 경우 죽거나 먹통되는 경우가 있던 버그 수정
- ARJ 포맷의 데이터가 손상된 경우 죽는 경우가 있던 버그 수정
- CAB 포맷에 CFData 항목이 있을때 죽는 버그 수정
- CAB 포맷에 내부 폴더 정보가 손상된 경우 죽는 버그 수정
- ACE 포맷의 압축 해제중 핸들릭이 발생하던 버그 수정
- 일부 분할 압축된 파일을 열 때 메모리 릭이 발생하던 버그 수정
- ZIP,TAR 포맷의 압축 해제시 실행 속성이 있을경우, 현재 유저뿐만 아니라 다른 사용자도 실행 가능하게 속성을 주도록 수정
4.2.1.7
- 2012/1/30
- SFX 로 분할 압축된 RAR 파일의 첫번째 파일의 확장자를 RAR 로 바꾸었을때에도 파일을 열 수 있도록 수정
- RAR 파일 내부에 솔리드 압축된 파일과 솔리드 압축되지 않은 파일이 섞여 있을때 압축을 풀지 못하던 버그 수정
- 손상된 Deflate64 데이터의 압축 해제시 버퍼 오버플로우가 발생하는 경우가 있던 버그 수정
- 파일명이 260자 넘어가는 긴 파일을 굳이 만들지 않도록 수정
- .tar 압축시 unix tar 에 가깝게 파일을 생성하도록 수정
4.2.0.6
- 2012/1/26
- 공백이 포함된 ace 파일을 열지 못하던 버그 수정
- 분할 압축된 RAR 파일에 더미 데이터가 붙어있는 경우 풀지 못하던 버그 수정
- .tgz 파일의 확장자가 .tar 로 잘못되어 있는 경우 내부 파일명에 .tar 를 붙이도록 기능 추가
- Deflate64 압축해제시 안정성 강화
- SArkGlobalOpt::bConvertNFD2NFCWhenMacOS 옵션 추가
- ZIP 파일처리시 ARK_CP_UTF8_MAC 코드페이지를 처리하지 못하던 버그 수정
- 멀티코어에서 압축시 에러 상황이 발생한 경우 크래시가 발생하던 버그 수정
- ZIP 파일에서 아이템을 삭제할 때 진행률이 100%가 넘어가는 경우가 있던 버그 수정
4.1.3.5
- 2012/1/20
- 헤더가 조작된 LZH 파일의 파일명 처리시 버퍼 오버플로우가 발생하던 버그 수정
4.1.2.4
- 2012/1/19
- 손상된 ARJ 파일 처리시 크래시가 발생하는 버그 수정
4.1.1.3
- 2012/1/18
- 압축풀 폴더 경로가 길 경우 폴더 생성중 오버플로우로 죽던 버그 수정
- ARKERR_NOT_SUPPORTED_OPERATION 에러코드 추가
- 4G가 넘는 TGZ 파일을 열때 간혹 손상된 파일이라고 에러를 리턴하던 버그 수정
4.1.0.2
- 2012/1/17
- SArkNtfsFileTimes 구조체 추가
- SArkFileItem::fileTimeNtfs 항목 삭제, SArkFileItem::ntfsFileTimes 항목 추가
- NTFS 파일 시간 처리 부분 개선
- LZH 파일의 파일명이 길 경우 헤더를 읽지 못하던 문제 수정
- LZH 파일의 데이터가 손상된 경우 크래시가 발생하던 문제 수정
- 솔리드 압축된 파일의 압축 해제시 파일 속성과 파일시간을 복원하지 않던 버그 수정
- 암호걸린 ACE 파일에 대해서 IsEncrypted() 가 FALSE 가 나오던 버그 수정
- ACE 포맷 처리 부분 개선
- tgz 포맷으로 압축시 gz 파일 내의 .tar 파일에 대해서도 시간 설정 기능 추가
- POSIX 환경에서도 압축푼 파일의 시간을 세팅하는 기능 추가
- POSIX 환경에서 에서 TAR 포맷의 실행파일 처리 기능 추가
4.0.0.1
- 2012/1/3
- ZIP 압축시 LZMA 압축 알고리즘, AES 암호화 지원 추가
- Deflate 압축시 멀티코어 지원 기능 추가
- tar, tgz 압축 기능 추가
- 맥OS 지원(Ark64.dylib) 및 SDK에 POSIX용 SO 포함
- SDK에 다양한 샘플 프로젝트 추가
- PMA, j2j 포맷 해제 지원 추가
- 여러개의 블럭으로 구성된 bzip2 압축 해제 지원 기능 추가
- 최신버전의 알집으로 암호를 걸어서 압축한 EGG 포맷의 압축을 해제하지 못하던 문제 수정
- posix 에서 RAR 포맷의 유니코드 패스워드를 처리하지 못하던 버그 수정
- RAR 압축해제시 암호가 틀린경우에도 CRC 에러라고만 나오던 버그 수정
- 에러코드가 잘못 리턴되던 버그 여기 저기 수정
- 기타 소소한 개선 및 버그 수정
3.2.2.5
- 2011/12/21
- LZMA-ZIPCRYPTO 를 사용하는 ZIP 파일의 압축을 풀지 못하던 버그 수정
3.2.1.4
- 2011/9/7
- 암호걸린 파일 압축 해제시 동일한 이름의 파일이 있을 경우 '이름 변경' 선택후 암호를 물어볼때 '취소'를 하면 원래 디렉토리에 있던 파일이 삭제되는 버그 수정
- 일부 tgz 파일이 손상되지 않았는데 손상되었다고 잘못 메시지를 출력하던 버그 수정
- deflate+aes 조합에서 분할압축의 뒷부분이 없을때 ARKERR_INFLATE_FAILED 에러가 발생하던것을 ARKERR_CANT_READ_DATA 가 발생하도록 수정
- 일부 deflate64 파일의 압축을 제대로 해제하지 못하던 버그 수정
- 구버전 rar(rar20) 파일의 암호를 풀지 못하던 버그 수정
- LZMA로 압축하고 AES 로 암호를 건 ZIP 파일을 열지 못하던 버그 수정
- 압축파일을 tar 로 묶은 경우 tar 파일이 아니라 안에 들어 있는 압축파일로 잘못 인식하던 버그 수정
- ARK_FF_XEF 추가
- 암호걸린 7zip 파일의 암호화 방식이 Unknown 으로 나오던 문제 수정
- ARK_ENCRYPTION_METHOD 에 ARK_ENCRYPTION_METHOD_PKAES128 등 추가
- 기타 사소한 개선
3.2.0.3
- 2011/7/11
- SDK에 ZIP 포맷 압축 해제 전용 DLL(ArkUnzip32.dll, ArkUnzip64.dll) 파일 포함
- 0 바이트 크기의 파일이 포함된 CAB 파일을 제대로 처리하지 못하던 버그 수정
- IMG 포맷 지원 기능 추가
- SFX 생성시 파일의 크기가 4GB를 넘을 경우 에러를 리턴하도록 기능 추가
- 7z 파일은 IArkEvent::OnOpening() 콜백 호출시 취소를 해도 취소가 되지 않던 버그 수정
- ZIP 파일 압축시 파일명을 UTF-8 로 저장한 경우 UNIX 에서 압축 해제시 퍼미션 처리가 제대로 안되던 버그 수정
- WIM 포맷 파일을 열때 IArkEvent::OnOpening() 콜백 호출시 pFileInfo->fileName 이 NULL 로 넘어오던 것을 pFileInfo 가 NULL로 넘어가도록 수정
- .LZMA 포맷 지원 추가
- tgz, tbz 파일을 열때 IArkEvent::OnOpening() 콜백이 호출되지 않던 문제 수정
- ZIP 포맷의 ppmd 알고리즘 압축 해제 지원 추가
- 암호걸린 7zip, rar 압축해제시 틀린 암호를 입력한 경우, 다시 압축 해제를 시도할 때 더이상 콜백으로 암호를 물어보지 않던 버그 수정
- 7zip 압축 해제시 이미 동일한 파일이 있어서 사용자가 '건너 띄기'를 선택한 경우 '파일을 열 수 없습니다' 에러코드가 리턴되던 버그 수정
- 압축을 하거나 풀때 작업중인 파일을 탐색기에서 삭제하거나 이동하지 못하도록 수정
- 작은 크기의 파일 압축을 다수 풀때 느려지던 문제 수정
- 큰 크기의 cab 파일 압축 해제시 발생하던 문제 수정
- ARKERR_ACCESS_DENIED_TO_DEST_PATH 에러코드 추가 및 대상 폴더에 쓰기 권한이 없는 경우 바로 ARKERR_ACCESS_DENIED_TO_DEST_PATH 에러 리턴하고 멈추는 기능 추가
- 콜백으로 패스워드 입력시 NULL 이 전달될 경우 죽던 문제 수정
- 암호걸린 rar 파일의 압축 해제중 암호가 틀린걸 알게될 경우 쓰던 파일을 삭제하도록 기능 추가
- 압축 파일 내 파일의 경로명 앞에 .\ 로 시작하는 파일 처리 기능 추가
- lzh 포맷의 level2 헤더의 파일 타임을 dostime 으로 잘못 처리하던 버그 수정
- 파일명 암호걸린 7zip 파일을 열기 실패했을때 Open() 에서 TRUE 를 리턴하던 버그 수정
- 분할 압축된 rar 파일중 뒤에 이상한 padding 이 붙어있는 파일의 압축을 풀지 못하던 버그 수정
- ARK_FF_BAMSFX_NOTFIRSTVOL 추가 및 분할 압축된 밤톨이 sfx 파일 압축해제 지원
- FileFormat2Str()메소드에 ARK_FF_EGG_NOTFIRSTVOL 빼먹었던 버그 수정
- ARK_MULTIVOL_STYLE_ZIPX 추가 및 분할 압축된 zipx 포맷 지원 추가
- rar 파일 압축 해제시 암호가 틀렸거나 파일이 손상된 경우 바로 에러를 리턴하고 더이상 압축을 풀지 않도록 수정
- 암호걸린 7z 파일의 암호가 틀렸을때 0 바이트 파일을 지우지 못하던 버그 수정
- 일부 분할 압축된 arj 파일의 압축을 풀지 못하던 버그 수정
- ARK_FF_PAE, ARK_FF_CAB_NOTFIRSTVOL 추가
- ZIP 포맷의 AES 192bit 암호화 압축해제 지원
- 기타 자잘한 버그 수정
3.1.0.2
- 2011/5/18
- IArkEvent::OnAskPassword() 추가
- ZIP 포맷의 explode 알고리즘 추가
- IArk::_OpenW() 등 C++ 빌더를 위한 메소드 추가
- IArk::SetPassword(LPCWSTR password) 추가 및 유니코드 패스워드 처리 기능 추가
- ZIP64 포맷으로 압축할 때 일부 헤더를 잘못 저장하던 버그 수정
- ARK_FF_ZIP_LASTVOLONLY 추가
- ZIP64 포맷의 압축파일을 열 때 로컬헤더가 아닌 센트럴헤더를 분석해서 열도록 수정 (속도 향상)
- 암호걸린 ZIP64 포맷의 압축을 해제하지 못하던 버그 수정
- 헤더CRC 정보가 없거나 minor version 2 의 .7z 포맷의 파일을 열지 못하던 문제 수정
- 32,64비트 PE-CAB 파일을 압축파일로 처리할 수 있도록 기능 추가
- ARK_FF_GIF, ARK_FF_OGGS, ARK_FF_ACE 추가
- Deflate64 알고리즘 처리시 발생하던 버그 수정
- 파일명을 UTF8로 저장시 version made by 를 수정해서 유닉스 unzip 에서 압축을 풀 수 있도록 수정
- 압축시 0 바이트 파일의 압축 알고리즘을 deflate 가 아닌 store 로 저장하도록 수정
- 구버전의 recovery block 이 있는 rar 파일을 열때 손상된 파일로 인식하던 버그 수정
- TAR 포맷의
- 일부 oggs 를 arc 포맷으로 잘못 인식하던 버그 수정
- 7zip 포맷의 파일명이 너무 길때 죽던 버그 수정
- 파일명이 너무 길 경우 압축을 풀지 못하던것을 풀 수 있도록 수정 (win32)
- 암호걸린 arj 파일이 IsEncrypted() 에서 아니라고 나오던 버그 수정
- 4GB 이상의 gz 파일의 크기가 오버플로우 되서 정상 표시되지 않던걸 추정을 통해서 계산하도록 수정
- ZIP 압축시 store 로 저장할 때 암호를 사용하면 crc 정보가 오류나던 버그 수정
- tgz,tbz 파일을 솔리드 포맷으로 처리하는 기능 추가
- IArk::SetGlobalOpt() 의 파라미터 추가 및 변경
- IArk::ExtractOneAs() 에 파라미터 추가
- ZIP 압축시 폴더 구분자를 \ 대신 / 를 쓰도록 수정
- 코멘트가 있고 솔리드 압축된 RAR파일 압축 해제시 죽던 버그 수정
- 밤톨이 sfx 압축해제 기능 추가
- 압축시 압축 안되는 데이터는 압축포기하는 기능 추가
- IArkCompressor::AddFileItem() 메소드의 호출 속도 향상
- SArkCompressorOpt 옵션에서 utf8Comment 삭제, sfxPathName, forceUtf8FileName, utf8FileNameIfNeeded, bypassWhenUncompressible 추가
- ZIP 포맷 압축시 폴더의 생성 시간도 저장하도록 기능 추가
- 일부 포맷에서 IArkEvent::OnOpening() 이 호출되지 않던 버그 수정 (tar, wim, lzh, iso, cab, arc)
- rar 분할압축 파일의 압축 해제시 뒷부분의 파일이 없을때 crc 에러나던것을 ARKERR_FILE_TRUNCATED 에러를 발생시키도록 수정
- 특정 형태의 rar 분할 압축을 풀지 못하는 버그 수정
- sfx-zip 파일 처리시 0 바이트 파일은 무시하도록 수정
- IArkEvent::OnError() 에 bIsWarning 추가
- 내부 crc 처리 속도 향상
- 시스템의 기본 코드페이지가 949 가 아닐때 MBCS를 사용해서 한글로 된 7Z 파일을 열려고 할 때 열지 못하던 버그 수정
- Lzma SDK 9.13 -> 9.20 으로 업데이트
- 기타
3.0.0.1
- 2011/1/17
- IArkCompressor 인터페이스를 통한 압축하기 및 압축파일 편집기능이 추가되었습니다.
- SArkProgressInfo 구조체의 멤버가 간략화 되었습니다.
- IArk::TestArchive(), IArk::IsOpened(), IArk::GetArchiveStartPos() 메소드가 추가되었습니다.
- CArkLib::CreateCompressor() 메소드가 추가되었습니다.
- IArk::ExtractMultiFileTo() 메소드의 파라미터가 일부 변경되었습니다.
- IArk::DisableFile() 메소드가 삭제되었습니다.
- CreateArkCompressor() 함수, IArkCompressor 인터페이스, SArkCompressorOpt 구조체가 추가되었습니다.
2010/06/08: ARK V3.0 개발 시작
2010/02/23: ARK V2.0 릴리스
2009/11/18: ARK V2.0 작업 시작
2009/04/06: ARK V1.0 작업 시작
2008/03/12: 개발 시작