Search
Latest Posts Categories
Links
December 10th, 2007 SDC unpacker

Attachments: unpacksdc.zip

Last time I had a “little” problem with MSDNAA (MSDN Academic Alliance). I’ve been downloading VisualStudio 2005 when the MS downloader failed for some reason. It was unable to download the SDC file from server for some times, then it told me I already downloaded it. Damn!

I requested reinstall from the ELMS site… Nothing happened by ~2 weeks, noone contacted me with instructions. Unfortunately you can’t order VS 2005 on dvd from ELMS.

But… there are some locations (even my university has one ;) ) you can download compressed and “protected” iso images from. So, I did an experiment. I downloaded a downloader for something like ms crc305 or sth, renamed downloaded sdc file of VisualStudio to crc305.sdc and run the downloader to unpack it. I was a bit surprised, but I got decrypted iso file ;) That means there is no file or product-specific encryption key, so probably someone wrote generic unpacker for this kind of files.  So I started looking for it and found nothing… except two SDC Wrappers – tools for creating sdc files, but without unpacking option. In fact these wrappers contain full unpacking procedures, but I was too lazy to find how to enable it on the UI.

After few hours debugging and coding I wrote complete unpacker for this kind of files. You can grab it here. It’s a console tool, it will print valid commandline when you run it without parameters. If you find sdc file that is not supported by this tool, just let me know (eg. write the comment with a link to sdc file). As I hate zlib, you will need .NET framework to run it (yeah, DeflateStream rocks!). Maybe some day I will port it to C++, so you will get native windows exe, or maybe even source code ;)

You have to remember that you can download sdc files and decompress them freely, but you shouldn’t install software it contains until you “purchase” it on your academy ELMS site. In most cases you will need the key that is provided after checkout, otherwise the software won’t install or run.

comments are open 57 comments

57 Comments. Add your own

Carlos Pereira  |  December 30th, 2007 at 7:32 pm

Thank you very much for this! It´s really a life saver when you need the software and MSDNAA doesn´t let you download again!

It would be nice to have an open source code or even a GUI.

If you need any help please contact me!

Tyler V.  |  January 11th, 2008 at 6:02 am

Here’s a link to one that it doesn’t work on..

http://imt.uni-paderborn.de/download/msdnaa/Exchange_2007.01.sdc

Other than this one and the Exchange_2007.02.sdc, you’re tool has been awesome! If you need help porting to C++, I did pretty well in my classes so maybe I can help..

Let me know, Tyler V.

imagi  |  January 11th, 2008 at 10:00 am

Hey,

I think that file is not valid. Looks that filenames are not encrypted properly.
I tested the unpacker on http://imt.uni-paderborn.de/download/msdnaa/EN_Exchange_Server_2007_Standard_and_Enterprise.sdc file which is encrypted with the same SDC Wrapper tool version (0xB4 in file header) than the one you mentioned and it works fine.
If you’re sure this file is correct, please drop me a link to original MSDNAA downloader executable (I bet you got it ;) ), so I could check the algorithm once again.

Alex  |  January 14th, 2008 at 11:08 pm

ftp://ftp.chl.chalmers.se/pub/MSDNAA/EN_onenote2003.sdc

imagi  |  January 15th, 2008 at 8:37 am

What exactly is the problem? I managed to unpack this file correctly with unpacksdc.exe

Alex  |  January 16th, 2008 at 3:18 pm

How work your tool. Can you make images ?

gfoot  |  January 18th, 2008 at 10:39 am

Perhaps international/non-standard installs of windows are causing problems, your program is a hit with the international crowd. It works fine for me though(the msdnaa downloader decided that it knew best and deleted my download for VS2005 several times while coming out with an error message)Your program saved my tail, thanks.

pasya  |  January 30th, 2008 at 1:35 pm

Does your programm work with sdc file splitted in 2 files?? e.g. VS 2008 available now for download at MSDNAA!

anon  |  February 3rd, 2008 at 5:55 pm

Thanks!

Alex  |  February 22nd, 2008 at 9:21 pm

I had a similar “horror story” struggling with VS2008 downloader.
First it succeeded with download, but run out of disk space (who knew it needs free disk space twice the iso size and then some) and failed during extraction. But instead of giving the error message (e.g., “Out of disk space, please free NNN GB and continue”), it happily deleted _fully downloaded_ sdc files, leaving me with incomplete iso.

