unnks

nks and nkx archive unpacker

Last update: 2010-04-28

This project is now shut down in response to legal threats by Native Instruments. No downloads are available.

Index

README

Introduction

unnks extracts data from nks and nkx archives, which are commonly used by several music synthesis programs. It has a similar interface to GNU tar. Instead of doing

tar -xvf archive.tar,

just do

unnks -xvf archive.nks,

or optionally

unnks -C output_dir -xvf archive.nks.

In addition to the unnks program, this package contains the utilities nks-scan, nks-ls-libs, and the libnks library.

nks-scan can be used to display the structure of a nks/nkx archive. It was used during development to discover the meaning of unknown bytes in archives.

nks-ls-libs displays all the sample packages you have installed on your computer that it can find, and their nkx archive encryption keys. It is only present on Windows and Mac OS X. See the "nkx support" section for how to use this tool to add support for more nkx archives to unnks.

libnks is a library useful to programmers, which provides an interface to the code that unnks uses internally to access archives. If you want to add nks/nkx support to your GPLv3+ program, then you may use libnks to accomplish it. Be warned however, that the API/ABI may change in future releases without warning.

nkx support

nkx files are different from nks files in that each archive may have its own encryption key needed to extract the contents. These keys are usually supplied as part of the package containing the archives, but the exact location may vary and is dependant on the host operating system: on Windows, the keys may be kept in the registry, on Mac OS X in application property files. There is no universal and platform-independent way of accessing these. This is why unnks contains a database of known packages with nkx archives and how to obtain their keys. Currently, archives from the following packages are supported:

  • Acoustic Legends HD
  • Ambience Impacts Rhythms
  • BASiS
  • Chris Hein Bass
  • Chris Hein - Guitars
  • Chris Hein Horns Vol 2
  • Drums Overkill
  • Ethno World 4
  • Evolve
  • Evolve Mutations
  • Galaxy II
  • Garritan Instruments for Finale
  • Gofriller Cello
  • Keyboard Collection
  • Kreate
  • Mixosaurus Kit A
  • Mojo Horn Section
  • Mr. Sax T
  • Ocean Way Drums Expandable
  • Ocean Way Drums Gold
  • OTTO
  • Phaedra
  • Prominy SC Electric Guitar
  • Solo Strings Advanced
  • Steven Slate Drums EX
  • Steven Slate Drums Platinum
  • Stradivari Solo Violin
  • String Essentials
  • Symphobia
  • syntAX
  • The Elements
  • The Trumpet
  • VI.ONE
  • Vir2 Elite Orchestral Percussion

If you want to unpack an unsupported nkx archive, you may try to use the nks-ls-libs tool supplied with unnks to list the packages installed on your computer, along with their nkx archive encryption keys. If you then email this information to unavowed at vexillium org, it will be included in the next version of unnks.

Limitations

  1. Only extracting or listing archives is supported; unnks does not create new archives.
  2. The archives to be extracted must be seekable files. Extracting from stdin or other non-seekable streams is not supported.

Thanks

Thanks to Gynvael Coldwind for pointing out bugs in the code, and to Steffan Andrews for all the help with discovering how to extract nkx files and then testing whether it actually worked.

Also thanks to all those who reported bugs, sent encryption key information and in general sent emails about this project.

News

2010-04-28 ◦ unnks shut down in response to legal threats by Native Instruments

Sadly, I have to announce that unnks is no more. Thanks to all who helped with the project.

If you are interested in the details, here is the email exchange that took place:

Date: Wed, 21 Apr 2010 12:54:07 +0200
From: Nicolas Gross <nicolas.gross@native-instruments.de>
To: unavowed@vexillium.org
CC: legal <legal@native-instruments.de>
Subject: Copyright infringement 'unnks'

Dear Sirs or Madams,

This Email is in relation to your company's copyright
infringement. We note from your website
http://unavowed.vexillium.org/pub/projects/unnks/ that you
are offering the product "unnks" which allows to unpack
encrypted and copyright protected NKS and NKX files without
any permission.

Your offer, especially if you continue such misconduct after
you have now been put on actual notice of your infringement,
could constitute as the least the following:

(a) Copyright Infringement
(b) Criminal Law due to product piracy
(c) Unfair competition

Accordingly, we requests that you and your subsidiary or
other third party connected with your firm immediately: (1)
cease and desist from using the product "unnks" or similar
products with the same functionality (2) cease and desist
from distributing further units of your product "unnks" or
similar product withe the same functionality (3) cease and
desist from offering the product "unnks" or similar products
with the same functionality as a download.

