flowhella / get-flash-videos

Automatically exported from code.google.com/p/get-flash-videos
0 stars 0 forks source link

Channel 4 site changes - download fails #379

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. get_flash_videos http://....../4od#nnnnnn
2.
3.

What is the expected output? What do you see instead?
rtmpdump starting download...

What version of the product are you using? On what operating system?
Latest, OpenBSD current amd64

Please provide any additional information below.
The swf file has changed from 11.21.2 to 11.23.4, some programmes still work, 
depending on the streamURL returned by ais.channel4.com in the xml. Rather than 
a url ending with rtmpe://......mp4, it returns with http://.....fm4, a http 
query returns xml data, this now appear to allow additional media bit rate 
selection.

Original issue reported on code.google.com by njtaylor...@gmail.com on 13 Apr 2012 at 9:19

GoogleCodeExporter commented 8 years ago
oh it nees t use swf 11.23.4

Original comment by andrewcr...@gmail.com on 12 Nov 2012 at 3:52

GoogleCodeExporter commented 8 years ago
i will post replacement psuedo code soon need to take antoher approach

Original comment by andrewcr...@gmail.com on 12 Nov 2012 at 4:18

GoogleCodeExporter commented 8 years ago
over the next day or too i will pull out every possible key string, from the 
der file and f4m file and xml file, i will then use all forms of calculations 
from add, to subtract, to multi to divide, via dec, hex, base 64, it going to 
produce probably about 40-100 potential keys but until we try them all i with 
different combinations i wont know what to use, i will also need it to decrypt 
and make a new file of the segments with testname i will write the code later 
hopefully it wont be to much work for oyu

Original comment by andrewcr...@gmail.com on 12 Nov 2012 at 5:40

GoogleCodeExporter commented 8 years ago
can you put some sort of code that checks teh different url available for a 
particular assesst  to see if you can find a file called CommonKey.bin if you 
can find that it will be very easy to decryt

Original comment by andrewcr...@gmail.com on 12 Nov 2012 at 5:53

GoogleCodeExporter commented 8 years ago
I can try url's for CommonKey.bin- will be later tonight.

Original comment by njtaylor...@gmail.com on 12 Nov 2012 at 6:15

GoogleCodeExporter commented 8 years ago
Tried with the burp suite, spider. http://www.portswigger.net/burp/download.html

And with setting urls to find CommonKey.bin in script, haven't been able to 
find CommonKey.bin.

Original comment by njtaylor...@gmail.com on 13 Nov 2012 at 5:25

GoogleCodeExporter commented 8 years ago
ok just need to do it the hard way, the bin file will be some where but 
probally not in the root directory probally true root rather than virtual root 
that we see on the webserver

ill get to work on finding all possible keys with different ways

Original comment by andrewcr...@gmail.com on 13 Nov 2012 at 6:06

GoogleCodeExporter commented 8 years ago
did that program look for case sentitive names? see if it can find any .bin 
files at all, also see if it can find a file potential called CH4-VOD-4od.pol 
it called in all der files i have tried so far, this i cant open jus tnow not 
sure what informaiton it might contain it similar to the der file 
http://crl3.adobe.com/AdobeSystemsIncorporatedFlashAccessCustomerBootstrap/Lates
tCRL.crl

ive now got all possible locations for the key now jsut need to work out 
different combinations so ill post it when done

Original comment by andrewcr...@gmail.com on 14 Nov 2012 at 4:29

GoogleCodeExporter commented 8 years ago
this is all potential keys in the der file and asset ad manifest files with 
contentid and without

problem is the documention does not say how it is transmitted only says 
commonkey + contentid is used to decrypt the data. i apologize how many there 
is, but this is only the beginning if these dnt work there is the ones in the 
crl files as well and countless mathematically calculation with the keys above