Then I freed some disk space, and decided to give MSDNAA downloader one more chance (3.5 GB of network traffic again, yay!) and left it to run at night, estimating that by morning it would complete. To my surprise, in the morning I was greeted with “Fatal error” with no specific error details. All traces of the downloaded sdc files were gone.

This time I was really angry, so I grabbed URLs of sdc cabinets from the registry (they can be found in HKLM\SOFTWARE\EACADEMY\SDC\, value named ‘cloc’), fired up my download manager, merged the two files using ‘copy /b’ and then used sdc unpacker to extract the iso.

So shame on MS programmers, and huge thanks to you, because your little program really saved my day.

Newb  |  February 25th, 2008 at 5:08 am

Ummm.. how do you work this tool?

Newb  |  February 25th, 2008 at 6:45 am

when i double click the program… the command prompt opens up for a second then dissapears… can some one help me???

cips007  |  April 1st, 2008 at 9:01 am

It works FINE
Thank you

tolman  |  April 4th, 2008 at 1:57 pm

Wspaniała sprawa ten twój progs a z majkrosoftu buraki, że zamiast zipa/rara używają tego gówna (skoro i tak nie zabezpieczają w żaden sposób plików). Tak czy siak dobra robota :) !

not.likely  |  April 7th, 2008 at 2:34 pm

I tried the app, but it returns an error:

Z:\>unpacksdc x.sdc z:\test\
UnpackSDC 1.0 (c) imagi

Unhandled Exception: System.Security.SecurityException: Request for the permission of type ‘System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089′ failed.
at System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet)
at System.Security.CodeAccessPermission.Demand()
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
at unpacksdc.Program.Main(String[] args)
The action that failed was:
Demand
The type of the first permission that failed was:
System.Security.Permissions.FileIOPermission
The first permission that failed was:

The demand was for:

The granted set of the failing assembly was:

The assembly or AppDomain that failed was:
unpacksdc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
The method that caused the failure was:
Int32 Main(System.String[])
The Zone of the assembly that failed was:
Internet
The Url of the assembly that failed was:
file:///Z:/unpacksdc.exe

Any ideas?

WinXP SP2
.NET Framework 2.0 SP 1
.NET Framework 3.0 SP 1

but works on another machine with out the .NET service packs installed. Go figure?

Hope this helps.

Abdul Malik  |  May 23rd, 2008 at 6:56 pm

Hi
I am getting this error when unpacking the Vista Servicepack 1 sdc file Can yu please help me out.

D:\>unpacksdc VistaSP1.sdc D:\ skipcrc
UnpackSDC 1.0 (c) imagi
SDC version: B4
Proper CRC32: 51293959
Skipping CRC check
Unpacking: Windows Vista Service Pack 1 (x86, x64) – DVD (English, French, Germa
n, Japanese, Spanish)\de_en_es_fr_ja_windows_vista_service_pack_1_x86_x64_dvd_X1
4-38128.iso

Unhandled Exception: System.IO.InvalidDataException: Block length does not match
with its complement.
at System.IO.Compression.Inflater.DecodeUncompressedBlock(Boolean& end_of_blo
ck)
at System.IO.Compression.Inflater.Decode()
at System.IO.Compression.Inflater.Inflate(Byte[] bytes, Int32 offset, Int32 l
ength)
at System.IO.Compression.DeflateStream.Read(Byte[] array, Int32 offset, Int32
count)
at unpacksdc.Program.Main(String[] args)

Regards

LinHongJun  |  May 30th, 2008 at 12:55 pm

Thanks for such a good tool.

It is very useful for me.

I also expect a GUI for this.

dreamrider  |  June 4th, 2008 at 7:42 am

How does this works?
When I double click the program, the command prompt opens up for a second then dissapears…
What’s wrong?

apostle  |  June 6th, 2008 at 7:53 pm

Men, this is lovely !! u love u men !! U saved mi day.. I had a lot of sdc’s..eg win server 2008, win xp x64, Visual studio 2008.iso.sdc but was just gonna errase dem coz my virtual drives couldn’t mount dem!! lovely work, brother….

colinzim  |  June 18th, 2008 at 12:28 pm

how’s about a sample command form someone who has it working
share – share share

wojtek  |  June 30th, 2008 at 12:39 pm

dude You saved my life – i had to extract very important software for me , but the only way was to use linux (and wine) to use it.

so i report that your unpacker works with linux (after installing mono libs though ;) )