This email is an attempt to resolve a dispute and is being
sent with the understanding that you will treat it as such.

Please confirm in writing within seven (7) days of this
correspondence that you will immediately comply with the
items (1) through (3) as mentioned.

If we do not get a satisfactory response from you within
those seven (7) seven days we will contact our IP counsel
and consider further legal actions against you and any
involved third party.


Sincerely,
Nicolas Groß

-- 
Nicolas Groß
Legal Advisor | Operations

Tel +49-30-611035-1611
Fax +49-30-611035-2611

nicolas.gross@native-instruments.de

NATIVE INSTRUMENTS GmbH
Schlesische Str. 28
10997 Berlin, Germany

www.native-instruments.com

***

MASCHINE - the next-generation groove production studio
=>  http://www.native-instruments.com/maschine.info

TRAKTOR KONTROL X1 - hands-on performance control for DJs
=>  http://www.native-instruments.com/x1.info

->>>>>>  NATIVE INSTRUMENTS - The Future of Sound<<<<<<-

Registergericht: Amtsgericht Charlottenburg
Registernummer: HRB 72458
UST.-ID.-Nr. DE 20 374 7747
Geschäftsführung: Daniel Haver (CEO), Mate Galic

And my reply:

Date: Wed, 28 Apr 2010 00:15:00 +0100
From: Unavowed <unavowed@vexillium.org>
To: Nicolas Gross <nicolas.gross@native-instruments.de>
Subject: Re: Copyright infringement 'unnks'

Dear Mr. Groß,

I do not need anyone's permission to write a computer
program; not even one whose function is to unpack archive
files of a particular format.  If it is used on files
covered by copyright, it is the user, not me, who accepts
the legal responsibility for this action.  In this respect,
unnks is no different from tar, unzip, unace, unrar or any
other such program.

If I understand your message correctly, you are accusing me
of having committed copyright infringement.  However, your
allegations are vague and provided without any
justification.  It is not clear to me at all why you might
think that merely distributing a computer program, of which
I am the author, infringes upon anyone's copyright.  By not
providing a justification, you do not even give me a chance
to address your complaints.  If this is intentional, you
give me no reason to treat your message as anything other
than a frivolous threat intended to scare me into compliance
with your unreasonable demands.

That said, I do not think it is worth it for me to fight
with you over this matter.  If I cease to distribute unnks,
I will not lose anything.  However, you might consider who
will be impacted most by your actions.  I think you will
agree with me that those, who found a tool such as unnks
most useful, were none other than your own customers, and I
think they will not look kindly upon you for taking it away
from them.

So I give you what you have been waiting to hear from me: I
have removed all unnks downloads.  I will leave the project
page as a record of its history, and to remind others about
what sort of company Native Instruments is.  Could you
kindly confirm that you are satisfied with my response.

Yours sincerely,
-- 
Unavowed

2010-03-05 ◦ unnks 0.2.6 released

This is a minor release that adds new encryption keys:

  • Mixosaurus Kit A
  • Mojo Horn Section
  • Steven Slate Drums EX

As always, thanks to those who have sent them in!

In the time since the last release, one person sent me an e-mail complaining that extracting unencrypted files from archives does not work. I haven't been able to do anything about it without more information, so if you observe that not all files are extracted, don't hesitate to e-mail me about it.

2009-10-29 ◦ unnks 0.2.5 released

This is a minor release that adds new encryption keys:

  • Evolve Mutations
  • Ocean Way Drums Expandable
  • Ocean Way Drums Gold
  • Steven Slate Drums Platinum

As usual, thanks! Also, since nobody complained about problems with extracting non-encrypted files, this feature is now declared officially working.

The Debian package is now compiled on Lenny instead of Etch. While it may keep working on Etch, I make no guarantees.

You may also have noticed the new web site layout, which should be much nicer than the old one. If you have any problems with it, please let me know.

2009-09-03 ◦ unnks has been added to MacPorts

From today, unnks can be installed on Mac OS X using MacPorts, a package manager for this operating system. You only need to say port -v install unnks and all the hard work will be done for you.

Thanks to the MacPorts people for such a quick response to the submission!

2009-08-07 ◦ unnks 0.2.4 released

The major feature of this release is that it adds support for extracting non-encrypted files from nks/nkx archives. From now on, unnks should be able to extract everything from an archive. It is still mildly experimental and I will welcome feedback if anything breaks.