octet string (83,36)
integer (496,16) - goes to reebee
integer (827,129) -rsa -goes to reebee as well
integer (959,9) - small
context specific (1334,20) -authkey
octet string (1365,20) -subjectkey
bit string (1444,257)
octet string (1708,9) -small/mediumish
octet string (1736,128)
octet string (1880,20) -might go to reebee
octet string (1904,6) -small
integer (2055,16) -bootstrap?
integer (2121,16)
integer (2451,129) -rsa
integer (2583,3) - small
context specific (2958,20) -auth key
octet string (2989,20) -subjectkey
bit string (3068,257)
integer (3342,16)
integer (3621,257) -rsa
integer (3882,3) -small
octet string (4239,20) -subject key
context specific (4272,20) -authkey
bit string (4309,257)
integer (4583,16)
integer (4876,257) -rsa
integer (5137,3) - small
octet string (5525,20) -subject key
context specific (5558,20) -auth key
bit string (5595,257)
integer (5972,16) -bootstrap
octet string (6074,20) -messagedigest
octet string (6111,128) -rsa

psuedo code

#raw data as keys

keytest1 = assest der file octet string (83,36)
keytest2 = assest der file integer (496,16)
keytest3 = assest der file integer (827,129)
keytest4 = assest der file integer (959,9)
keytest5 = assest der file context specific (1334,20)
keytest6 = assest der file octet string (1365,20)
keytest7 = assest der file bit string (1444,257)
keytest8 = assest der file octet string (1708,9)
keytest9 = assest der file octet string (1736,128)
keytest10 = assest der file octet string (1880,20)
keytest11 = assest der file octet string (1904,6)
keytest12 = assest der file integer (2055,16)
keytest13 = assest der file integer (2121,16)
keytest14 = assest der file integer (2451,129)
keytest15 = assest der file integer (2583,3)
keytest16 = assest der file context specific (2958,20)
keytest17 = assest der file octet string (2989,20)
keytest18 = assest der file bit string (3068,257)
keytest19 = assest der file integer (3342,16)
keytest20 = assest der file integer (3621,257)
keytest21 = assest der file integer (3882,3)
keytest22 = assest der file octet string (4239,20)
keytest23 = assest der file context specific (4272,20)
keytest24 = assest der file bit string (4309,257)
keytest25 = assest der file integer (4583,16)
keytest26 = assest der file integer (4876,257)
keytest27 = assest der file integer (5137,3)
keytest28 = assest der file octet string (5525,20)
keytest29 = assest der file context specific (5558,20)
keytest30 = assest der file bit string (5595,257)
keytest31 = assest der file integer (5972,16)
keytest32 = assest der file octet string (6074,20)
keytest33 = assest der file octet string (6111,128)

#raw data as 128bit 16btye key

keytest1a = stringlenght16bytes(128bit) keytest1
keytest2a = stringlenght16bytes(128bit) keytest2
keytest3a = stringlenght16bytes(128bit) keytest3
keytest4a = stringlenght16bytes(128bit) keytest4
keytest5a = stringlenght16bytes(128bit) keytest5
keytest6a = stringlenght16bytes(128bit) keytest6
keytest7a = stringlenght16bytes(128bit) keytest7
keytest8a = stringlenght16bytes(128bit) keytest8
keytest9a = stringlenght16bytes(128bit) keytest9
keytest10a = stringlenght16bytes(128bit) keytest10
keytest11a = stringlenght16bytes(128bit) keytest11
keytest12a = stringlenght16bytes(128bit) keytest12
keytest13a = stringlenght16bytes(128bit) keytest13
keytest14a = stringlenght16bytes(128bit) keytest14
keytest15a = stringlenght16bytes(128bit) keytest15
keytest16a = stringlenght16bytes(128bit) keytest16
keytest17a = stringlenght16bytes(128bit) keytest17
keytest18a = stringlenght16bytes(128bit) keytest18
keytest19a = stringlenght16bytes(128bit) keytest19
keytest20a = stringlenght16bytes(128bit) keytest20
keytest21a = stringlenght16bytes(128bit) keytest21
keytest22a = stringlenght16bytes(128bit) keytest22
keytest23a = stringlenght16bytes(128bit) keytest23
keytest24a = stringlenght16bytes(128bit) keytest24
keytest25a = stringlenght16bytes(128bit) keytest25
keytest26a = stringlenght16bytes(128bit) keytest26
keytest27a = stringlenght16bytes(128bit) keytest27
keytest28a = stringlenght16bytes(128bit) keytest28
keytest29a = stringlenght16bytes(128bit) keytest29
keytest30a = stringlenght16bytes(128bit) keytest30
keytest31a = stringlenght16bytes(128bit) keytest31
keytest32a = stringlenght16bytes(128bit) keytest32
keytest33a = stringlenght16bytes(128bit) keytest33