Tai  |  July 3rd, 2008 at 10:52 pm

ftp://ftp.cs.rose-hulman.edu/msdnaa/EN_Visual_Studio_Team_System_2008_Team_Suite_x86_x64wow_DVD.01.sdc

ftp://ftp.cs.rose-hulman.edu/msdnaa/EN_Visual_Studio_Team_System_2008_Team_Suite_x86_x64wow_DVD.02.sdc

after merging these 2 files.. ur app doesnt decrypt them. it gives me a crc error. Please consider these 2 files and fix the problem.

Tobias Weisserth  |  July 5th, 2008 at 11:01 pm

Your software saved my life. Thank you so much!

james  |  July 9th, 2008 at 11:52 am

when i try to open unpacksdc i only see a black command box then it quickly disappears. Please help

james  |  July 10th, 2008 at 9:27 am

when i open this application it only shows a DOS box for a second then it disappears. Whats the problem? Please help

james  |  July 13th, 2008 at 9:45 am

I tried to open unpacksdc but when i open it i only see for a second then it disappears. Whats the problem?

Pedro Corvo  |  July 20th, 2008 at 8:05 pm

Nice one!

Can Doralp  |  July 23rd, 2008 at 11:12 pm

Hi ,
I guessed where did you find the encryption algorithm to writing this unpacker’s decryption algorithm ???

imagi  |  July 23rd, 2008 at 11:16 pm

I just did some reverse engineering on original MSDNAA downloaders and SDC Wrapping tool I googled for… ;)

Isaac  |  August 3rd, 2008 at 2:44 am

Ok, for all those who only see a black box that quickly disappears… You need to run this tool from the command prompt. You can not simply double click on it. Click your start button on the task bar and then click the “Run…” button. Type “cmd” in the Open text box and click the “OK” button. Then navigate to the directory (cd command) that contains the unpacksdc executable and run it.

james  |  August 10th, 2008 at 3:04 pm

Hey isaac thanks. I now able to run it but when i try to unpack the sdc file i recieve the error which says something like “unhandled exception. System.IO.Datainvalid……”
Any help.

some1  |  August 25th, 2008 at 10:51 am

For people getting error like ‘not.likely’ : copy the .sdc-file to a local disk. For some reason this error appears when trying to unpack on a mapped network-resource … cheers Thank you imagi btw ;P

Harm  |  August 26th, 2008 at 2:26 pm

Hi there,
This is a lifesaver, 100% sure!
Thank you so much for this fine piece of software.

thuun  |  August 28th, 2008 at 12:21 am

It handles about 95% of SDC files I’ve tried so far.

Not bad for v1.0.

ROCK ON.

-t

thuun  |  August 28th, 2008 at 12:26 am

Here’s a quick batch to dump SDC files found in the current folder, you can run it next to unpacksdc.exe and at least one SDC file…
———-begin-code———–

@echo off
cls &echo.&echo %~n0 &echo.
for %%i in (*.sdc) do (
@for %%d in (%~dp0%%~ni) do (
echo Ready to unpack:
echo %%i &echo.
echo To folder:
echo %%d &echo.
pause &echo.
if not exist “%%d” md “%%d”
unpacksdc.exe “%%i” “%%d”
)
)
pause

———end-code———

tom  |  September 25th, 2008 at 12:00 am

D:\vista64>unpacksdc.exe EN_Windows_Vista_with_SP1_x64_DVD.sdc d:\temp skipcrc
UnpackSDC 1.0 (c) imagi
SDC version: B4
Proper CRC32: CC5763C9
Skipping CRC check
Unpacking: Windows Vista with Service Pack 1 (x64) – DVD (English)\en_windows_vi
sta_with_service_pack_1_x64_dvd_x14-29595.iso

Unhandled Exception: System.IO.InvalidDataException: Block length does not match
with its complement.
at System.IO.Compression.Inflater.DecodeUncompressedBlock(Boolean& end_of_blo
ck)
at System.IO.Compression.Inflater.Decode()
at System.IO.Compression.Inflater.Inflate(Byte[] bytes, Int32 offset, Int32 l
ength)
at System.IO.Compression.DeflateStream.Read(Byte[] array, Int32 offset, Int32
count)
at unpacksdc.Program.Main(String[] args)

Marian V  |  October 19th, 2008 at 1:13 pm

Thank you! youre a hero and a life saver!

Ahm  |  October 27th, 2008 at 8:20 pm

