PDA

View Full Version : SWF Verification of RTMPE stream: How to get SWFHash


any ANONYMOUS forum user
06-19-2009, 07:29 AM
Hi

How to get "swfhash|-w hexstring SHA256 hash of the decompressed SWF file (32 bytes)"?

but in this case itīs a mp4 file
rtmpe://cp71915.edgefcs.net/ondemand/?auth=eaEd_d_d_d_d_d_d_d_d_d_d_d_d_d_d_d_b7a2btdNb lcaaFcWdbdEbidybEcGdMb7-bkopb3-vga-4qoGDqRxmEt&aifp=v006&slist=c1/s/1314116/video.mp4

could you please help me ?

thanks

Stream Recorder
06-19-2009, 07:38 AM
According to RTMPDump 1.6 Readme by Andrej Stepanchuk:
Download the swf player you want to use for SWFVerification, unzip it using
$ flasm -x file.swf

It will show the decompressed filesize, use it for --swfsize

Now generate the hash
$ openssl sha -sha256 -hmac "Genuine Adobe Flash Player 001" file.swf

and use the --swfhash "01234..." option to pass it. e.g.
$ ./rtmpdump --swfhash "123456..." --swfsize 987...

flysub
06-19-2009, 08:53 AM
How to get "swf player"? before i catched with Replay Media Catcher (http://all-streaming-media.com/record-video-stream/Replay-Media-Catcher-HTTP-RTMP-FLV-MP3-ripper-recorder.htm) or Jaksta (http://all-streaming-media.com/record-video-stream/Jaksta-Streaming-Media%20Recorder-and-Converter.htm) but now doesn't work..

Stream Recorder
06-19-2009, 08:58 AM
How to get "swf player"? before i catched with Replay Media Catcher (http://all-streaming-media.com/record-video-stream/Replay-Media-Catcher-HTTP-RTMP-FLV-MP3-ripper-recorder.htm) or Jaksta (http://all-streaming-media.com/record-video-stream/Jaksta-Streaming-Media%20Recorder-and-Converter.htm) but now doesn't work..
SWF files are cached by your web-browser. You may copy them from there.

You may clear the cache of your web-browser and download SWF files with Replay Media Catcher (http://all-streaming-media.com/record-video-stream/Replay-Media-Catcher-HTTP-RTMP-FLV-MP3-ripper-recorder.htm) or Jaksta (http://all-streaming-media.com/record-video-stream/Jaksta-Streaming-Media%20Recorder-and-Converter.htm),...

You may also view the source of a page and find the URL of the SWF file.

any ANONYMOUS forum user
06-19-2009, 10:41 AM
Hi

i follow the procedure, everything looks ok but appears:

"ERROR: ReadN, RTMP recv error 10060
ERROR: ReadPacket, failed to read RTMP packet header"

any ideas ? :confused:


thanks

flysub
06-22-2009, 01:15 PM
i'm just trying to download with rtmpdump. i'm trying to download RTMPE with SWF Verification but i had no luck. i followed all intructions but doesn't work... this is how i trying:

according to rtmpdump's README:
Download the swf player you want to use for SWFVerification, unzip it using
$ flasm -x file.swf
It will show the decompressed filesize, use it for --swfsize
Now generate the hash
$ openssl sha -sha256 -hmac "Genuine Adobe Flash Player 001" file.swf
and use the --swfhash "01234..." option to pass it. e.g.
$ ./rtmpdump --swfhash "123456..." --swfsize 987...

name:player3.swf
size:557 kb

$ flasm -x player3.swf

name=player3.$wf
swfzise=336 kb

$ openssl sha -sha256 -hmac "Genuine Adobe Flash Player 001" player3.swf

swfhash : HMAC-SHA256(player3.swf)= f8331c93aad6d8c57dd4ab70913697c24a71a28f2d876eda07 b70ac20af34460

url: rtmpe://xxxx.mp4



C:\>rtmpdump --swfhash "f8331c93aad6d8c57dd4ab70913697c24a71a28f2d876eda07 b70ac2
0af34460" --swfsize 336 -r "rtmpe:xxxx.mp4" -o video.mp4
RTMPDump v1.6
(c) 2009 Andrej Stepanchuk, license: GPL
DEBUG: Parsing...
DEBUG: Parsed protocol: 3
DEBUG: Parsed host : xxxxx
DEBUG: Parsed app : ondemand/?auth=eaEd_d_d_d_d_d_d_d_d_d_d_d_d_d_d_d_aWcMa8
cFabdZcda6dscacoc0cHbsdAay-bko7kw-vga-4qoGDqRxmEt&aifp=v006&slist=c1/s/1
314116/video.mp4
DEBUG: Parsed playpath: c1/s/1314116/video.mp4
DEBUG: Setting buffer time to: 36000000ms
Connecting ...
DEBUG: Protocol : RTMPE
DEBUG: Hostname : xxxx
DEBUG: Port : 1935
DEBUG: Playpath : c1/s/1314116/video.mp4
DEBUG: tcUrl : rtmpe://xxxx:1935/ondemand/?auth=eaEd_d_d_d_d_d
_d_d_d_d_d_d_d_d_d_d_aWcMa8cFabdZcda6dscacoc0cHbsd Aay-bko7kw-vga-4qoGDqRxmEt&amp
;aifp=v006&slist=c1/s/1314116/video.mp4
DEBUG: app : ondemand/?auth=eaEd_d_d_d_d_d_d_d_d_d_d_d_d_d_d_d_aWcMa8cFa bdZ
cda6dscacoc0cHbsdAay-bko7kw-vga-4qoGDqRxmEt&aifp=v006&slist=c1/s/1314116
/video.mp4
DEBUG: flashVer : LNX 9,0,124,0
DEBUG: live : no
DEBUG: timeout : 300 sec
DEBUG: SWFSHA256:
F8 33 1C 93 AA D6 D8 C5 7D D4 AB 70 91 36 97 C2 4A 71 A2 8F 2D 87 6E DA 07 B7 0A
C2 0A F3 44 60
DEBUG: SWFSize : 336
DEBUG: Connect, ... connected, handshaking
DEBUG: HandShake: Client type: 06
DEBUG: HandShake: DH pubkey position: 1215
DEBUG: HandShake: Client digest offset: 410
DEBUG: HandShake: Initial client digest:
81 08 CE 34 40 31 7F 01 64 95 BC 7C A0 4C 5C 5C 14 41 00 E9 A5 F3 2A F5 23 D2 5F
16 4F 6B AB 47
DEBUG: HandShake: Type Answer : 06
DEBUG: HandShake: Server Uptime : 1891095136
DEBUG: HandShake: FMS Version : 3.0.3.1
DEBUG: HandShake: Server DH public key offset: 425
DEBUG: HandShake: Secret key:
D8 78 4D 82 E4 74 AD B2 31 04 24 D9 CA 86 FC 56 14 AD 31 DB 7D 01 D4 E9 AD C1 FB
B8 E5 6C 43 ED 8D 3C FF 36 50 B8 CB 7E 48 0D 0E 69 20 1E E2 38 BA 5A 6F 79 84 A
5 C4 AB B7 CB 2E F7 12 A3 B1 58 81 1F BE 12 22 ED 41 C1 E4 F9 D1 29 61 68 42 80
50 80 15 55 40 E3 14 9B A9 4E 86 1A 11 13 B9 F0 1B 8F AD DD 6B 18 6D 3D 80 D8 E4
AA E9 50 F6 8D 73 7B CF 76 D2 50 C4 20 67 00 58 77 D2 25 F0 ED
DEBUG: RC4 Out Key:
A6 7E 2E 1E 6A 0E 5D 0C 8B 3E 84 3B 37 50 43 8D
DEBUG: RC4 In Key:
3F 20 B2 45 DC 8E 8E E2 33 78 BD 01 97 FC B1 FA
DEBUG: HandShake: Client signature digest position: 410
DEBUG: HandShake: Digest key:
3E 80 DA 42 21 4A 56 CF 61 9B 99 1C CB F2 4B 5A 9D 0D 89 63 E8 DF 37 E8 A1 77 CE
7D 89 30 31 3D
DEBUG: HandShake: Signature calculated:
32 CB 3B FF E9 B9 4F 43 40 D0 E1 50 9E A5 23 20 6C DC 2F DA 57 AF 29 38 61 6A 07
B9 E6 55 0C DC
DEBUG: HandShake: Server sent signature:
32 CB 3B FF E9 B9 4F 43 40 D0 E1 50 9E A5 23 20 6C DC 2F DA 57 AF 29 38 61 6A 07
B9 E6 55 0C DC
DEBUG: HandShake: Genuine Adobe Flash Media Server
DEBUG: HandShake: Calculated digest key from secure key and server digest:
35 3D 6C E9 33 43 ED 05 A6 CA 06 3C 3D 98 A9 6B 40 B7 6B 80 A8 7F B4 2E 59 83 E5
C9 1A DA D5 F6
DEBUG: HandShake: Client signature calculated:
D8 88 8B EB 3B 29 74 DF FE DE A7 AC F8 79 F6 EB 23 90 90 73 C8 3D 87 1B 35 35 65
E4 A7 2B D6 AB
DEBUG: HandShake: Handshaking finished....
DEBUG: Connect, handshaked
Connected...
Starting download at 0.000 KB
DEBUG: GetNextMediaPacket, received: invoke 134 bytes
DEBUG: Property: <Name: no-name., STRING: _error>
DEBUG: Property: <Name: no-name., NUMBER: 1.00>
DEBUG: Property: NULL
DEBUG: Property: <Name: no-name., OBJECT>
DEBUG: Property: <Name: level, STRING: error>
DEBUG: Property: <Name: code, STRING: NetConnection.Co
nnect.Rejected>
DEBUG: Property: <Name: description, STRING: [ AccessManager.
Reject ] : Access denied!>
DEBUG: HandleInvoke, server invoking <_error>
ERROR: rtmp server sent error
DEBUG: GetNextMediaPacket, received: invoke 18 bytes
DEBUG: Property: <Name: no-name., STRING: close>
DEBUG: Property: <Name: no-name., NUMBER: 0.00>
DEBUG: HandleInvoke, server invoking <close>
ERROR: rtmp server requested close
Closing connection... done!

can anyone help me ? thanks

noob2001204
06-22-2009, 07:45 PM
hi flysub,how do you get rtmpe url?

compn
06-22-2009, 09:01 PM
i think your swfsize is incorrect

you have to use the bytes, like... --swfsize 545228
and probably add the --swfurl "http://xxxx.com/player3.swf"

good luck!

flysub
06-23-2009, 07:25 AM
Hi noob2001204


you can get rtmp url trough the source of a page and then you copy this code any urldecoder

Regards

any ANONYMOUS forum user
06-23-2009, 11:59 AM
i am trying with both sizes but doesn't work..

player4.swf 569 kb = 582656
decompress swf 342 kb 350208


C:\>rtmpdump -r "rtmpe://xxxx/ondemand/?auth=eaEd_d_d_d_d_d_d_d_d
_d_d_d_d_d_d_d_c_b5cAaAbzc3cxaScgaZcMb_bTa_bKbV-bkqm7v-vga-4qoGDqRxmEt&amp;aifp=
v006&amp;slist=c1/s/1314116/video.mp4" --swfhash "da3d5ff5807fb4409e6d4683baef32
824e58f59fb2d5c4c4ed44e21068a2ddcf" --swfsize 350208 -s "www.xxx.com/fla
sh/20090622124542.1f20a7148af751985b0b688c43702f45/player.swf" -o video.mp4 --
RTMPDump v1.6
(c) 2009 Andrej Stepanchuk, license: GPL

DEBUG: Parsing...
DEBUG: Parsed protocol: 3
DEBUG: Parsed host : xxxx.net
DEBUG: Parsed app : ondemand/?auth=eaEd_d_d_d_d_d_d_d_d_d_d_d_d_d_d_d_c_b5cA
aAbzc3cxaScgaZcMb_bTa_bKbV-bkqm7v-vga-4qoGDqRxmEt&amp;aifp=v006&amp;slist=c1/s/1
314116/video.mp4
DEBUG: Parsed playpath: c1/s/1314116/video.mp4
DEBUG: Setting buffer time to: 36000000ms
Connecting ...
DEBUG: Protocol : RTMPE
DEBUG: Hostname : xxxxx.net
DEBUG: Port : 1935
DEBUG: Playpath : c1/s/1314116/video.mp4
DEBUG: tcUrl : rtmpe://xxxx.net:1935/ondemand/?auth=eaEd_d_d_d_d_d
_d_d_d_d_d_d_d_d_d_d_c_b5cAaAbzc3cxaScgaZcMb_bTa_b KbV-bkqm7v-vga-4qoGDqRxmEt&amp
;aifp=v006&amp;slist=c1/s/1314116/video.mp4
DEBUG: swfUrl : xxxx.com/flash/20090622124542.1f20a7148af751985b0b6
88c43702f45/player.swf
DEBUG: app : ondemand/?auth=eaEd_d_d_d_d_d_d_d_d_d_d_d_d_d_d_d_c_b5cAaAb zc3
cxaScgaZcMb_bTa_bKbV-bkqm7v-vga-4qoGDqRxmEt&amp;aifp=v006&amp;slist=c1/s/1314116
/video.mp4
DEBUG: flashVer : LNX 9,0,124,0
DEBUG: live : no
DEBUG: timeout : 300 sec
DEBUG: SWFSHA256:
DA 3D 5F F5 80 7F B4 40 9E 6D 46 83 BA EF 32 82 4E 58 F5 9F B2 D5 C4 C4 ED 44 E2
10 68 A2 DD CF
DEBUG: SWFSize : 350208
DEBUG: Connect, ... connected, handshaking
DEBUG: HandShake: Client type: 06

DEBUG: HandShake: DH pubkey position: 1215
DEBUG: HandShake: Client digest offset: 410
DEBUG: HandShake: Initial client digest:
45 AA 91 1C 49 37 46 FB E3 93 34 92 44 3F A3 3E 1E 70 65 23 51 8D DC EB BF 23 C7
62 35 7A 21 57
DEBUG: HandShake: Type Answer : 06
DEBUG: HandShake: Server Uptime : 515343227
DEBUG: HandShake: FMS Version : 3.0.3.1
DEBUG: HandShake: Server DH public key offset: 128
DEBUG: HandShake: Secret key:
CD BF BA D9 DE 3A 2B 0B 15 BC 94 DA 79 2A 8F 00 9B CC B3 FB AF 51 01 90 55 38 A7
81 17 6F F3 68 D2 66 0E 1F F7 22 16 87 C2 75 AE FB 1F 45 9B D5 45 FE A9 C7 C3 D
5 B7 C2 B1 D5 C6 30 57 02 3F 90 EA 8F A5 E9 7F FC E0 1D 1F 76 29 F6 1F E8 3B 9B
A5 5F BE A4 C3 EC 20 6A B4 A0 8A A4 FE C6 C2 EC 20 01 BE A5 2C F8 C1 77 9F E6 20
6B AE 9B 54 BD C1 C0 E6 8C C1 57 F9 D9 62 A3 A4 69 1A 09 29 4E
DEBUG: RC4 Out Key:
3F 25 DD AA F1 CA 0B 49 13 DF FA C0 F5 EB 4B 5F
DEBUG: RC4 In Key:
BA E9 FF C8 E2 D1 4B 94 87 F4 8D D3 FC 8A 4A 6D
DEBUG: HandShake: Client signature digest position: 410
DEBUG: HandShake: Digest key:
0F 5E 5E D5 C9 DE 18 B7 70 B1 2F D5 25 6E B6 C4 F5 98 DF FB 38 DB CC 69 C4 A1 BF
CB E6 A2 68 6C
DEBUG: HandShake: Signature calculated:
3A 0B 4C E6 FF D2 B8 42 B4 5A 46 DC 6D B7 9F 6D D8 46 1D 01 E2 63 29 90 7B E9 89
B2 6C 50 D6 CC
DEBUG: HandShake: Server sent signature:
3A 0B 4C E6 FF D2 B8 42 B4 5A 46 DC 6D B7 9F 6D D8 46 1D 01 E2 63 29 90 7B E9 89
B2 6C 50 D6 CC
DEBUG: HandShake: Genuine Adobe Flash Media Server
DEBUG: HandShake: Calculated digest key from secure key and server digest:
B7 4A 5F DB 57 9D FE 63 03 A2 B0 62 88 97 C2 0A 9E 7C 74 17 5F 9D D7 94 25 79 A0
DA FB D3 85 00
DEBUG: HandShake: Client signature calculated:
F7 12 21 49 0E 05 81 BD 6F 62 44 B0 40 73 A3 94 C4 01 E4 90 29 69 D5 3B B8 C6 9E
8F 95 0E 00 D8
DEBUG: HandShake: Handshaking finished....
DEBUG: Connect, handshaked
Connected...

Starting download at 0.000 KB
DEBUG: GetNextMediaPacket, received: server BW
DEBUG: GetNextMediaPacket, received: client BW
DEBUG: HandlePing, received ping. type: 0, len: 6
DEBUG: HandlePing, received ping. type: 26, len: 2
DEBUG: HandlePing, SWFVerification ping received:
DEBUG: sending ping. type: 0x001b
DEBUG: Sending SWFVerification response:
00 1B 01 01 00 05 58 00 00 05 58 00 04 9F E8 34 C7 01 31 2B D2 9D EF 76 F2 1E 33
58 71 6E 3C 1A 84 39 2C D6 64 04 1C 87 7D FE D6 5A
DEBUG: GetNextMediaPacket, received: invoke 190 bytes
DEBUG: Property: <Name: no-name., STRING: _result>
DEBUG: Property: <Name: no-name., NUMBER: 1.00>
DEBUG: Property: <Name: no-name., OBJECT>
DEBUG: Property: <Name: fmsVer, STRING: FMS/3,0,3,333>
DEBUG: Property: <Name: capabilities, NUMBER: 31.00>
DEBUG: Property: <Name: no-name., OBJECT>
DEBUG: Property: <Name: level, STRING: status>
DEBUG: Property: <Name: code, STRING: NetConnection.Co
nnect.Success>
DEBUG: Property: <Name: description, STRING: Connection succe
eded.>
DEBUG: Property: <Name: objectEncoding, NUMBER: 0.00>
DEBUG: HandleInvoke, server invoking <_result>
DEBUG: HandleInvoke, received result for method call <connect>
DEBUG: sending ping. type: 0x0003
DEBUG: GetNextMediaPacket, received: invoke 21 bytes
DEBUG: Property: <Name: no-name., STRING: onBWDone>
DEBUG: Property: <Name: no-name., NUMBER: 0.00>
DEBUG: HandleInvoke, server invoking <onBWDone>
ERROR: ReadN, RTMP recv error 10060
ERROR: ReadPacket, failed to read RTMP packet header
Closing connection... done!


anybody help ? thanks