mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Copy helper classes/items to DLL
This commit is contained in:
BIN
SabreHelper/7z/7za.dll
Normal file
BIN
SabreHelper/7z/7za.dll
Normal file
Binary file not shown.
BIN
SabreHelper/7z/7za.exe
Normal file
BIN
SabreHelper/7z/7za.exe
Normal file
Binary file not shown.
BIN
SabreHelper/7z/7zxa.dll
Normal file
BIN
SabreHelper/7z/7zxa.dll
Normal file
Binary file not shown.
31
SabreHelper/7z/License.txt
Normal file
31
SabreHelper/7z/License.txt
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
7-Zip Extra
|
||||||
|
~~~~~~~~~~~
|
||||||
|
License for use and distribution
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Copyright (C) 1999-2015 Igor Pavlov.
|
||||||
|
|
||||||
|
7-Zip Extra files are under the GNU LGPL license.
|
||||||
|
|
||||||
|
|
||||||
|
Notes:
|
||||||
|
You can use 7-Zip Extra on any computer, including a computer in a commercial
|
||||||
|
organization. You don't need to register or pay for 7-Zip.
|
||||||
|
|
||||||
|
|
||||||
|
GNU LGPL information
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
This library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Lesser General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2.1 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You can receive a copy of the GNU Lesser General Public License from
|
||||||
|
http://www.gnu.org/
|
||||||
|
|
||||||
77
SabreHelper/7z/history.txt
Normal file
77
SabreHelper/7z/history.txt
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
7-Zip Extra history
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
9.35 beta 2014-12-07
|
||||||
|
------------------------------
|
||||||
|
- SFX modules were moved to LZMA SDK package.
|
||||||
|
|
||||||
|
|
||||||
|
9.34 alpha 2014-06-22
|
||||||
|
------------------------------
|
||||||
|
- Minimum supported system now is Windows 2000 for EXE and DLL files.
|
||||||
|
- all EXE and DLL files use msvcrt.dll.
|
||||||
|
- 7zr.exe now support AES encryption.
|
||||||
|
|
||||||
|
|
||||||
|
9.18 2010-11-02
|
||||||
|
------------------------------
|
||||||
|
- New small SFX module for installers.
|
||||||
|
|
||||||
|
|
||||||
|
9.17 2010-10-04
|
||||||
|
------------------------------
|
||||||
|
- New 7-Zip plugin for FAR Manager x64.
|
||||||
|
|
||||||
|
|
||||||
|
9.10 2009-12-30
|
||||||
|
------------------------------
|
||||||
|
- 7-Zip for installers now supports LZMA2.
|
||||||
|
|
||||||
|
|
||||||
|
9.09 2009-12-12
|
||||||
|
------------------------------
|
||||||
|
- LZMA2 compression method support.
|
||||||
|
- Some bugs were fixed.
|
||||||
|
|
||||||
|
|
||||||
|
4.65 2009-02-03
|
||||||
|
------------------------------
|
||||||
|
- Some bugs were fixed.
|
||||||
|
|
||||||
|
|
||||||
|
4.38 beta 2006-04-13
|
||||||
|
------------------------------
|
||||||
|
- SFX for installers now supports new properties in config file:
|
||||||
|
Progress, Directory, ExecuteFile, ExecuteParameters.
|
||||||
|
|
||||||
|
|
||||||
|
4.34 beta 2006-02-27
|
||||||
|
------------------------------
|
||||||
|
- ISetProperties::SetProperties:
|
||||||
|
it's possible to specify desirable number of CPU threads:
|
||||||
|
PROPVARIANT: name=L"mt", vt = VT_UI4, ulVal = NumberOfThreads
|
||||||
|
If "mt" is not defined, 7za.dll will check number of processors in system to set
|
||||||
|
number of desirable threads.
|
||||||
|
Now 7za.dll can use:
|
||||||
|
2 threads for LZMA compressing
|
||||||
|
N threads for BZip2 compressing
|
||||||
|
4 threads for BZip2 decompressing
|
||||||
|
Other codecs use only one thread.
|
||||||
|
Note: 7za.dll can use additional "small" threads with low CPU load.
|
||||||
|
- It's possible to call ISetProperties::SetProperties to specify "mt" property for decoder.
|
||||||
|
|
||||||
|
|
||||||
|
4.33 beta 2006-02-05
|
||||||
|
------------------------------
|
||||||
|
- Compressing speed and Memory requirements were increased.
|
||||||
|
Default dictionary size was increased: Fastest: 64 KB, Fast: 1 MB,
|
||||||
|
Normal: 4 MB, Max: 16 MB, Ultra: 64 MB.
|
||||||
|
- 7z/LZMA now can use only these match finders: HC4, BT2, BT3, BT4
|
||||||
|
|
||||||
|
|
||||||
|
4.27 2005-09-21
|
||||||
|
------------------------------
|
||||||
|
- Some GUIDs/interfaces were changed.
|
||||||
|
IStream.h:
|
||||||
|
ISequentialInStream::Read now works as old ReadPart
|
||||||
|
ISequentialOutStream::Write now works as old WritePart
|
||||||
124
SabreHelper/7z/readme.txt
Normal file
124
SabreHelper/7z/readme.txt
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
7-Zip Extra 15.14
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
7-Zip Extra is package of extra modules of 7-Zip.
|
||||||
|
|
||||||
|
7-Zip Copyright (C) 1999-2015 Igor Pavlov.
|
||||||
|
|
||||||
|
7-Zip is free software. Read License.txt for more information about license.
|
||||||
|
|
||||||
|
Source code of binaries can be found at:
|
||||||
|
http://www.7-zip.org/
|
||||||
|
|
||||||
|
This package contains the following files:
|
||||||
|
|
||||||
|
7za.exe - standalone console version of 7-Zip with reduced formats support.
|
||||||
|
7za.dll - library for working with 7z archives
|
||||||
|
7zxa.dll - library for extracting from 7z archives
|
||||||
|
License.txt - license information
|
||||||
|
readme.txt - this file
|
||||||
|
|
||||||
|
Far\ - plugin for Far Manager
|
||||||
|
x64\ - binaries for x64
|
||||||
|
|
||||||
|
|
||||||
|
All 32-bit binaries can work in:
|
||||||
|
Windows 2000 / 2003 / 2008 / XP / Vista / 7 / 8 / 10
|
||||||
|
and in any Windows x64 version with WoW64 support.
|
||||||
|
All x64 binaries can work in any Windows x64 version.
|
||||||
|
|
||||||
|
All binaries use msvcrt.dll.
|
||||||
|
|
||||||
|
7za.exe
|
||||||
|
-------
|
||||||
|
|
||||||
|
7za.exe - is a standalone console version of 7-Zip with reduced formats support.
|
||||||
|
|
||||||
|
Extra: 7za.exe : support for only some formats of 7-Zip.
|
||||||
|
7-Zip: 7z.exe with 7z.dll : support for all formats of 7-Zip.
|
||||||
|
|
||||||
|
7za.exe and 7z.exe from 7-Zip have same command line interface.
|
||||||
|
7za.exe doesn't use external DLL files.
|
||||||
|
|
||||||
|
You can read Help File (7-zip.chm) from 7-Zip package for description
|
||||||
|
of all commands and switches for 7za.exe and 7z.exe.
|
||||||
|
|
||||||
|
7za.exe features:
|
||||||
|
|
||||||
|
- High compression ratio in 7z format
|
||||||
|
- Supported formats:
|
||||||
|
- Packing / unpacking: 7z, xz, ZIP, GZIP, BZIP2 and TAR
|
||||||
|
- Unpacking only: Z, lzma, CAB.
|
||||||
|
- Highest compression ratio for ZIP and GZIP formats.
|
||||||
|
- Fast compression and decompression
|
||||||
|
- Strong AES-256 encryption in 7z and ZIP formats.
|
||||||
|
|
||||||
|
Note: LZMA SDK contains 7zr.exe - more reduced version of 7za.exe.
|
||||||
|
But you can use 7zr.exe as "public domain" code.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DLL files
|
||||||
|
---------
|
||||||
|
|
||||||
|
7za.dll and 7zxa.dll are reduced versions of 7z.dll from 7-Zip.
|
||||||
|
7za.dll and 7zxa.dll support only 7z format.
|
||||||
|
Note: 7z.dll is main DLL file that works with all archive types in 7-Zip.
|
||||||
|
|
||||||
|
7za.dll and 7zxa.dll support the following decoding methods:
|
||||||
|
- LZMA, LZMA2, PPMD, BCJ, BCJ2, COPY, 7zAES, BZip2, Deflate.
|
||||||
|
|
||||||
|
7za.dll also supports 7z encoding with the following encoding methods:
|
||||||
|
- LZMA, LZMA2, PPMD, BCJ, BCJ2, COPY, 7zAES.
|
||||||
|
|
||||||
|
7za.dll and 7zxa.dll work via COM interfaces.
|
||||||
|
But these DLLs don't use standard COM interfaces for objects creating.
|
||||||
|
|
||||||
|
Look also example code that calls DLL functions (in source code of 7-Zip):
|
||||||
|
|
||||||
|
7zip\UI\Client7z
|
||||||
|
|
||||||
|
Another example of binary that uses these interface is 7-Zip itself.
|
||||||
|
The following binaries from 7-Zip use 7z.dll:
|
||||||
|
- 7z.exe (console version)
|
||||||
|
- 7zG.exe (GUI version)
|
||||||
|
- 7zFM.exe (7-Zip File Manager)
|
||||||
|
|
||||||
|
Note: The source code of LZMA SDK also contains the code for similar DLLs
|
||||||
|
(DLLs without BZip2, Deflate support). And these files from LZMA SDK can be
|
||||||
|
used as "public domain" code. If you use LZMA SDK files, you don't need to
|
||||||
|
follow GNU LGPL rules, if you want to change the code.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
License FAQ
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Can I use the EXE or DLL files from 7-Zip in a commercial application?
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
Yes, but you are required to specify in documentation for your application:
|
||||||
|
(1) that you used parts of the 7-Zip program,
|
||||||
|
(2) that 7-Zip is licensed under the GNU LGPL license and
|
||||||
|
(3) you must give a link to www.7-zip.org, where the source code can be found.
|
||||||
|
|
||||||
|
|
||||||
|
Can I use the source code of 7-Zip in a commercial application?
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
Since 7-Zip is licensed under the GNU LGPL you must follow the rules of that license.
|
||||||
|
In brief, it means that any LGPL'ed code must remain licensed under the LGPL.
|
||||||
|
For instance, you can change the code from 7-Zip or write a wrapper for some
|
||||||
|
code from 7-Zip and compile it into a DLL; but, the source code of that DLL
|
||||||
|
(including your modifications / additions / wrapper) must be licensed under
|
||||||
|
the LGPL or GPL.
|
||||||
|
Any other code in your application can be licensed as you wish. This scheme allows
|
||||||
|
users and developers to change LGPL'ed code and recompile that DLL. That is the
|
||||||
|
idea of free software. Read more here: http://www.gnu.org/.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Note: You can look also LZMA SDK, which is available under a more liberal license.
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
End of document
|
||||||
BIN
SabreHelper/7z/x64/7za.dll
Normal file
BIN
SabreHelper/7z/x64/7za.dll
Normal file
Binary file not shown.
BIN
SabreHelper/7z/x64/7za.exe
Normal file
BIN
SabreHelper/7z/x64/7za.exe
Normal file
Binary file not shown.
BIN
SabreHelper/7z/x64/7zxa.dll
Normal file
BIN
SabreHelper/7z/x64/7zxa.dll
Normal file
Binary file not shown.
119
SabreHelper/CRC32.cs
Normal file
119
SabreHelper/CRC32.cs
Normal file
@@ -0,0 +1,119 @@
|
|||||||
|
// Copyright (c) Damien Guard. All rights reserved.
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
// Originally published at http://damieng.com/blog/2006/08/08/calculating_crc32_in_c_and_net
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Security.Cryptography;
|
||||||
|
|
||||||
|
namespace DamienG.Security.Cryptography
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Implements a 32-bit CRC hash algorithm compatible with Zip etc.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Crc32 should only be used for backward compatibility with older file formats
|
||||||
|
/// and algorithms. It is not secure enough for new applications.
|
||||||
|
/// If you need to call multiple times for the same data either use the HashAlgorithm
|
||||||
|
/// interface or remember that the result of one Compute call needs to be ~ (XOR) before
|
||||||
|
/// being passed in as the seed for the next Compute call.
|
||||||
|
/// </remarks>
|
||||||
|
public sealed class Crc32 : HashAlgorithm
|
||||||
|
{
|
||||||
|
public const UInt32 DefaultPolynomial = 0xedb88320u;
|
||||||
|
public const UInt32 DefaultSeed = 0xffffffffu;
|
||||||
|
|
||||||
|
static UInt32[] defaultTable;
|
||||||
|
|
||||||
|
readonly UInt32 seed;
|
||||||
|
readonly UInt32[] table;
|
||||||
|
UInt32 hash;
|
||||||
|
|
||||||
|
public Crc32()
|
||||||
|
: this(DefaultPolynomial, DefaultSeed)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public Crc32(UInt32 polynomial, UInt32 seed)
|
||||||
|
{
|
||||||
|
table = InitializeTable(polynomial);
|
||||||
|
this.seed = hash = seed;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Initialize()
|
||||||
|
{
|
||||||
|
hash = seed;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void HashCore(byte[] array, int ibStart, int cbSize)
|
||||||
|
{
|
||||||
|
hash = CalculateHash(table, hash, array, ibStart, cbSize);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override byte[] HashFinal()
|
||||||
|
{
|
||||||
|
var hashBuffer = UInt32ToBigEndianBytes(~hash);
|
||||||
|
HashValue = hashBuffer;
|
||||||
|
return hashBuffer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override int HashSize { get { return 32; } }
|
||||||
|
|
||||||
|
public static UInt32 Compute(byte[] buffer)
|
||||||
|
{
|
||||||
|
return Compute(DefaultSeed, buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static UInt32 Compute(UInt32 seed, byte[] buffer)
|
||||||
|
{
|
||||||
|
return Compute(DefaultPolynomial, seed, buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static UInt32 Compute(UInt32 polynomial, UInt32 seed, byte[] buffer)
|
||||||
|
{
|
||||||
|
return ~CalculateHash(InitializeTable(polynomial), seed, buffer, 0, buffer.Length);
|
||||||
|
}
|
||||||
|
|
||||||
|
static UInt32[] InitializeTable(UInt32 polynomial)
|
||||||
|
{
|
||||||
|
if (polynomial == DefaultPolynomial && defaultTable != null)
|
||||||
|
return defaultTable;
|
||||||
|
|
||||||
|
var createTable = new UInt32[256];
|
||||||
|
for (var i = 0; i < 256; i++)
|
||||||
|
{
|
||||||
|
var entry = (UInt32)i;
|
||||||
|
for (var j = 0; j < 8; j++)
|
||||||
|
if ((entry & 1) == 1)
|
||||||
|
entry = (entry >> 1) ^ polynomial;
|
||||||
|
else
|
||||||
|
entry = entry >> 1;
|
||||||
|
createTable[i] = entry;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (polynomial == DefaultPolynomial)
|
||||||
|
defaultTable = createTable;
|
||||||
|
|
||||||
|
return createTable;
|
||||||
|
}
|
||||||
|
|
||||||
|
static UInt32 CalculateHash(UInt32[] table, UInt32 seed, IList<byte> buffer, int start, int size)
|
||||||
|
{
|
||||||
|
var crc = seed;
|
||||||
|
for (var i = start; i < size - start; i++)
|
||||||
|
crc = (crc >> 8) ^ table[buffer[i] ^ crc & 0xff];
|
||||||
|
return crc;
|
||||||
|
}
|
||||||
|
|
||||||
|
static byte[] UInt32ToBigEndianBytes(UInt32 uint32)
|
||||||
|
{
|
||||||
|
var result = BitConverter.GetBytes(uint32);
|
||||||
|
|
||||||
|
if (BitConverter.IsLittleEndian)
|
||||||
|
Array.Reverse(result);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -64,6 +64,7 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="Converters.cs" />
|
<Compile Include="Converters.cs" />
|
||||||
|
<Compile Include="CRC32.cs" />
|
||||||
<Compile Include="DBTools.cs" />
|
<Compile Include="DBTools.cs" />
|
||||||
<Compile Include="Logger.cs" />
|
<Compile Include="Logger.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
@@ -82,6 +83,33 @@
|
|||||||
<None Include="packages.config" />
|
<None Include="packages.config" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Content Include="7z\7za.dll">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="7z\7za.exe">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="7z\7zxa.dll">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="7z\history.txt">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="7z\License.txt">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="7z\readme.txt">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="7z\x64\7za.dll">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="7z\x64\7za.exe">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="7z\x64\7zxa.dll">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
<Content Include="Mappings\MAME.xml">
|
<Content Include="Mappings\MAME.xml">
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
|||||||
Reference in New Issue
Block a user