1000 TIMES THANK YOU

Sandu Adrian  |  November 11th, 2008 at 1:03 am

Cool tool dude .. works ok so far .. one question though .. what about files that are split into .01.sdc and .02.sdc ..

when doing:

copy file.01.sdc /b +file.02.sdc /b file03.sdc .. I get Proper CRC : 0 ( which I know isn’t good ) .. also .. renaming file03.sdc to file.01.sdc doesn’t work either .. but the downloader seemms to get it right so .. ? any ideas ?

thuun  |  November 24th, 2008 at 10:01 am

here’s a…
—revised batch for unpacksdc—

::
:: UnpackSDC.EXE v1.0 (c)2008 imagi http://imagi.pl
:: UnpackSDC.CMD thuun.080825
::
@echo off
cls &echo.&echo %~n0%~x0 &echo.
for %%i in (*.sdc) do (
@for %%d in (%~dp0%%~ni) do (
echo Ready to unpack:
echo %%i &echo.
echo To folder:
echo %%d &echo.
pause &echo.
if not exist “%%d” md “%%d”
unpacksdc.exe “%%i” “%%d”
)
)
pause

—end—

panda  |  November 26th, 2008 at 11:43 am

thnks very much
how can we found serial number for .sdc products?

gigih  |  December 10th, 2008 at 9:16 am

i can’t use this program,always show this massage :
“The application failed to initialize properly (0xc0000135). Click on OK to terminate the application”

can you tell me why? thank’s

velo  |  December 19th, 2008 at 3:05 pm

Thanks a lot. works great.. :-)

grzegor  |  December 26th, 2008 at 9:12 pm

