Obfuscate code GPL 2 - The source uses kernel structs and GPL2 API

Jeff Haran Jeff.Haran at citrix.com
Tue Jul 21 16:13:48 EDT 2015



From: kernelnewbies-bounces at kernelnewbies.org [mailto:kernelnewbies-bounces at kernelnewbies.org] On Behalf Of Lucas Tanure
Sent: Tuesday, July 21, 2015 11:49 AM
To: Kernelnewbies at kernelnewbies.org
Subject: Obfuscate code GPL 2 - The source uses kernel structs and GPL2 API

Hi,

This company released a obfuscated kernel module in GPL 2.
http://www.incentivespro.com/downloads.html

So, they didn't release the code at all. This is ok ?
This against the law ?

If you download the source for linux you will se this code:

/*
 *
 *  Copyright (C) 2007-2015 SimplyCore, LLC
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 *
 */

#include "usbd.h"
#ifdef _USBD_DEBUG_MEMORY_
atomic_t llIlllll=ATOMIC_INIT((0x575+1935-0xd04));atomic_t lIIlIIIll=ATOMIC_INIT
((0xa1d+3263-0x16dc));atomic_t IllIlIlI=ATOMIC_INIT((0x128f+4169-0x22d8));
atomic_t IlIllllI=ATOMIC_INIT((0xf24+561-0x1155));
#ifdef ATOMIC64_INIT
atomic64_t llIlIlll=ATOMIC64_INIT((0xeb9+1200-0x1369));
#endif
atomic_t IllllIlI=ATOMIC_INIT((0x95+5058-0x1457));atomic_t lIIllllI=ATOMIC_INIT(
(0x54+4166-0x109a));atomic_t llIllIlI=ATOMIC_INIT((0x90+8277-0x20e5));
#endif
struct lllIl*IIIIlll=NULL;
#ifdef _USBD_ENABLE_STUB_
spinlock_t IIIIlII;struct list_head IIIIlIlI;
#endif
static int lIIIlIII=(0x1b5b+1617-0x21ac);module_param(lIIIlIII,int,
...
many lines
....
#endif
IIIll("\x75\x73\x62\x64\x5f\x65\x78\x69\x74" "\n");}module_init(IlIIllIIl);
module_exit(usbd_exit);MODULE_LICENSE("\x47\x50\x4c");

That is just too funny. I haven’t seen that trick done for 40 years, then it was sequences of capital ‘O’s and ‘0’s in COBOL code. But these guys take it to a new extreme, they are too afraid of their lawyers to even code a literal “GPL” in the MODULE_LICENSE statement. And then they’ve got silly stuff like this 0x575+1935-0xd04 to hide a 0. That wouldn’t stump a bright 3rd grader. Nice to know this company is paying its developers to concentrate on the important things; one could I suppose make some reasonable conclusions about the resultant product quality.

But it seems to me that if it builds, then they’ve released the code.

I’ve seen Linux kernel maintainers strip all the comments from patches that have been submitted to them. Hard for me to see much difference here legally.

Disclaimer: I’m not a lawyer, so don’t take my word for it. Just my humble, legally uneducated opinion.

Jeff Haran

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20150721/1ff52e9c/attachment-0001.html 


More information about the Kernelnewbies mailing list