MMSGURU's Techno Blog | home | subscribe | contact | admin |
Wednesday, September 8th  
« newer posts »   « top »
 | list | rss | 
Sagem's Rat Fake
Dont panic, this is gonna be a short one, promised...

Sagem, being a french cellphone manufacturer (among a zillion of other things), has "created" a custom format for their sample based ringtones. Well, to be precise, the file format is the well-known and documented WAVE-file-format (RIFF).

But the codec is not PCM. The wave-files are marked as being "BeCubed Software Inc. : Irat"-encoded (Format 101h).

One doesnt have to be particularly clever to suspect and prove that the used codec certainly is not the claimed one.

Actually, its almost a tradition to use that exact format identifier for self-defined codecs. Its wrong, but common.

Now, lets have a closer look at one of those files. You will notice that the filesize, when compared to the PCM template, has reduced roughly by factor four. Again, you will possibly guess, that is some kind of ADPCM, and you would be right.

When looking really close at those files, you will find out ... more

June 14th, 2006 - 10:03 am | permalink

JavaScript should be renamed to voodoo and witchcraft
Howdy Partner (as said by Peter Sellers in "The Party", MGM 1968)

This time I am going to write about my impressions and recent experience with DHTML and JavaScript.

For the latest RetroFolio release, I needed to do something quirky; I needed to buffer the content of a form on the client side, with variable element count, names and certainly values. This may appear rather superfluous as submitting a form would get these values to the server which could store / buffer them. Well, in this case, that was not an option. The background story may be told in details some day later. For today, all I want to reveal is that the whole issue is strongly connected with Folio's lifted upload size limitations (from eight megabyte to one gigabyte).

As the more experienced DHTML / JavaScript developer may know, form elements can come as arrays. Useful thing and also fully supported by most server side scripting engines (e.g. PHP >= 4). But wait, I am very tempted to call thi... more

June 8th, 2006 - 12:57 am | permalink

What comes first, chicken or egg?
Howdy beloved reader. You are witnessing my very first blog article. Actually, its not that "bloggy". I am a geek and I love fiddling around with bits. So this actually describes the result of such geekdom.

This is about how Yamaha has protected their SMAF-files from corruption. While doing so, they produced a little riddle for the reverse-engineers among us.

If you dont know what SMAF files are, just skip this entirely, you wont get any value out of it.

First of all, a SMAF file, no matter if MA2 or MA7 usually contains three checksums. Two in the middle of the file, one at the end.

Checksum1-Value is stored in a "CNTI"- (MA2) or "OPDA"- (MA3 and above) subtag called "A2".
Checksum2-Value is stored in a "CNTI"- (MA2) or "OPDA"- (MA3 and above) subtag called "A0".
Checksum3-Value is simply appended to the "MMMD"-data.

Only Checksum3 is mandatory for handsets to still accept / play / store the content. The other two may even be incor... more

June 7th, 2006 - 12:34 am | permalink

 
 | list | rss |