The same error as gigih :(

ilyass  |  December 27th, 2008 at 5:18 pm

“The application failed to initialize properly (0xc0000135). Click on OK to terminate the application”

I have the same problem as the solution ??

kotee  |  January 1st, 2009 at 4:19 pm

help please!!!!!

where i can download unpacksdc version: b4

darui  |  January 6th, 2009 at 1:48 am

Unless you have .NET Framework 3.5 SP1 you won’t be able to run a .NET application from a network share.

Fix 1: Install the latest .NET Framework
Fix 2: Copy application to a local drive

Hope it helps!

noname  |  January 15th, 2009 at 7:10 am

You must install .NET framework.
Google for it.

Patricio  |  January 26th, 2009 at 4:32 pm

You are the man! Thank you very much for this Tool! Aren´t you going to have legal issues for creating this? It does not matter now, its already too late for them , :p ^^

master tee  |  February 7th, 2009 at 3:56 am

Unhandled Exception: System.IO.InvalidDataException: Block length does not match
with its complement.
at System.IO.Compression.Inflater.DecodeUncompressedBlock(Boolean& end_of_blo
ck)
at System.IO.Compression.Inflater.Decode()
at System.IO.Compression.Inflater.Inflate(Byte[] bytes, Int32 offset, Int32 l
ength)
at System.IO.Compression.DeflateStream.Read(Byte[] array, Int32 offset, Int32
count)
at unpacksdc.Program.Main(String[] args)

an error

G:\>unpacksdc 3.sdc G:\ skipcrc
UnpackSDC 1.0 (c) imagi
SDC version: B4
Proper CRC32: 0
Skipping CRC check
Unpacking: Windows Vista with Service Pack 1 (x86) – DVD (English)\en_windows_vi
sta_with_service_pack_1_x86_dvd_x14-29594.iso

Unhandled Exception: System.IO.InvalidDataException: Unknown block type. Stream
might be corrupted.
at System.IO.Compression.Inflater.Decode()
at System.IO.Compression.Inflater.Inflate(Byte[] bytes, Int32 offset, Int32 l
ength)
at System.IO.Compression.DeflateStream.Read(Byte[] array, Int32 offset, Int32
count)
at unpacksdc.Program.Main(String[] args)

G:\>

i change my windows and get the net frame lates one

but still their

what can i do,thankes

Buor  |  February 11th, 2009 at 4:27 pm

SDC version: B4(Wrong CRC!. Hit Enter to exit

SDC version: B3 (ok)

PCGyver  |  February 18th, 2009 at 9:12 pm

I’ve see that is xor problem. I wrote simple program in Delphi.

1. I Unpack file using skipcrc
2. View output file using hex view. usualy ISO file at begining has 00 00 00 00….
So if my unpacked file has D2 so a avery byte xor by $D2.
3 If I expect EXE file as output file (example from en_MSHEALTHSDK.sdc) – first bytes should be ‘MZ’ ($4D $5A) but I have ($D8 $CF).
A xor B = C but C xor B = A and C xor A = B
A – orginal byte
B – xor key
C – encrypted byte

To find encryption key I do
C xor A = B
$D8 xor $4D = $95
$CF xor $5A = $95
So in this file my key is $95

Simple prog:

Const sPath = ‘C:\Temp\Windows Server 2003 R2 Enterprise Edition with SP2 – Disc 1 (English)\’;
sFile1 = ‘en_win_srv_2003_r2_enterprise_with_sp2_cd1_X13-05460.iso’;
sFile2 = ‘en_win_srv_2003_r2_enterprise_with_sp2_cd1_X13-05460.out.iso’;
buf = 40960;
procedure TForm1.Button1Click(Sender: TObject);
vAR tf1, TF2 : TFileStream;
A : array[1..buf] of byte;
I,J : Integer;
begin
TF1:=TFileStream.Create(sPath+sFile1, fmOpenRead);
TF2:=TFileStream.Create(sPath+sFile2, fmCreate);
While TF1.Position<TF1.Size do
begin
J:=Min(TF1.Size-TF1.Position,buf);
TF1.Read(A,J);
For I:=1 to J do
A[i]:=A[i] xor $D2;
TF2.Write(A,J);
Caption:=IntToStr(TF1.Position);
Update;
Application.ProcessMessages;
end;
TF1.Free;
TF2.Free;
end;

PCGyver :-)

Michi  |  March 4th, 2009 at 8:57 am

C:\Temp4>unpacksdc.exe en_embedded_standard_2009_academic_edition_x86_dvd_x15-44
161.01.sdc c:\ skipcrc
UnpackSDC 1.0 (c) imagi
SDC version: B4
Proper CRC32: 0
Skipping CRC check

Unbehandelte Ausnahme: System.IO.InvalidDataException: Die Blocklänge entspricht
nicht dem Komplement.
bei System.IO.Compression.Inflater.DecodeUncompressedBlock(Boolean& end_of_bl
ock)
bei System.IO.Compression.Inflater.Decode()
bei System.IO.Compression.Inflater.Inflate(Byte[] bytes, Int32 offset, Int32
length)
bei System.IO.Compression.DeflateStream.Read(Byte[] array, Int32 offset, Int3
2 count)
bei unpacksdc.Program.Main(String[] args)

Carrie  |  March 21st, 2009 at 4:43 pm

Hi Imagi, thank you for your nice work

I experience some errors and hope you may give me some hints.

UnpackSDC 1.0 (c) imagi
SDC version: B4
Proper CRC32: 0
Computing CRC32…
Computed CRC32: 825DDA2
Wrong CRC!. Hit Enter to exit…

I have downloeded the same file from different source several times.

I have tried the skipcrc switch but the extracted ISO file is unrecognized by virtual drive/CD burning software

The sdc file is not splitted image

Thank you

Hudi  |  March 22nd, 2009 at 3:55 am

Hi,
Microsoft change the encrypt format for SDC
and no possible to unpack anymore with
“unpacksdc”,
Could you be kind enough to help ?
Do you have a new version ?

The file is “PT-PT_Windows_XP_Professional_with_SP3_x86_CD”
you can find it “http://msdn63.e-academy.com/main/admin/rapidsetup_products.cfm?p=DC3A4A8A40AD882D48A7BE7F0C99B83F40A8817F3B9EAC8A&lang=0″

Appreciate your kind help
Hudi

Ender  |  March 24th, 2009 at 8:11 am

The filename, directory name, or volume label syntax is incorrect.
UnpackSDC 1.0 (c) imagi

Unhandled Exception: System.IO.FileNotFoundException: Could not find file ‘C:\Te
mp\ôclusterpack.sdcö’.
File name: ‘C:\Temp\ôclusterpack.sdcö’
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, I
nt32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions o
ptions, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access,
FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean
bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access,
FileShare share)
at System.IO.File.OpenRead(String path)
at unpacksdc.Program.Main(String[] args)
Press any key to continue . . .

mitz  |  August 25th, 2009 at 8:38 am

hey there, i really need to unpack my SDC file, how do i actualy use your unpacker?

Leave a Comment





Trackback this post  |  Subscribe to the comments via RSS Feed

/ / ()