Saturday, May 23, 2009

Nearly Dead: IonWorx IceLicense Reviewed

Installation
I had weird problems installing IceLicense, because the Installer wants to call-home but the firewall didn't allow it. I got past that by renaming their setup.exe to setup. RAR and then extracting contents to disk using WinRAR.

Components
Then I found out some extra components called "TTcpSocket"... looks familar?



You guessed it - it's the same one as from AppControls.com.


Legality
I'm not sure what the "idea" of using OnGuard, Lockbox for, but I do remember OnGuard, Lockbox is MPL-licensed.

Do you know what MPL means?
MPL means Mozilla Public License. That means, you are allowed to use the code in your application, but you NOT allowed to sell for profit the library.

For example:
a) Joe uses MPL in his application -- OKAY

b) John uses MPL and includes code into library -- NOT OKAY

Ionworx IceLicense falls into (b) because Ionworx uses MPL code (TurboPower LockBox, parts of TurboPower OnGuard into IceLicense Library (and a bit of AppControls too).

Should someone give hint for Ionworx to stop using TurboPower Lockbox and TurboPower in such manner?


Ethics Issue #1
IceLicense EXE files uses PECompact with anti-debug. Parts of IceLicense uses PECompact anti-debugging features while IceLicense code (in your own EXE file) uses XOR'ing in code-protected parts.


What's the difference?
Since there is 256 combinations in a XOR (2^8), tell me how fast it will take to break XOR... while ICELicense claims to be unhackable. Part of reason, is because of PECompact itself, not IceLicense.

PECompact's antidebug defenses are much stronger than IceLicenses, so vendor can claim this while IceLicense only offers XOR protection.

Ethics Issue #2
Using someone else's TCP/IP library. The component used is AppControls. How shameful is that?

Ethics Issue #3
Using Lockbox, OnGuard code to build your CopyProtection library. How shameful is that?

Ethics Issue #3
This requires detailed analysis into byte-code.

For example:
- While Icelicense uses Lockbox, it uses same fatal mistakes it has. For example, flawed encryption that was never fixed (since TP went out of business, there was nobody to fix it). It also inherits same bugs as OnGuard (the MachineID code is almost identical)

- It does not clear Lockbox buffers, so data is in memory. It does not work in "User" mode in XP, so people who use XP in non-administator mode have hard-time using it.

- It does not work well in Vista (other security vendor uses Drivers to bypass this issue).

- It stores some registry entry in HKEY_LOCAL_MACHINE\Software\Microsoft\Windows (read-only in XP user mode) -- that's why it don't work so well in Vista and XP-User-mode.

Deleting the registry value in above location causes trial to reset to zero (gasp!)

- It does not encrypt IceLicense own internal codes. Most codes for Icelicense is in plain sight, as in, clear assembly JMP, JNE, load string, save string.

- Supposedly anti-hack do not take into account Virtual Machine usage and Olly (debugger)

- It partially blocks Registry monitors (if you rename RegMon to RegXYZ.exe, RegMon continues as normal).

- The most bizarre part of it, is the number of helpers IceLicense has. for example, if you change the bits 01 to 02, IceLicense will provide prompts such as:
"Trial license is expired, please insert a full licensekey now" and so on.


Delphi 2009 Version?
The idea goes like this. Since ElGamal, LockBox and Onguard are open-source components and not IonWorx's work, why not wait for community to "port" the library to Delphi 2009 and then IonWorx will recompile it for Delphi 2009! right!.

For AppControls, I'm not sure, maybe IonWorx waiting for AppControls to "upgrade" their library to Delphi 2009 and for IonWorx to recompile their TcpSocket component to Delphi 2009?

There is no Delphi 2009 version and it's waiting for "someone" to port the open-source libraries to Delphi 2009 and for IonWorx to recompile their product to Delphi 2009.


Support?
Support is nearly non-existent. I had to "add" "IonWorx" to my MSN address just to ask some questions. IonWorx would ignore me on the "embarassing" questioned I raised (as in the notes above). BTW - Ionworx used to have a forum until many people complained their product was hacked/cracked or complained about poor support.


What Others Say?
http://groups.google.com/group/borland.public.cppbuilder.thirdpartytools/browse_thread/thread/acb3a9f2c4a7208d/945093831294d90?hl=en&ie=UTF-8&q=ionworx+delphi#0945093831294d90



Conclusion
It looks like I should save the money and look elsewhere.


March 2013 update
See updated article at Ionworx Re-review, Ionworx icelicense reveiwed
See Article corrections
See related article: Ionworx SerialShield Review

1 comment:

Steven Brian said...
This comment has been removed by the author.