#raw data converted to base64

keytest1b = base64 keytest1
keytest2b = base64 keytest2
keytest3b = base64 keytest3
keytest4b = base64 keytest4
keytest5b = base64 keytest5
keytest6b = base64 keytest6
keytest7b = base64 keytest7
keytest8b = base64 keytest8
keytest9b = base64 keytest9
keytest10b = base64 keytest10
keytest11b = base64 keytest11
keytest12b = base64 keytest12
keytest13b = base64 keytest13
keytest14b = base64 keytest14
keytest15b = base64 keytest15
keytest16b = base64 keytest16
keytest17b = base64 keytest17
keytest18b = base64 keytest18
keytest19b = base64 keytest19
keytest20b = base64 keytest20
keytest21b = base64 keytest21
keytest22b = base64 keytest22
keytest23b = base64 keytest23a
keytest24b = base64 keytest24a
keytest25b = base64 keytest25a
keytest26b = base64 keytest26a
keytest27b = base64 keytest27a
keytest28b = base64 keytest28a
keytest29b = base64 keytest29a
keytest30b = base64 keytest30a
keytest31b = base64 keytest31a
keytest32b = base64 keytest32a
keytest33b = base64 keytest33a

#raw data converted to base64 128bit 16btyes

keytest1c = stringlenght16bytes(128bit) keytest1b
keytest2c = stringlenght16bytes(128bit) keytest2b
keytest3c = stringlenght16bytes(128bit) keytest3b
keytest4c = stringlenght16bytes(128bit) keytest4b
keytest5c = stringlenght16bytes(128bit) keytest5b
keytest6c = stringlenght16bytes(128bit) keytest6b
keytest7c = stringlenght16bytes(128bit) keytest7b
keytest8c = stringlenght16bytes(128bit) keytest8b
keytest9c = stringlenght16bytes(128bit) keytest9b
keytest10c = stringlenght16bytes(128bit) keytest10b
keytest11c = stringlenght16bytes(128bit) keytest11b
keytest12c = stringlenght16bytes(128bit) keytest12b
keytest13c = stringlenght16bytes(128bit) keytest13b
keytest14c = stringlenght16bytes(128bit) keytest14b
keytest15c = stringlenght16bytes(128bit) keytest15b
keytest16c = stringlenght16bytes(128bit) keytest16b
keytest17c = stringlenght16bytes(128bit) keytest17b
keytest18c = stringlenght16bytes(128bit) keytest18b
keytest19c = stringlenght16bytes(128bit) keytest19b
keytest20c = stringlenght16bytes(128bit) keytest20b
keytest21c = stringlenght16bytes(128bit) keytest21b
keytest22c = stringlenght16bytes(128bit) keytest22b
keytest23c = stringlenght16bytes(128bit) keytest23b
keytest24c = stringlenght16bytes(128bit) keytest24b
keytest25c = stringlenght16bytes(128bit) keytest25b
keytest26c = stringlenght16bytes(128bit) keytest26b
keytest27c = stringlenght16bytes(128bit) keytest27b
keytest28c = stringlenght16bytes(128bit) keytest28b
keytest29c = stringlenght16bytes(128bit) keytest29b
keytest30c = stringlenght16bytes(128bit) keytest30b
keytest31c = stringlenght16bytes(128bit) keytest31b
keytest32c = stringlenght16bytes(128bit) keytest32b
keytest33c = stringlenght16bytes(128bit) keytest33b

#raw data as keys + contentid(converted to hex)

