Now making it’s way through various interweb channels is a notecard with two separate but related conversations between Loney Bluebird (aka Phox) and Soft Linden. The majority of us will read them and say ‘I don’t really know what it all means, but it doesn’t sound good.’ and they’d be right... but not in the way they’d initially think. Read on to see what I mean.
2010-03-18 16:41:57] Lonely <3: Speaking of which, has Fractured mentioned EmKDU/OnyxKDU to you at all?
[2010-03-18 16:42:12] Soft Linden: Nope
[2010-03-18 16:42:46] Soft Linden: We haven't talked much of late. I think he was annoyed that I offered to rename groups for the *Life viewers, after asking him to get clearance from Kyle for a group rename before
[2010-03-18 16:43:19] Lonely <3: Ah, well, we needed some way to identify people using our kakadu library, we came up with something really clever: The Emkdu variant encodes the window title into the j2c comment.
[2010-03-18 16:43:32] Soft Linden: Nice!!!
[2010-03-18 16:43:41] Lonely <3: The OnyxKDU variant contains the other end of the cipher, and an exported function to retrieve said comment.
[2010-03-18 16:43:44] Soft Linden: I'd figured that library would be the place to hide things. So it shows up in their baked texture.
[2010-03-18 16:44:07] Lonely <3: Yup, Linux variants encode 128 characters of the path, since window title depends on window manager etc.
[2010-03-18 16:44:27] Lonely <3: I've got it nicely tied in to the radar here, it's fun to see the various names I get when all I see on people is a shiny emerald tag.
[2010-03-18 16:44:45] Soft Linden: I'd look at other places you might store that. We were at least planning to start encoding some info there to help us with DMCA takedowns
[2010-03-18 16:44:56] Lonely <3: We caught the HXO/Sl Black edition creator that way.
[2010-03-18 16:45:11] Soft Linden: Does the jpeg2k format support arbitrary tag/value pairs?
[2010-03-18 16:45:12] Lonely <3: Hmm, well there are various places we could encode that.
[2010-03-18 16:45:21] Lonely <3: Yes
[2010-03-18 16:45:25] Lonely <3: At least I think it does
[2010-03-18 16:45:33] Soft Linden: You could make something misleading like "encode parms" or w/e
[2010-03-18 16:46:38] Lonely <3: Unless someone starts poking at it with a disassembler all they'll find is a string of mixed printable and unprintable characters in the comment.
[2010-03-18 16:47:18] Lonely <3: We figured it was a good way to keep track of who's using the proprietary library without a license, not to mention identifying those viewers that want to hide, which is always a goal.
[2010-03-18 16:47:29] Soft Linden: :3
[2010-03-18 16:47:33] Soft Linden: I love that you guys are doing this
[2010-03-18 16:47:55] Lonely <3: Saves you guys some work I guess.
[2010-03-18 16:49:01] Soft Linden: I'd also be inclined to get the end of the path for Windows & Mac builds too. Odds are people are going to rename the viewer filename, even if they don't change the window title, etc
[2010-03-18 16:49:12] Lonely <3: Yeah that's what I said >_>
[2010-03-18 16:49:15] Soft Linden: just w/e is in **argv
[2010-03-18 16:49:19] Lonely <3: Zwagoth and Fractured wanted the window title.
[2010-03-18 16:49:19] Soft Linden: I thought you said you just did it on Linux?
[2010-03-18 16:49:27] Soft Linden: Gotcha.
[2010-03-18 16:49:32] Soft Linden: Yeah, I'd shoot for both.
[2010-03-18 16:49:35] Lonely <3: Only because linux doesn't offer a single function to grab the window title in all window managers.
[2010-03-18 16:49:55] Lonely <3: Yeah I know the path is more useful.
--- next conversation---
[2010-03-25 16:35:40] You sense a disturbance in the force... (Soft Linden is typing)
[2010-03-25 16:35:51] Soft Linden: Are the marked textures in the current release version?
[2010-03-25 16:36:01] Lonely <3: Yes
[2010-03-25 16:36:06] Soft Linden thumbsup
[2010-03-25 16:36:27] Lonely <3: After we spoke I decided to make a bit of a change to kdu
[2010-03-25 16:37:40] Lonely <3: I made it check the top corner of the image for transparent pixels, if it finds any it encodes the folder name like the linux lib originally did.
[2010-03-25 16:37:50] Lonely <3: If not it encodes the window title.
[2010-03-25 16:38:28] Soft Linden: ah cool hack :3
[2010-03-25 16:38:56] Lonely <3: That hasn't been released yet, but it can go out at any time since the pack is seperate from the binary.
[2010-03-25 16:39:00] Soft Linden: the transparent pixels specifically - last I knew you were only doing the meta tag
[2010-03-25 16:39:04] Lonely <3: We are
[2010-03-25 16:39:08] Lonely <3: Just the image comment
[2010-03-25 16:39:14] Soft Linden: right
Okay, if you’re anything like me, you’ve read that more than once and still couldn’t make out sense of the technical aspects of it. If you understood most or all of it, then here’s your imaginary cookie lol, you’re a few steps of where I was. However, if you’ve read my first post you’ll know that I wasn’t going to stay in the dark any longer than I had to. With that said, let’s see how well I’ve come to understand what it all means and if I can relay it to all of you properly so you can start to make sense of it as well.
So let’s start at the top, pointing out that both conversations took place in March of this year. I want that little tidbit to stay in the back of your mind as you read on. What you’ve read is a conversation between an Emerald developer and a Linden Labs employee. In it, the two use terms such as ‘hide’, ‘tied into’, and ‘misleading’... terms which can be scary when taken out of context. We live in a time where the potential for identity theft via the internet is a huge reality, and anything that makes people wary about their safety and security is something that should never be taken lightly. Let me interject the addage ‘Knowledge is power,’ at this point, because it’s oh-so-appropriate thought out this entire ongoing situation. The more you know, the less likely you are to make decisions based on fear.
So the technical side of this starts almost immediately in the chatlog. “The Emkdu variant encodes the window title into j2c comment.” The first thing to explain here is j2c is short for jpeg2000, an image compression standard and coding system. The “comment”, simply put, is a field in the file that’s designed to hold additional metadata. Metadata describes other data, an easy to understand definition can be found here. The second part of the statement quoted mentions a “window title”, which is pretty much what it sounds like. In this situation, the window title would refer to the viewer being used by a person. So the emkdu file at that time was set up in a fashion that it would take the name of the viewer you were using and encode it into metadata that was then attached to a baked texture in your avatar textures. Baked textures simulate things such as lighting, shadows, and bumpiness on an object... think avatar skins or shadow maps on sculpted prims. Not really life altering if you weren’t doing things you shouldn’t have been doing.
So you have the emkdu which was set up to encode and attach metadata, then you have onyxkdu, from the now infamous Onyx viewer. The onyxkdu was set up so that it’s library was seperate from that of the emkdu’s. Onyxkdu had the capability to decode (read) the metadata that the emkdu embedded in the av. textures. The limitations on this, however, were that they could only view the data inworld, and only if the avatar was in view of the Onyx user. They were not able to actually export or otherwise use the av textures, as some concluded, otherwise the viewer and coding would have been in direct violation of LL’s TOS. What’s shown in this screenshot is not a texture being stolen aka ‘copy botted’ or ‘ripped’, as some might want to sensationalize it as, but rather the encoded information being read by onyxkdu. The texture is being viewed in what’s called an ‘avatar texture floater’ which actually comes from LL’s own coding, and is hidden from the menu options in their official releases. You can find a modified version of the avatar texture floater in the latest Emerald beta release (2587) by using the pie menu on any avatar, including your own, but you’d only be able to make changes to your own textures in this floater, provided they’re modifiable by permission. It doesn’t circumvent the permissions system. The purpose of the metadata encoding and collection was to identify who was accessing the ‘proprietary library’ aka the licensed kdu library, as well as who was using a malicious or illegal viewer that was spoofing itself as a legal one, as mentioned by Lonely.
In relation to the previous two paragraphs, I’ll take this time to address the line where Soft says that LL was “at least planning to start encoding some info there to help us with DMCA takedowns.” What this means is that LL, at that point (whether it’s been done, I’m not aware, some one is more than welcome to comment if they know the answer) part of their plan to combat copyright infringement (DMCA issues) was to also encode metadata into the baked av texture section of llkdu. They won’t need to have an alternate viewer to read the data, as it’s all accessible to them. DMCA, if you’re not familiar with the term, stands for Digital Millennium Copyright Act. It’s part of United States Copyright Law and deals with the copyrights of Intellectual Property on the Internet. The wikipedia definition is here and LL’s policy and process is outlined here. The suggestion by Soft for Lonely to relocate where their metadata wrote was so that LL’s coding wouldn’t overwrite Emerald’s.
The parts of the conversation that deal with executable paths, encoding paths, and end of paths, all deal with identifying the executable files where the viewer was located on a user’s system. This also wasn’t in place to be used to hack into some one’s system, it was so those who were using illegal/banned viewers couldn’t sneak around pretending to be on legal viewers based on their tag data, by simply changing the name of the file. Think of it in terms of, you save a SL snapshot to your computer using the ‘save to disk’ option in the snapshot window, then on your computer you change the name from snapshot_01 to ‘hanging out’ (just an example, but you catch my drift). Well, you’re not changing the fact that it’s a snapshot from SL, you’re only changing the name that it’s viewed as.
So that all basically covers the technical aspect of the conversation, and has hopefully allowed you all, the readers, to have a better grasp of what they were talking about. With that out of the way, we can get into what’s not likely to be recognized between all the jargon (and yes, some editorial commentary)... The fact that in spite of LL’s claims of ignorance to what the emkdu file was doing, and the onyxkdu file as well... at least one of their employees did. Now if this is a case of the right hand not talking to the left, which it may very well indeed be, then it’s understandable that statements claiming ignorance could be issued... but one would imagine (or myself, at least) that it would be good corporate sense to have all of your ducks in a row first. Is that a criticism made by me about LL? You bet it is. This is not to say that I agree completely with the methods employed by those on the Emerald and Onyx teams who were involved in this coding system, but it’s obviously not as devious as LL would like Joe Public to believe. This leaked chatlog is a frank discussion by two people who expected it to stay between them, and I suspect it was just two conversations out of many, given the actual context.
In a recent conversation I had with former Emerald Support team member Mindy Spiritor, she expressed her viewpoint on the situation “At some point, though, people really need to realize that the Onyx project was never part of the Emerald Viewer. The same goes for the datamining project. It was NOT Emerald. Yes, it was in fact Emerald developers, who were also running their own projects on the side, and the fact that they engaged in something even potentially questionable (let alone outright questionable) shows a blatant disregard for how it would reflect upon Emerald given the undeniable ties. However, the conversation between Phox and Soft also clearly shows that at a minimum, Soft not only knew of what was being done with both emkdu and Onyx, but also offered ideas, guidance, and at least apparent approval by virtue of his position with LL.” This is, naturally her opinion on the situation, but I’m drawn to agreement with it. It raises valid points that should not be overlooked.
There are those who will succumb to the fear and panic, even if they’ve read this as I’ve lain it out. Those will be the ones who, regardless of their love for the Emerald viewer and it’s capabilities, will move away from it and onto other third party viewers, or even back to an official viewer. This is in addition to those who’ve already gone to other viewers after the initial tactics and rumors were employed, the ones that were blogged about in my first two posts. Those people did what they needed to do to make themselves feel secure, and I don’t fault them for that. For those of us who will stick with Emerald until the day we can’t log in with it anymore, I give you much respect. It takes guts to stick with something and make a statement like that. Stick to your guns, so to speak, and remember that there is power in numbers, even if, in the end, it doesn’t seem to have accomplished much... someone always notices.
Thank you for reading and I hope this helps you understand more of what’s been going on. Please feel free to comment below, and share this blog with others.