Shoutbox

UIB encoded UIX file, stumped and looking for ideas - Printable Version

-Shoutbox (https://shoutbox.menthix.net)
+-- Forum: MsgHelp Archive (/forumdisplay.php?fid=58)
+--- Forum: Skype & Technology (/forumdisplay.php?fid=9)
+---- Forum: Tech Talk (/forumdisplay.php?fid=17)
+----- Thread: UIB encoded UIX file, stumped and looking for ideas (/showthread.php?tid=97031)

UIB encoded UIX file, stumped and looking for ideas by shawty on 03-11-2011 at 12:15 AM

Hello all,

First off, I apologize for my ever so off topic thread. Messenger Plus! was the only place that I could ever find when searching for information about UIB, and seems to be the only group of people who would have any pointers for my problem.

Here's the sitch: When attempting to modify a file (specifically for my Windows-based phone) with UIX information in it (XML, basically), a challenge arose. All the UIX files were present in the resource extractor and extracted easily as binary files. However, upon opening these files, I discovered their contents to be in an encoded manner I have never seen before. The only similarity between the files is the presence of the letters "UIB", which lead me here.

Naturally, I tried the MPTools.exe file to decode them, but to no avail-no error, no written files, which I suppose indicates the format is not the same as the Windows Live messenger UIB encoding.
Another interesting find was that each file referenced a DataTable.uib file, which, after opening, was very large and also encoded, but I suspect may be some sort of a "key" to the other files. That, or it's just very, very large reference.

Anyway, here's a link to the files I have uploaded. I do not believe this to be "warez" as these files were extracted from a file publicly available off of the Microsoft website. If this violates any rules, however, feel free to remove it:
http://www.megaupload.com/?d=XLKD7BYB

Basically, I need the "Notifications" file decoded one way or another, and if any pointers could be given, I would be so very, very grateful. Thanks ;)


RE: [OT] UIB encoded UIX file, stumped and looking for ideas by CookieRevised on 03-11-2011 at 12:51 AM

UIB encoding... hmmm....

The only people I know who have experience in it (that is: the 'MS Windows format') are Patchou and somebody else who I forgot the name of, and I even think TheBlasphemer (oldie from here too, though he is not active anymore). But Patchou doesn't develop Messenger Plus! anymore. Nevertheless, maybe, if he reads this, he can give you some pointers etc.

Messenger Plus! is currently developped by Yuna. And I dunno if they will give you some pointers or not (you know: 'trade secrets' sort of :p). But who knows......


RE: RE: [OT] UIB encoded UIX file, stumped and looking for ideas by shawty on 03-11-2011 at 01:01 AM

quote:
Originally posted by CookieRevised
UIB encoding... hmmm....

The only people I know who have experience in it (that is: the 'MS Windows format') are Patchou and somebody else who I forgot the name of, and I even think TheBlasphemer (oldie from here too, though he is not active anymore). But Patchou doesn't develop Messenger Plus! anymore. Nevertheless, maybe, if he reads this, he can give you some pointers etc.

Messenger Plus! is currently developped by Yuna. And I dunno if they will give you some pointers or not (you know: 'trade secrets' sort of :p). But who knows......

That's something I was afraid of. Very, very few people seem to have knowledge of this format, or even of its existence. I've tried piecing it out myself, but without any experience in binary encoding, I'm about as helpless as a fifth grader reading a Calculus textbook. That being said, it would be amazing if any one could provide the slightest hint. I'm sure it's not entirely difficult once the pattern is down, but without that initial knowledge, it's close to helpless.

Of course, I'm not trying to break any "trade secrets" or anything, just looking to get this file into a state I can actually read ;)
Thanks for the info ;)
RE: [OT] UIB encoded UIX file, stumped and looking for ideas by CookieRevised on 03-11-2011 at 01:13 AM

I got word that that other person I'm talking about (who helped Patchou too) is TheSteve. He's another programming-über-wizard who eats bytes for breakfast.

He is also a member here and also on the Mess.be forums. He is still active, but he doesn't always read (random) threads. So, best is to contact him directly.

I did a search on the forums for UIB related stuff and here are some interesting posts about it:
ryxdp's reply to How to re-encode an UIB file?
TheBlasphemer's reply to A little fairie told me this...
(indeed confirms that it were TheBlasphemer and TheSteve working with Patchou to implement UIB encoding/decoding in Plus!)

And (blog post from TheBlasphemer):
http://fw.hardijzer.nl/?p=10

And this might be of huge interest for you (post from TheSteve on the old MSNFanatic forums):
http://forums.fanatic.net.nz/index.php?showtopic=...08499&#entry108499
(though, the info might be out of date. But at least it's a start)
(thanks to pollolibredegrasa for digging this up)




;)

PS: Your thread isn't [OT] though. Tech talk like this is right on topic in the 'Tech Talk' subforum :p