keytest1 = assest der file octet string (83,36) + contentid(converted to hex)
keytest2 = assest der file integer (496,16) + contentid(converted to hex)
keytest3 = assest der file integer (827,129) + contentid(converted to hex)
keytest4 = assest der file integer (959,9) + contentid(converted to hex)
keytest5 = assest der file context specific (1334,20) + contentid(converted to 
hex)
keytest6 = assest der file octet string (1365,20) + contentid(converted to hex)
keytest7 = assest der file bit string (1444,257) + contentid(converted to hex)
keytest8 = assest der file octet string (1708,9) + contentid(converted to hex)
keytest9 = assest der file octet string (1736,128) + contentid(converted to hex)
keytest10 = assest der file octet string (1880,20) + contentid(converted to hex)
keytest11 = assest der file octet string (1904,6) + contentid(converted to hex)
keytest12 = assest der file integer (2055,16) + contentid(converted to hex)
keytest13 = assest der file integer (2121,16) + contentid(converted to hex)
keytest14 = assest der file integer (2451,129) + contentid(converted to hex)
keytest15 = assest der file integer (2583,3) + contentid(converted to hex)
keytest16 = assest der file context specific (2958,20) + contentid(converted to 
hex)
keytest17 = assest der file octet string (2989,20) + contentid(converted to hex)
keytest18 = assest der file bit string (3068,257) + contentid(converted to hex)
keytest19 = assest der file integer (3342,16) + contentid(converted to hex)
keytest20 = assest der file integer (3621,257) + contentid(converted to hex)
keytest21 = assest der file integer (3882,3) + contentid(converted to hex)
keytest22 = assest der file octet string (4239,20) + contentid(converted to hex)
keytest23 = assest der file context specific (4272,20) + contentid(converted to 
hex)
keytest24 = assest der file bit string (4309,257) + contentid(converted to hex)
keytest25 = assest der file integer (4583,16) + contentid(converted to hex)
keytest26 = assest der file integer (4876,257) + contentid(converted to hex)
keytest27 = assest der file integer (5137,3) + contentid(converted to hex)
keytest28 = assest der file octet string (5525,20) + contentid(converted to hex)
keytest29 = assest der file context specific (5558,20) + contentid(converted to 
hex)
keytest30 = assest der file bit string (5595,257) + contentid(converted to hex)
keytest31 = assest der file integer (5972,16) + contentid(converted to hex)
keytest32 = assest der file octet string (6074,20) + contentid(converted to hex)
keytest33 = assest der file octet string (6111,128) + contentid(converted to 
hex)

#raw data as 128bit 16btye key

keytest1a = stringlenght16bytes(128bit) keytest1
keytest2a = stringlenght16bytes(128bit) keytest2
keytest3a = stringlenght16bytes(128bit) keytest3
keytest4a = stringlenght16bytes(128bit) keytest4
keytest5a = stringlenght16bytes(128bit) keytest5
keytest6a = stringlenght16bytes(128bit) keytest6
keytest7a = stringlenght16bytes(128bit) keytest7
keytest8a = stringlenght16bytes(128bit) keytest8
keytest9a = stringlenght16bytes(128bit) keytest9
keytest10a = stringlenght16bytes(128bit) keytest10
keytest11a = stringlenght16bytes(128bit) keytest11
keytest12a = stringlenght16bytes(128bit) keytest12
keytest13a = stringlenght16bytes(128bit) keytest13
keytest14a = stringlenght16bytes(128bit) keytest14
keytest15a = stringlenght16bytes(128bit) keytest15
keytest16a = stringlenght16bytes(128bit) keytest16
keytest17a = stringlenght16bytes(128bit) keytest17
keytest18a = stringlenght16bytes(128bit) keytest18
keytest19a = stringlenght16bytes(128bit) keytest19
keytest20a = stringlenght16bytes(128bit) keytest20
keytest21a = stringlenght16bytes(128bit) keytest21
keytest22a = stringlenght16bytes(128bit) keytest22
keytest23a = stringlenght16bytes(128bit) keytest23
keytest24a = stringlenght16bytes(128bit) keytest24
keytest25a = stringlenght16bytes(128bit) keytest25
keytest26a = stringlenght16bytes(128bit) keytest26
keytest27a = stringlenght16bytes(128bit) keytest27
keytest28a = stringlenght16bytes(128bit) keytest28
keytest29a = stringlenght16bytes(128bit) keytest29
keytest30a = stringlenght16bytes(128bit) keytest30
keytest31a = stringlenght16bytes(128bit) keytest31
keytest32a = stringlenght16bytes(128bit) keytest32
keytest33a = stringlenght16bytes(128bit) keytest33

