View Full Version : FreeMe2 - open source WM-DRM removal tool
sectroyer
19th September 2007, 12:24
Hi.
After many hours of fighting with WM-DRM protection I decided to create new tool that would allow people to remove it from from files and streams. Of course FairUse4WM is great tool and it works nice but there are few reasons why have decided to create a new one:
1) FairUse4WM is closed source. Everytime MS releases new version of IBX people have to make binary patches or start from scratch.
2) FairUse4WM doesn't work with video streams since it wasn't intended to. Of course it is possible to record video stream and then undrm it but this is pointless when we are talking about tv channels :(
3) There is no platform independent tool for ms wm-drm. There is no point of running windoze every time you want to undrm some file or stream.
FreeMe2 has reached beta stage. It CAN NOW be used by normal users. FreeMe2 should now handle all kinds of packets and successfully decrypt both wma and wmv files. It is even able to create correct file header and files paly fine (even in WMP). As you may guess FreeMe2 is based on famous FreeMe by Beale Screamer.
Source code can be found here: http://sourceforge.net/projects/freeme2
Any help will be appreciated.
Latest version available: FreeMe2 (http://freeme2.sourceforge.net/)
I will be updating this link.
Ajax_Undone
19th September 2007, 16:10
Well you know if you succeed at this MicroMoney will shut you down and take sourceforge with if it has too...:D
sectroyer
19th September 2007, 17:46
I don't believe they will do so. All my code is based on information freely available on the net or obtained by clean room reverse engineering. It's not a crime to allow you playback of legally downloaded files on system other than windoze. Besides I don't live in US so DCMA doesn't bother me :)
KenD00
19th September 2007, 18:20
But it bothers SourceForge, so much that they took down a partial implementation of an algorithm that is freely downloadable from the webpage of its creator.
:rolleyes:
sectroyer
19th September 2007, 18:40
If they will take the project down I will start bothering :) For now to access the source just use this:
svn co https://freeme2.svn.sourceforge.net/svnroot/freeme2 freeme2
I've just commited some initial support for wmv files as well for extracting IBX priv key from FairUse4WM's blackbox-keys.txt file.
HyperHacker
20th September 2007, 04:53
I suggest every time you make a release, you also upload it with source to various file sharing/BitTorrent sites. Once it's out there there's basically no way they can take it down. :D
Ajax_Undone
20th September 2007, 05:32
If you make it exclusive to un-DRMing Purchased Files...
Then I can see it probably staying...
Because they can't lock what you own...
By the way can it handle IBX Version 6000.7000 It seems
people are having trouble with that little promiscuous file...
Ajax_Undone
20th September 2007, 05:35
By the way what C compiler dose this compile on...
Is there a way to convert it so it can be opened in visual studio 2003/2005/2008 b2...
Sorry I am a .net VB and C# Programmer C/C++ is like egypt Script
sectroyer
20th September 2007, 07:45
It can be compiled using any C compiler that works on windows (for now). You can create a new project in visual studio and put them inside of the project. I am now fighting with ASF 1.0 spec it's sick :)
sectroyer
20th September 2007, 14:07
Okay program is now able to decrypt some wmv files (at least most of it) there are still some packets that I don't know how to handle. If someone has a better understanding of wmv/asf format please contact me. I based my findings on this doc: http://avifile.sourceforge.net/asf-1.0.htm. For those of you who don't like sources link to binary is in first post.
Moitah
20th September 2007, 23:40
Maybe the ASF Specification (http://www.microsoft.com/windows/windowsmedia/forpros/format/asfspec.aspx) on Microsoft's site has more information?
Ajax_Undone
20th September 2007, 23:50
CLI app works great just freed up some files...
but the Console will confuse the Normals...
Some one needs to make a GUI that is so simple that Brittany Spears can use it... lol
Can anybody build one I don't have a lot of free time and it sure would be nice...
Preferably one with a batch option...
sectroyer
21st September 2007, 01:31
Just wanted to inform you that I have commited support for packets that use grouping and padding. In other words app should be able to handle all wma files and most of wmv files (some even play in WMP :D). For testing please use mplayer since I don't think I generate correct headers. Link to binary in first post.
sectroyer
21st September 2007, 01:37
Maybe the ASF Specification (http://www.microsoft.com/windows/windowsmedia/forpros/format/asfspec.aspx) on Microsoft's site has more information?
I read this specification and other docs. Now I believe that I am able to handle all kinds of packet types. Unfortunately I don't have big experience with asf files :( Besides in my code there is a lot of hacking which shouldn't happen and I use some constants that I don't fully understand :D This code (handle_packet function) was created on base of experimenting and reading docs. I know that there are here people that understand how i.e. works drm2wmv which has better asf support and generates correct headers. I'm counting on their help and hope that they will share their knowledge. Meanwhile I will start working on other parts of the code and leave handle_packet function as it is:)
sectroyer
21st September 2007, 16:06
I fixed sid reading (it now supports format <SID>sid</SID>). Program now is able to read sids from both license files drmstore.hds and drmv2.lic (if there other kinds let me know). I also commited support form drm2wmv key files format. For now keys should be put in file drm2.key in main program directory (the same goes to blackbox-keys.txt file). I also reimplemented some file operation to make them platform independent. Link to binary in first post.
sectroyer
21st September 2007, 16:14
If you make it exclusive to un-DRMing Purchased Files...
Then I can see it probably staying...
Because they can't lock what you own...
By the way can it handle IBX Version 6000.7000 It seems
people are having trouble with that little promiscuous file...
FreeMe2 doesn't have any support for extracting IBX priv key. It contained some old code from freeme but It's commented since it doesn't work. At some point I may add an option for extracting IBX keys but not now and I need some more info about how FairUse4WM and mirakagi are able to do it. If you will be able to extract these keys in some way and put them in blackbox-keys.txt file than FreeMe2 will work with IBX Version 6000.7000 but then FairUse4WM will also work :)
veadtuck
25th September 2007, 08:39
sorry for offtopic. how do i remove drm version 1 from asf files?
sectroyer
25th September 2007, 13:30
As far as I know there is currently no way of removing drm version 1 protection from asf files. When I finish working with drm2 I may implement drm1 but not now :)
sectroyer
26th September 2007, 15:34
BETA STAGE :D
FreeMe2 now works with all files I have and decrypts all kinds of packets. Code is now fully platform independent (Probably it only needs some tweaking for mac :)). I wanted to explain that during my tests I found out that there is some "flag" that is used by WMP to check if stream is DRM proteced or not. It can be found at position 49 (hex: 0x31) in stream chunk. If it has value 0x80 it means files is DRM protected and (if undrmed and flag not changed!) will not play in WMP. For files not proteced with drm this flag should be 0.
JackJeruk
26th September 2007, 20:35
I am here again.
I started to use your sw, but I got an error message:
Decrypted content key is too big!
What is the problem?
sectroyer
26th September 2007, 22:32
First of all tell me what ibx version are you using? I assume you did put blackbox-keys.txt file in the FreeMe2 directory? Which version of FairUse4WM are you using?
JackJeruk
27th September 2007, 10:04
First of all tell me what ibx version are you using? I assume you did put blackbox-keys.txt file in the FreeMe2 directory? Which version of FairUse4WM are you using?
http://forum.doom9.org/showpost.php?p=1048689&postcount=1401 ;)
My WMP is v10.00.00.3646 english version
FU4WM version is 1.3 fix-2
Filesize is 1.228.566.391 bytes
Created filesize is 7075 bytes
My IndivBox.key version is 11.0.5497.6285
JackJeruk
27th September 2007, 10:07
Yes, the blackbox-keys.txt file is there.
Here is thr result:
Found DRMv1 header object.
Found DRMv2 header object.
Found KID (WKwCUic7UyxDDdA7ALxpQg==)
Starting to look for license.
License file full path: C:\Documents and Settings\All Users\DRM\drmstore.hds
Checking license with PUBKEY 257f591c997d29f3afc09cd56e2f11625ff31b2f
Enter IBX private key:
LxvzX2IRL27VnMCv8yl9mRxZfyXPWkRToEtR+DxpR4F69Ag3QGjvOg== Ja4cQgR4v67SXv++Su9F3wZipzA=
Decrypted content key is too big!
Press <ENTER> to acknowledge error.
sectroyer
27th September 2007, 15:37
Okay it really seems that FreeMe2 is unable to find your blackbox-keys.txt file I see it asks to enter the IBX key:
Enter IBX private key:
LxvzX2IRL27VnMCv8yl9mRxZfyXPWkRToEtR+DxpR4F69Ag3QGjvOg== Ja4cQgR4v67SXv++Su9F3wZipzA=
Decrypted content key is too big!
So you did paste this key to the program? Could you show listing of your FreeMe2 directory? blackbox-keys.txt should be there. If you paste the key by your self you have to know what you are doing!! I can see that you did paste both Private and Public IBX key so it's nothing strange that FreeMe2 didn't work :)
srp336
28th September 2007, 00:35
Are there some setup instructions somewhere? I've tried running it, but I get "No ENABLINGBITS element in license". Did I do something wrong?
HyperHacker
28th September 2007, 06:27
Enter IBX private key:
LxvzX2IRL27VnMCv8yl9mRxZfyXPWkRToEtR+DxpR4F69Ag3QGjvOg== Ja4cQgR4v67SXv++Su9F3wZipzA=Should there be a space in that?
JackJeruk
28th September 2007, 10:08
No, the bb-keys file is still there, in same directory, and the sw asked me for the IBX key.
No more spaces in the copied key than needed.
Edited part: Right now it is running! I rollbacked WMP to v9.xxxxx and it is working
I can not see the result jet, but I see, there is a new file with "Freed" prefix and the file size is increasing.
sectroyer
28th September 2007, 13:27
Are there some setup instructions somewhere? I've tried running it, but I get "No ENABLINGBITS element in license". Did I do something wrong?
This is probably because you are using WMP 11. This error was reported previously. I will work on WMP 11 support later. Please always post wmp and IBX vesrions you are using.
sectroyer
28th September 2007, 14:27
No, the bb-keys file is still there, in same directory, and the sw asked me for the IBX key.
No more spaces in the copied key than needed.
Edited part: Right now it is running! I rollbacked WMP to v9.xxxxx and it is working
I can not see the result jet, but I see, there is a new file with "Freed" prefix and the file size is increasing.
blackbox-keys.txt has both public and private key in it. You did copy both :) I will try to create more warnings to make it easier to understand for normal users :)
gs3user007
28th September 2007, 16:26
Would it be possible to upload a single.zip with all the necessary files in it? Or perhaps even an executable for various Operating Systems?
I don't mind needing to compile the program myself, but having no experience using a CVS system to download source code, I'd have to download each file individually from Sourceforge.
JackJeruk
28th September 2007, 17:41
blackbox-keys.txt has both public and private key in it. You did copy both :) I will try to create more warnings to make it easier to understand for normal users :)
Hey sectroyer!
Many thanks for your job, that's GREAT, really GREAT!
:thanks: :thanks: :thanks:
Ajax_Undone
28th September 2007, 17:48
SVN and CVS is simple just download subversion svn-1.4.5-setup.exe (google it and download it) install SVN to Default...
Open a CMD prompt from the folder you want to put it in and past the SVN Code (shown below) into the CMD... And it will download the files you are after...
svn co https://freeme2.svn.sourceforge.net/svnroot/freeme2 freeme2
Copy exactly as shown
Ajax_Undone
28th September 2007, 17:50
blackbox-keys.txt has both public and private key in it. You did copy both :) I will try to create more warnings to make it easier to understand for normal users :)
How about a GUI LOL:thanks:
sectroyer
28th September 2007, 22:12
Would it be possible to upload a single.zip with all the necessary files in it? Or perhaps even an executable for various Operating Systems?
I don't mind needing to compile the program myself, but having no experience using a CVS system to download source code, I'd have to download each file individually from Sourceforge.
There is such file :) Link is in the first post.
sectroyer
28th September 2007, 22:15
How about a GUI LOL:thanks:
No GUI at the moment :) If someone wants to create gui for FreeMe2 he/she can do it :D I am busy with other stuff and creating gui is not my priority.
sectroyer
28th September 2007, 22:16
Should there be a space in that?
No the space should be there. Every line of blackbox-keys.txt file looks like this:
Public IBX key<space>private IBX key :)
winlinmac
30th September 2007, 02:23
Hey, have you implemented a way of obtaining the keys from the blackbox yet, or is that still in the works?
Hopefully we can solve problems with 6000.7000 and any later updates.
sectroyer
30th September 2007, 10:18
Hey, have you implemented a way of obtaining the keys from the blackbox yet, or is that still in the works?
Hopefully we can solve problems with 6000.7000 and any later updates.
All the details of extracting IBX keys are discussed in this thread: http://forum.doom9.org/showthread.php?t=130166 at the moment we are trying to make FreeMe2 work with the same IBX versions as FU4WM. After that we may start workintg on 11.6000.7000. So don't expect such support soon :)
Hey sectroyer!
Many thanks for your job, that's GREAT, really GREAT!
Does this mean this tool worked for you? This would be the first file that FU4WM wasn't able to handle but FreeMe2 was :D
JackJeruk
1st October 2007, 10:34
Yes, that is worked, BUT...
When I tried to convert to DVD format, (or any other) many of the applications said No CODEC for this file.
I checked with many sw, Windows Media ASF View 9 Series said that audio codec WM...... blablabla DMO
but video codec line is almost empty, so it is missed from the header, I think.
Sorry if this information is not full, I tested/convert at home and now I am in my work.
I used VSO ConvertX to DVD which1 can convert WMV to ASF, it is strange but working.
I think if the header stay correct this method will be fine.
sectroyer
1st October 2007, 13:45
Your conversion to dvd is not important. Main question is whether you were able to play(not convert) undrmed file or not?
StreamRipper
2nd October 2007, 04:10
Yes, that is worked, BUT...
When I tried to convert to DVD format, (or any other) many of the applications said No CODEC for this file.
I checked with many sw, Windows Media ASF View 9 Series said that audio codec WM...... blablabla DMO
but video codec line is almost empty, so it is missed from the header, I think.
Sorry if this information is not full, I tested/convert at home and now I am in my work.
I used VSO ConvertX to DVD which1 can convert WMV to ASF, it is strange but working.
I think if the header stay correct this method will be fine.
You can try to repair broken Windows Media files (http://all-streaming-media.com/repair-broken-media/fix-broken-windows-media.htm).
JackJeruk
2nd October 2007, 10:49
Yes, that is worked ...
Yes, that's worked fine!
I am thankful for your help but my opinion is that it is important if someone would like to convert these files.
But the app is worked for me.
Thanks for that again!
sectroyer
2nd October 2007, 13:42
Yes, that's worked fine!
I am thankful for your help but my opinion is that it is important if someone would like to convert these files.
But the app is worked for me.
Thanks for that again!
WMP is very strict about asf files so if it plays the file I think that "repairing" will not work and there is nothing wrong with headers. I think there is a problem with your converting software.
JackJeruk
2nd October 2007, 17:31
WMP is very strict about asf files so if it plays the file I think that "repairing" will not work and there is nothing wrong with headers. I think there is a problem with your converting software.
With almost all of converting applications?
kamaswami42
2nd October 2007, 23:29
you know, if sourceforge gives you trouble because they don't want to get in fights with M$, i would suggest trying a different open source website.
for example, gna.org is a french free software site similar to sourceforge (most importantly it has svn over ssh). with it being in france i can't imagine they really care what M$ thinks.
i'm sure there are others out there too. this way it can be open source AND avoid being attacked by M$
JeffAlso
4th October 2007, 03:39
I'm believe I'm doing something wrong here. Perhaps a how-to would be helpful.
First, I run the new drmdbg for IBX 11.0.6000.7000 on my file and get the following:
<DRM2WMV2>
<KID>EZV2usnEwdCwVpbVQZ9aA62A</KID>
<SID>H9vbc0QqQ1M0JOf9gwczowdjyOhI</SID>
<INFO></INFO>
</DRM2WMV2>
When I run FreeMe2 on the file I get the following:
C:\Documents and Settings\Media\Desktop\drmdbg>freeme2 -v snowboard_300.wmv
Found DRMv1 header object.
Found DRMv2 header object.
Found KID (EZV2usnEwdCwVpbVQZ9aA62A)
Starting to look for license.
License file full path: C:\Documents and Settings\All Users\DRM\drmstore.hds
Checking license with PUBKEY 370d3ae6bf339ec29ab106ea83d58ddd68871f45
Enter IBX private key:
Where do I get this key from? I don't have a blackbox-keys.txt file, and don't know what its contents should be.
Any assistance would be greatly appreciated. Thanks.
sectroyer
4th October 2007, 14:03
Where do I get this key from? I don't have a blackbox-keys.txt file, and don't know what its contents should be.
Any assistance would be greatly appreciated. Thanks.
Donwload newest version. I just commited few changes and bugfixes. FreeMe2 is now able to find blackbox-keys.txt and drm2.key files in it's directory even when run from any location. It also asks you for SID (which you can get using drmdbg) EVEN if you don't have blackbox-keys.txt file and you don't know your priv key. Just hit enter when it asks :)
lienzo
4th October 2007, 22:27
Donwload newest version. I just commited few changes and bugfixes. FreeMe2 is now able to find blackbox-keys.txt and drm2.key files in it's directory even when run from any location. It also asks you for SID (which you can get using drmdbg) EVEN if you don't have blackbox-keys.txt file and you don't know your priv key. Just hit enter when it asks :)
I just downloaded your newest version, I've created a folder called FREEME2 containing all the FreeMe2 files that i've deziped, then i drag and drop the video i want to un-drm on the Freeme.exe icon, i obtain a system window asking me immediately :
Enter IBX private key:
(what should i enter here ?? i tried :
"C:\Documents and Settings\All Users\DRM\Cache\Indiv02.key v11.0.6000.7000"
or also "Indiv02.key v11.0.6000.7000"
or even "Indiv02.key"
..nothing seems to work ;-(
FreeMe ..then.. tell me :
Decrypted Content Key is too big !
I've checked the infos with the last DRMDBG version (on the Japanese page, previously displayed on another thread of this forum) :
C:\Documents and Settings\All Users\DRM\Cache\Indiv02.key v11.0.6000.7000
<DRM2WMV2>
<KID>tpwdYLT0emAtMsR4DjhQaw==</KID>
<SID>+v/b3T5LUQFBS5yd1IF83NMiAG1I</SID>
<INFO></INFO>
</DRM2WMV2>tpwd
Any advice, idea ?
Thanks ;-)
JeffAlso
5th October 2007, 00:23
Donwload newest version. I just commited few changes and bugfixes.
I'm still experiencing the same kind of problems. I noticed the modified date on freeme2 executable in the zipfile is 9/26/2007. It appears that you may have updated the source repository, but not the compiled executables.
Thanks much.
sectroyer
5th October 2007, 22:52
I'm still experiencing the same kind of problems. I noticed the modified date on freeme2 executable in the zipfile is 9/26/2007. It appears that you may have updated the source repository, but not the compiled executables.
Thanks much.
Sorry for mistake :( Now it should work. I am now very busy with adding wm drm support to *nix systems but that's going to be surprise :D
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.