RE: [OT] UIB encoded UIX file, stumped and looking for ideas by Patchou on 03-11-2011 at 07:30 AM

I remember TB and TheSteve were working on theme-related stuff at the time but I'm afraid I never worked with them directly on anything that was UIB related. The code that I wrote to decode/encode this data in Messenger Plus! is now the property of Yuna Software so it cannot be shared by me. As Cookie mentioned though, the other two guys are excellent reverse engineers and they may be able to help you.

That said, I'm intrigued by what you're trying to achieve. Can you give us more information on what you want to do on your Windows phone?


RE: RE: [OT] UIB encoded UIX file, stumped and looking for ideas by shawty on 03-11-2011 at 10:11 AM

quote:
Originally posted by Patchou

That said, I'm intrigued by what you're trying to achieve. Can you give us more information on what you want to do on your Windows phone?

Evidently (not 100% sure as I can't read the files), the entire Windows Phone 7 shell is written out in UIX files, which appear to be fully customizable XML files that control the UI elements, scripts, etc. My goal is to be able to decode these files and be able to edit them, which would theoretically allow to me change most of the UI, and do some customization that was previously not possible (eg adding wallpaper, changing menus, etc). I was able to do this on my previous WM6.5 phone, but now the files are encoded, and I'm stuck. The notifications file, specifically, I want to be able to change, as the current notification system is near useless. However, if UIB decoding becomes possible, the possibilities are almost endless ;)

Here's some small details on the UIX format, though:
http://www.istartedsomething.com/20071116/microso...ix-framework-zune/

I understand the property thing, of course. I have yet to try to contact the other two guys, but I'll see about it later today. Thanks for the info, again ;)

Edit: just saw your new link, CookieRevised, certainly a help! I'll play around with it after my classes are over.
RE: UIB encoded UIX file, stumped and looking for ideas by ipab on 03-11-2011 at 07:13 PM

I'll talk to TheSteve and see if he's still doing that stuff. Although, he might be a big busy given the recent events...


RE: UIB encoded UIX file, stumped and looking for ideas by MeEtc on 03-11-2011 at 10:22 PM

This is just a theory, so I don't know if its possible or not.
If you edit and replace the resources inside messenger with those of winphone 7, will mptools still extract it?


RE: RE: UIB encoded UIX file, stumped and looking for ideas by shawty on 03-11-2011 at 11:41 PM

quote:
Originally posted by MeEtc
This is just a theory, so I don't know if its possible or not.
If you edit and replace the resources inside messenger with those of winphone 7, will mptools still extract it?
I would have to downgrade my messenger to figure out, but I'm thinking no, because the UIB files have a slightly different structure than messenger's originally ones, as far as I can tell.
RE: UIB encoded UIX file, stumped and looking for ideas by TheSteve on 03-12-2011 at 03:16 PM

Hello.

Disclaimer 1: The following comments are guesses are very likely to be wrong.

Disclaimer 2: The following information applies to the files attached to the first post and very possibly do not relate to the Windows Live Messenger UIB format. (I have not looked at the newest versions of messenger, however versions 0.4 and 0.5 of the messenger UIB format are quite different  )

Based on what I've seen so far with WLM's UIB files, putting the data tables in a seperate file make sense as the data tables are the biggest part of a UIB file. I didn't have much time to look at it, however here are the simple notes I have made for the files you posted:

code:
struct UIBHeader
{
    char szSignature[4];  //"UIB\x1a"?
    DWORD dwVersion;   //0x0000046e  version?
    DWORD dwOffset1;  // dt:0 bytes 0x00013c43
            // notify:3375 bytes 0x00000742
            // Perhaps this is stack machine code
    DWORD dwOffset2; // dt:0 bytes 0x00013c43
            // notify: 0 bytes 0x00001471
    DWORD dwOffset3; // dt:2 bytes {0,0} 0x00013c43
            // notify: 4922 bytes 0x00001471
    DWORD dwEOF; // 0x00013c45  EOF
                   // 0x000027ab EOF
    BYTE bDataTableType[2];  // 0xFF 0xFF  <file offset> for no include
           // 0x1F 0x80 <include string> for include
    union {
        DWORD dwOffsetDataTablePointers;
        char szDataTablePath[];  // 0x04, 0x00 terminated?
    }
}

struct DataTableStringEntry
{
    BYTE bStringLength;
    BYTE bUnknown; //0x80
    char szString[bStringLength];
}

The files seem to have a lot of offsets to other parts of the file, however they are different from the UIB files I've seen before so it would take lots of time staring at it to connect the dots.  Since the code that actually reads these files is not a normal windows binary, it would be a tad more difficult to reverse engineer.  Hopefully this information combined with my other released information on the older versions will give you a big enough push in the right direction.  (don't forget about the zip file that I posted which contains my full research in a header file.  It's linked further down the page on the fanatic forums thread.)

If you get stuck again, feel free to ask for more help.  I can't promise anything, but if I think of something I'll let you know.