#raw data + contentid(converted to hex) converted to base64

keytest1b = base64 keytest1 + contentid(converted to hex)
keytest2b = base64 keytest2 + contentid(converted to hex)
keytest3b = base64 keytest3 + contentid(converted to hex)
keytest4b = base64 keytest4 + contentid(converted to hex)
keytest5b = base64 keytest5 + contentid(converted to hex)
keytest6b = base64 keytest6 + contentid(converted to hex)
keytest7b = base64 keytest7 + contentid(converted to hex)
keytest8b = base64 keytest8 + contentid(converted to hex)
keytest9b = base64 keytest9 + contentid(converted to hex)
keytest10b = base64 keytest10 + contentid(converted to hex)
keytest11b = base64 keytest11 + contentid(converted to hex)
keytest12b = base64 keytest12 + contentid(converted to hex)
keytest13b = base64 keytest13 + contentid(converted to hex)
keytest14b = base64 keytest14 + contentid(converted to hex)
keytest15b = base64 keytest15 + contentid(converted to hex)
keytest16b = base64 keytest16 + contentid(converted to hex)
keytest17b = base64 keytest17 + contentid(converted to hex)
keytest18b = base64 keytest18 + contentid(converted to hex)
keytest19b = base64 keytest19 + contentid(converted to hex)
keytest20b = base64 keytest20 + contentid(converted to hex)
keytest21b = base64 keytest21 + contentid(converted to hex)
keytest22b = base64 keytest22 + contentid(converted to hex)
keytest23b = base64 keytest23 + contentid(converted to hex)
keytest24b = base64 keytest24 + contentid(converted to hex)
keytest25b = base64 keytest25 + contentid(converted to hex)
keytest26b = base64 keytest26 + contentid(converted to hex)
keytest27b = base64 keytest27 + contentid(converted to hex)
keytest28b = base64 keytest28 + contentid(converted to hex)
keytest29b = base64 keytest29 + contentid(converted to hex)
keytest30b = base64 keytest30 + contentid(converted to hex)
keytest31b = base64 keytest31 + contentid(converted to hex)
keytest32b = base64 keytest32 + contentid(converted to hex)
keytest33b = base64 keytest33 + contentid(converted to hex)

#raw data converted to base64 128bit 16btyes

keytest1c = stringlenght16bytes(128bit) keytest1b
keytest2c = stringlenght16bytes(128bit) keytest2b
keytest3c = stringlenght16bytes(128bit) keytest3b
keytest4c = stringlenght16bytes(128bit) keytest4b
keytest5c = stringlenght16bytes(128bit) keytest5b
keytest6c = stringlenght16bytes(128bit) keytest6b
keytest7c = stringlenght16bytes(128bit) keytest7b
keytest8c = stringlenght16bytes(128bit) keytest8b
keytest9c = stringlenght16bytes(128bit) keytest9b
keytest10c = stringlenght16bytes(128bit) keytest10b
keytest11c = stringlenght16bytes(128bit) keytest11b
keytest12c = stringlenght16bytes(128bit) keytest12b
keytest13c = stringlenght16bytes(128bit) keytest13b
keytest14c = stringlenght16bytes(128bit) keytest14b
keytest15c = stringlenght16bytes(128bit) keytest15b
keytest16c = stringlenght16bytes(128bit) keytest16b
keytest17c = stringlenght16bytes(128bit) keytest17b
keytest18c = stringlenght16bytes(128bit) keytest18b
keytest19c = stringlenght16bytes(128bit) keytest19b
keytest20c = stringlenght16bytes(128bit) keytest20b
keytest21c = stringlenght16bytes(128bit) keytest21b
keytest22c = stringlenght16bytes(128bit) keytest22b
keytest23c = stringlenght16bytes(128bit) keytest23b
keytest24c = stringlenght16bytes(128bit) keytest24b
keytest25c = stringlenght16bytes(128bit) keytest25b
keytest26c = stringlenght16bytes(128bit) keytest26b
keytest27c = stringlenght16bytes(128bit) keytest27b
keytest28c = stringlenght16bytes(128bit) keytest28b
keytest29c = stringlenght16bytes(128bit) keytest29b
keytest30c = stringlenght16bytes(128bit) keytest30b
keytest31c = stringlenght16bytes(128bit) keytest31b
keytest32c = stringlenght16bytes(128bit) keytest32b
keytest33c = stringlenght16bytes(128bit) keytest33b