As usual, a few kind people have sent in keys, allowing more nkx archives to be unpacked:

  • BASiS
  • Chris Hein Horns Vol 2
  • Galaxy II
  • Garritan Instruments for Finale
  • Prominy SC Electric Guitar
  • String Essentials
  • The Elements
  • Vir2 Elite Orchestral Percussion

Thanks!

2009-05-30 ◦ unnks 0.2.3 released

This is another minor release which adds support for unpacking additional nkx archives:

  • Chris Hein - Guitars
  • Keyboard Collection
  • Mr. Sax T
  • syntAX

Again, thanks to everyone who sent keys.

2009-05-05 ◦ Windows package updated

It turns out that I mistakenly included the 0.2.1 version of libnks-0.dll in the 0.2.2 Windows package, which didn't have the new encryption keys. The updated package (unnks-0.2.2-windows-r1.zip) now has the correct library. Thanks go to the person who sent me a message about things not working properly.

2009-05-02 ◦ unnks 0.2.2 released

This is a minor release which adds support for unpacking additional nkx archives:

  • Drums Overkill
  • Kreate
  • OTTO
  • Solo Strings Advanced
  • The Trumpet

Thanks to everyone who sent encryption keys for these packages!

In unrelated news, recently Softpedia sent me an email that unnks has been certified by their staff as “100% free” and without malware, and suggested that I could use their icon:

Softpedia “100% free” award

I'm not sure why unnks is in the Mac section (after all, it's platform-independent), or why its Mac users would need such reassurance, since I provide it in source form for Mac OS X. Also, saying it's “100% free” doesn't describe the whole picture, because it's not only free as in beer, but also free as in freedom. But if any of you find the recognition helpful then there you go.

2009-04-25 ◦ unnks 0.2.1 released

The main feature of this release is reliable nkx support. It turns out that the previous version only worked on a small subset of all nkx archives and for others it produced corrupt files. This is now corrected.

However, unnks will still not extract all nkx archives, because, unlike nks, they each have their own content encryption keys. There is now a database of known keys included in unnks, which determines what archives are supported. There is also an associated new program, called nks-ls-libs, which looks at what sample packages are installed and displays their names and encryption keys. If you want to see another set of nkx archives supported by unnks, you can email me the program's output, and I will include the information in the next version of unnks (see the README for more details).

unnks 0.2.1 also features a separate libnks library, which you can use to add nks/nkx support to your GPLv3+ program. Note, however, that for the time being the API/ABI is unstable and may change in future versions.

Summary of changes

  • reliable nkx support
  • new tools: nks-ls-libs, nks-scan
  • new libnks shared library

Compiling on Mac OS X

For the past few versions, I've been adding new dependencies to unnks. First libglib, and now also libgcrypt. This has made compiling unnks harder, because you need to take care of those external packages first. While installing them on GNU or another UNIX-like system is normally very easy, it is not so on Mac OS. What to do in this case is install MacPorts or Fink. They are both package managers for Mac OS, similar to those used on Debian and BSD. With MacPorts, you would only have to do port -v install glib2 and port -v install libgcrypt before proceeding to compile unnks.

Sourceforge services

I noticed some discussion on unnks in various places on the net. If you would like to publicly discuss unnks or need help with getting it to run, you can use the unnks forum. There is also a bug tracker to report bugs to.

2009-03-08 ◦ unnks 0.2 released with experimental nkx support

As you may have noticed, the minor version number has jumped up by one. This is due to a new major feature, namely support for extracting nkx files. It is still experimental and I will welcome any feedback as to whether it works or not.

Additionally, I split the code into a front-end and back-end. This means that if you're interested in adding nks/nkx support to your GPL program, the job will be easier.

Summary of changes

  • experimental support for nkx
  • code refactoring into front-end unnks and back-end library

2009-01-15 ◦ unnks 0.1.2 released

Version 0.1.2 is now available for download. It includes the following changes:

  • fixed a segfault when extracting empty directories (thanks for the bug reports!)
  • fixed bug which prevented compilation on Mac OS
  • added a few error messages in situations when something bad happens

2008-10-04 ◦ 0.1.1 Windows binary added

With a small delay, I've made the 0.1.1 Windows binary package available for download. This time it also includes docs along with the executable.

2008-10-01 ◦ New bugfix version 0.1.1 available

Changes

  • Added large file support on non-Windows 32-bit operating systems
  • Added a --version option to display version and licensing information

License

unnks is free software. You may redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. There is NO WARRANTY, to the extent permitted by law.

Download

This project is now shut down in response to legal threats by Native Instruments. No downloads are available.

Author

Unavowed (unavowed at vexillium org)

Valid XHTML 1.1 SourceForge.net Logo