#asset file keys

keytest1d = assetfile(token) + contentidvalue(converted to base64)
keytest2d = manifestfile(bootstrapvalue) + contentidvalue(converted to base64)
keytest3d = manifestfile(drmadditionalvalue) + contentidvalue(converted to 
base64)
keytest3d = manofestfile(metadatavalue) + contentidvalue(converted to base64)

#assest file keys 128bit 16btye

keytest1e = stringlenght16bytes(128bit) keytest1d
keytest2e = stringlenght16bytes(128bit) keytest2d
keytest3e = stringlenght16bytes(128bit) keytest3d
keytest4e = stringlenght16bytes(128bit) keytest4d

#asset files keys hex

keytest1f = converttohex keytest1d
keytest2f = converttohex keytest2d
keytest3f = converttohex keytest3d
keytest4f = converttohex keytest4d

#asset files keys hex 128bit 16btyes

keytest1g = stringlenght16bytes(128bit) keytest1f
keytest2g = stringlenght16bytes(128bit) keytest2f
keytest3g = stringlenght16bytes(128bit) keytest3f
keytest4g = stringlenght16bytes(128bit) keytest4f

Original comment by andrewcr...@gmail.com on 14 Nov 2012 at 7:16

GoogleCodeExporter commented 8 years ago
Response to my complaint to Channel 4 that 4od no longer works under linux:-

Dear David,

Thank you for your email regarding 4oD.

This could be an issue with the fact you are unable to upgrade your Flash 
Player.

However we have been advised by a Linux user that if you download the 'HAL' 
package from the Linux resource files this can fix this issue.

If you require further information, feel free to email me back or visit 
http://www.channel4.com/4viewers/faq

I'm not sure that this is very helpful - hasn't HAL been replaced by udev or 
dbus or something - I'm sure we don't use it any more - and I can't see how 
software that is involved with the Hardware Abstraction Layer is going to solve 
a flash video problem.

Maybe something got lost in the translation.

Hope this helps (but doubt it)
David 
Kind regards,

Doug Masterson
4oD Support

Original comment by ford.dav...@gmail.com on 20 Nov 2012 at 4:58

GoogleCodeExporter commented 8 years ago
HAL wont help a flash issue its to do with the player and unless you can update 
the player and background stuff like in windows it wont matter, even udev which 
has replaced HAL wont help it for hardware SAL might have been better way to 
describe it, and they failed to meantion if the linux user is using wine so 
emulating windows in some ways

hopefully nj can incorparate the above possible keys into his script so we can 
see how it goes after them ther ento many other possibles left but there could 
be a ew more, but the biggest problem could be we dnt know how it is 
transmitted it oculd be we have the key already but because it transmitted 
wrongly we cant decypt,and the documention does not say how it transmitted

Original comment by andrewcr...@gmail.com on 20 Nov 2012 at 7:49

GoogleCodeExporter commented 8 years ago
Adobe stopped Flash Updates for Linux, unless it's Chrome. Chrome
doesn't work for protected content, as used on Channel 4 or Channel 5.
Even windows see messages like cannot "play protected content". I can't
see comments about channel 4, haven't looked very hard, I do see
comments about channel 5 new content protection, tried it myself, and
it's appalling, sounds terrible, playing very jerky. Lots messages like
"I gave up", and quite a few messages removed by the moderator. Doesn't
play under Linux either or didn't.

I did find this,

http://helpx.adobe.com/x-productkb/multi/flash-player-11-problems-playing.html#i
d_48891

Prerequisites for protected content playback

For Ubuntu 10.04 or later, ensure that the Hardware Abstraction Layer
module is first installed using apt-get.
(Watch carefully for �hal� install errors, as a damaged package install
can continue to affect video playback.)

sudo apt-get install hal

After the "libhal" (HAL) library install completes, close the browser
and clear the Adobe Access directories by executing the following shell
commands:

cd ~/.adobe/Flash_Player
rm -rf NativeCache AssetCache APSPrivateData2

Note:

If the Hardware Abstraction Layer module is missing, Flash Player still
functions. However, it cannot play protected content that requires the
Adobe Flash Access DRM (Digital Rights Management) module.

In the end I managed to get Debian Squeeze working both for Channel 4
and Channel 5, had to uninstall the flash and reinstall, it was using
flashplayer version 10 for iceweasel (firefox). Now I have version
11.2.202.251, and that plays both Channel 4 and Channel 5 content using
iceweasel. The updating doesn't work for some reason left me with
version 10. The full HD resolution is never going to work at least not
here with the broadband speed. Also there was a comment that with Flash
11 the hardware acceleration has been disabled, doubt it's ever going to
give a decent playback. I also noticed the advert countdown going down
then jumping backwards, even more adverts and if you try switch to
different resolution, it plays the adverts from the start again. Checked
Chrome again, and Chrome has a later version of Flash player, and that's
broken. Need firefox/iceweasel with version 11.2.202.251 that appears to
work, other versions of flash player might work for Linux.

As for Channel 4 response, "advised by a Linux user" - not impressed.

Original comment by njtaylor...@gmail.com on 21 Nov 2012 at 1:06

GoogleCodeExporter commented 8 years ago
Trying to do above for Fedora Core 17

yum install hal
No package hal available

ls -Al ~/.adobe
No such file or directory

So anyway:
Remove flash player
open Firefox
go to 4od
you need to upgrade
go to adobe
download and install latest greatest
close firefox - just in case
open firefox
go to 4od
you need to upgrade
Give up

David

Original comment by ford.dav...@gmail.com on 21 Nov 2012 at 3:59

GoogleCodeExporter commented 8 years ago
Fedora 17 I don't have a copy here. Does firefox actually show the plugin 
version as 11.2, check by going to Tools / Add-Ons / Plugins should tell you 
the version, if not 11.2 it's an install issue rather than 4od.

Original comment by njtaylor...@gmail.com on 24 Nov 2012 at 4:34

GoogleCodeExporter commented 8 years ago
Hi - I eventually found libhal for Fedora Core 15 and I have installed it - it 
seemed to go OK (just hope it hasn't broken anything!)

I've got Flash 11.2 r202 installed in Firefox and showing on the plugins list.
I now have a .adobe directory!

We have some progress - after watching millions of adverts and trying 
restarting Firefox and removing the Cache directories etc. in various different 
orders - I get 

"A digital rights error has occured" - hmmm.

David 

Original comment by ford.dav...@gmail.com on 24 Nov 2012 at 10:02

GoogleCodeExporter commented 8 years ago
Just re-read your post - so closed Chrome and reopened it now that hal is 
installed - still doesn't work at all - not even the adverts

David

Original comment by ford.dav...@gmail.com on 24 Nov 2012 at 10:09

GoogleCodeExporter commented 8 years ago
I couldn't get chrome to work, only firefox.

Your not alone, did a search and a lot of reports of the same issue - "digital 
rights error" not on linux but windows and macs. Listed in the 4od issues with 
things to try - doubt they will be of much help. Does suggest it's mainly US 
shows. I was trying a episode from Dispatches, could have tried some other 
don't recall which. Will give a few other shows a try, when I get a chance.

Original comment by njtaylor...@gmail.com on 24 Nov 2012 at 10:49

GoogleCodeExporter commented 8 years ago
Updated script as attached to extract the keys suggested and ended up with more 
than your list. Haven't tried all the combinations yet, but so far, haven't 
found a key.

Original comment by njtaylor...@gmail.com on 24 Nov 2012 at 11:02

Attachments:

GoogleCodeExporter commented 8 years ago
it wont work on linux full stop because adobe stop making flash player updates 
for linux and hds requires lastest version.

the problem is how do they combine or add them ive ntoa clue yet and the 
document doesnt say i am half tempt to install the hds server

Original comment by andrewcr...@gmail.com on 25 Nov 2012 at 5:50

GoogleCodeExporter commented 8 years ago
i was thinking is it possible with perl to generate multi keys what i mean is, 
we know the decrytion key is 128bit long and in base64 or hex so could the 
script generate every possible key value intially on segment one until it found 
the one that decryts it? so start at say 00000000000000 through to 
FFFFFFFFFFFFFFF etc bae64 obviously requires characters to so there could be 
millions of possibles

Original comment by andrewcr...@gmail.com on 25 Nov 2012 at 9:56

GoogleCodeExporter commented 8 years ago
It will take too long to try all the possibilities.

Original comment by njtaylor...@gmail.com on 26 Nov 2012 at 3:38

GoogleCodeExporter commented 8 years ago
i guessed that but i am willing to let it run on my machine and once have got 
the key we can reverse engingeer the commonkey from that

Original comment by andrewcr...@gmail.com on 26 Nov 2012 at 4:59

GoogleCodeExporter commented 8 years ago
For AES-128 I saw an estimate of 1.02 x 10^18 years. 2^128 is approx 3.40 x 
10^38. If using
e = aes(d, md5(ci . ck), iv)
where ci = content id, ck = common key 128bits, iv is known 128bits, d is a 
data block
e is the encrypted result.
md5 is a 128bit hash and this would also take time to reverse. Reverse 
engineering the common key may not be as simple as addition, md5 is one example.

Original comment by njtaylor...@gmail.com on 26 Nov 2012 at 7:09

GoogleCodeExporter commented 8 years ago
very true ive still got a few potentials for the key but if we try them alll 
and nothing attempt everything might be the only way, wonder if i could tap 
into power of other users willing to sahre power of there machine to decipher 
it quicker, but i think we put this way of potential reverse engineer to later, 
hopefully we can find the acutally key

Original comment by andrewcr...@gmail.com on 26 Nov 2012 at 9:12

GoogleCodeExporter commented 8 years ago
Note see Issue 460, PS3 is still not encrypted. Using ID between -/+ 5 of the 
ID, will get the PS3 version, just have to try each ID until hit the one 
wanted. A temporary solution for now. This still will be kept open to solve, or 
rather Channel 5 is also encrypted, and need a solution, which is the same 
problem finding the key.

Original comment by njtaylor...@gmail.com on 11 Dec 2012 at 11:53

GoogleCodeExporter commented 8 years ago
or go to http://ps3.channel4.com/ and find what your looking for from there but 
it has no search feature nor does it keep a lot

Original comment by andrewcr...@gmail.com on 12 Dec 2012 at 3:04

GoogleCodeExporter commented 8 years ago
Just as an aside, as it seems that work to decrypt has stalled, Monsieur (my 
co-developer) once had the absolutely crazy idea of implementing an 
ActionScript VM for gfv. This way, we'd just run the ActionScript code, but 
hook the appropriate places so we could access the keys and so on. I'm pretty 
sure this suggestion was made after several drinks, but sometimes crazy ideas 
like this have something to them...

Original comment by zakflash...@gmail.com on 14 Dec 2012 at 8:55

GoogleCodeExporter commented 8 years ago
More and more content providers are switching over to this encrypted format, 
TOU.TV changed their format this week and turned out they also encrypt. 
Apparently Akamai is the content management provider which means it can be 
adopted by even more.

Original comment by aulisme...@gmail.com on 14 Dec 2012 at 10:05

GoogleCodeExporter commented 8 years ago
https://github.com/K-S-V/Scripts AdobeHDS.php script updated 2 days ago, but it 
still cannot handle DRM fragments. Even if I manually download all fragments, 
AdobeHDS does not join them... any solution recently about this?

Original comment by rubiohig...@gmail.com on 29 Mar 2013 at 1:42

GoogleCodeExporter commented 8 years ago
Channel 4 works, by using the ps3 download. I have done no more on the drm/HDS.

Original comment by njtaylor...@gmail.com on 29 Mar 2013 at 2:07

GoogleCodeExporter commented 8 years ago
ps3 channel 4 site has now closed - is there an alternative?

Original comment by mathew.h...@gmail.com on 15 Aug 2013 at 2:33

GoogleCodeExporter commented 8 years ago
try  m.channel4.com/4od

Original comment by richard....@gmail.com on 15 Aug 2013 at 2:37