[ Homepage ]   [ RSS-Feed | Liesmich | Archiv ]  [ Format: XML+XSLT oder XHTML ]

PyroPeters Blog

Wed, 5 Jan 2011 00:20:55 +0100

Update: Setting up a new harddrive using fdisk, cryptsetup, mkfs

/etc/fstab
---[ /bash ]--------------------------------------------------------------------
You should also keep in mind all your commands are logged to .bash_history, so
you may want to delete that file if it contains information about the key file.
================================================================================
=== Resizing ===================================================================
TODO (see [06])
=== Growing
---[ bash ]---------------------------------------------------------------------
[root@eddie ~]# umount /mnt/p30jDcdBh/
[root@eddie ~]# umount /mnt/hint-p30jDcdBh/
[root@eddie ~]# cryptsetup -v luksClose p30jDcdBh
semid 688128: semop failed for cookie 0xd4dda7f: incorrect semaphore state
Failed to set a proper state for notification semaphore identified by cookie \
value 223206015 (0xd4dda7f) to initialize waiting for incoming notifications.
Command successful.
[root@eddie ~]# fdisk /dev/sdc
Command (m for help): p
Disk /dev/sdc: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x9b5a99c6
Device Boot Start End Blocks Id System
/dev/sdc1 2048 12287 5120 83 Linux
/dev/sdc2 12288 1048588287 524288000 83 Linux
Command (m for help): d
Partition number (1-4): 2
Command (m for help): p
Disk /dev/sdc: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x9b5a99c6
Device Boot Start End Blocks Id System
/dev/sdc1 2048 12287 5120 83 Linux
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4, default 2):
Using default value 2
First sector (12288-3907029167, default 12288):
Using default value 12288
Last sector, +sectors or +size{K,M,G} (12288-3907029167, default 3907029167): \
+1500G
Command (m for help): p
Disk /dev/sdc: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x9b5a99c6
Device Boot Start End Blocks Id System
/dev/sdc1 2048 12287 5120 83 Linux
/dev/sdc2 12288 3145740287 1572864000 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@eddie ~]# mount /mnt/hint-p30jDcdBh/
[root@eddie ~]# fdisk -l /dev/sdc > /mnt/hint-p30jDcdBh/partitions
[root@eddie ~]# cryptsetup -v luksOpen /dev/sdc2 p30jDcdBh --key-file foobar.key
[root@eddie ~]# e2fsck -f /dev/mapper/p30jDcdBh
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
p30jDcdBh: 23683/32768000 files (2.5% non-contiguous), 108876078/131071743 \
blocks
[root@eddie ~]# resize2fs /dev/mapper/p30jDcdBh
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/mapper/p30jDcdBh to 393215743 (4k) blocks.
The filesystem on /dev/mapper/p30jDcdBh is now 393215743 blocks long.
[root@eddie ~]# e2fsck -f /dev/mapper/p30jDcdBh
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
p30jDcdBh: 23683/98304000 files (2.5% non-contiguous), 112989103/393215743 \
blocks
[root@eddie ~]# mount /dev/mapper/p30jDcdBh /mnt/p30jDcdBh/
[root@eddie ~]# df -h | grep /p30jDcdBh
/dev/mapper/p30jDcdBh
1.5T 408G 994G 30% /mnt/p30jDcdBh
---[ /bash ]--------------------------------------------------------------------
================================================================================
=== Weblinks ===================================================================

Mon, 1 Nov 2010 00:07:18 +0100

New: Setting up a new harddrive using fdisk, cryptsetup, mkfs

ooooo ooo ooooo ooooo oooooooooo.
`888b. `8' `888' `888' `888' `Y8b
8 `88b. 8 .ooooo. oooo oooo ooo 888 888 888 888
8 `88b. 8 d88' `88b `88. `88. .8' 888ooooo888 888 888
8 `88b.8 888ooo888 `88..]88..8' 888 888 888 888
8 `888 888 .o `888'`888' 888 888 888 d88'
o8o `8 `Y8bod8P' `8' `8' o888o o888o o888bood8P'
888 888888 888 888 .d8888b.
888 o 888888 888 888 d88P Y88b
888 d8b 888888 888 888 .d88P
888 d888b 88888888b. 8888b. 888888 88888b. .d88b. 888 888888888 .d88P"
888d88888b888888 "88b "88b888 888 "88bd8P Y8b`Y8bd8P'888 888"
88888P Y88888888 888.d888888888 888 88888888888 X88K 888 888
8888P Y8888888 888888 888Y88b. 888 888Y8b. .d8""8b.Y88b.
888P Y888888 888"Y888888 "Y888 888 888 "Y8888 888 888 "Y888 888
__ _ _ _ _ _
/ _| __| (_)___| | __ ___ _ __ _ _ _ __ | |_ ___ ___| |_ _ _ _ __
| |_ / _` | / __| |/ / / __| '__| | | | '_ \| __/ __|/ _ \ __| | | | '_ \
| _| (_| | \__ \ < _ | (__| | | |_| | |_) | |_\__ \ __/ |_| |_| | |_) |
|_| \__,_|_|___/_|\_( ) \___|_| \__, | .__/ \__|___/\___|\__|\__,_| .__( )
|/ |___/|_| |_| |/
_ __
_ __ ___ | | __/ _|___
| '_ ` _ \| |/ / |_/ __|
| | | | | | <| _\__ \
|_| |_| |_|_|\_\_| |___/
________________________________________________________________________________
Today I picked up my new harddrive from the post office.
As I am now planning to actually use it, I have to partition, encrypt, and
format it. I did this several times already and it gets boring to consult
scroogle every time, so I am going to document my proceedings here.
================================================================================
=== Crypto: Why? How? ==========================================================
TODO:
* overwriting with random data allows plausible deniability when not used with
LUKS
* What purposes serves the setup described here? (Which are not served?)
================================================================================
=== Partitioning ===============================================================
I am going to create two partitions:
1. 10MB big, unencrypted, stores fdisk, luks, mkfs output (needed for recovery)
2. 500GB big, encrypted, stores the stuff I want to store in the first place
---[ bash ]---------------------------------------------------------------------
[root@eddie ~]# fdisk /dev/sdc
Command (m for help): o
Building a new DOS disklabel with disk identifier 0x9b5a99c6.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@eddie ~]# fdisk /dev/sdc
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4, default 1):
Using default value 1
First sector (2048-3907029167, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-3907029167, default 3907029167): \
+5M
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4, default 2):
Using default value 2
First sector (12288-3907029167, default 12288):
Using default value 12288
Last sector, +sectors or +size{K,M,G} (12288-3907029167, default 3907029167): \
+500G
Command (m for help): p
Disk /dev/sdc: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x9b5a99c6
Device Boot Start End Blocks Id System
/dev/sdc1 2048 12287 5120 83 Linux
/dev/sdc2 12288 1048588287 524288000 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@eddie ~]# mke2fs -L p30jDcdBh-hint /dev/sdc1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=p30jDcdBh-hint
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
1280 inodes, 5120 blocks
256 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=5242880
1 block group
8192 blocks per group, 8192 fragments per group
1280 inodes per group
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 31 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@eddie ~]# mkdir /mnt/p30jDcdBh-hint
[root@eddie ~]# mount /dev/sdc1 /mnt/p30jDcdBh-hint
[root@eddie ~]# fdisk -l /dev/sdc > /mnt/p30jDcdBh-hint/partitions
---[ /bash ]--------------------------------------------------------------------
================================================================================
=== Setting up encryption (using LUKS) =========================================
I am using LUKS because it creates a header containing information about the
hash algorithmn and the block cypher, which I would have to remember by my self
if I was using plain dm-crypt.
I use a key-file for encryption, as I am unable to remember strong passwords.
---[ bash ]---------------------------------------------------------------------
[root@eddie ~]# cryptsetup -v luksFormat /dev/sdc2 --key-file /mnt/floppy/key.lk
WARNING!
========
This will overwrite data on /dev/sdc2 irrevocably.
Are you sure? (Type uppercase yes): YES
semid 884736: semop failed for cookie 0xd4de66d: incorrect semaphore state
Failed to set a proper state for notification semaphore identified by cookie \
value 223209069 (0xd4de66d) to initialize waiting for incoming notifications.
Command successful.
[root@eddie ~]# cryptsetup luksHeaderBackup /dev/sdc2 --header-backup-file \
/mnt/p30jDcdBh-hint/header.2
[root@eddie ~]# mkdir /mnt/p30jDcdBh
[root@eddie ~]# cryptsetup -v luksOpen /dev/sdc2 p30jDcdBh --key-file \
/mnt/floppy/key.lk
semid 1474560: semop failed for cookie 0xd4d72d9: incorrect semaphore state
Failed to set a proper state for notification semaphore identified by cookie \
value 223179481 (0xd4d72d9) to initialize waiting for incoming notifications.
Key slot 0 unlocked.
Command successful.
---[ /bash ]--------------------------------------------------------------------
================================================================================
=== Creating an ext4 filesystem ================================================
Let's see if ext4 is stable:
---[ bash ]---------------------------------------------------------------------
[root@eddie ~]# mke2fs -L p30jDcdBh -t ext4 /dev/mapper/p30jDcdBh
mke2fs 1.41.12 (17-May-2010)
Filesystem label=p30jDcdBh
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
32768000 inodes, 131071743 blocks
6553587 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
4000 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 24 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
---[ /bash ]--------------------------------------------------------------------
Remember to save the output of mkfs to allow easy recovery:
---[ bash ]---------------------------------------------------------------------
[root@eddie ~]# vim /mnt/p30jDcdBh-hint/p30jDcdBh.mkfs
---[ /bash ]--------------------------------------------------------------------
================================================================================
=== Mounting and testing, fstab and stuff ======================================
---[ bash ]---------------------------------------------------------------------
[root@eddie ~]# mount /dev/mapper/p30jDcdBh /mnt/p30jDcdBh
[root@eddie ~]# df -h | grep p30jDcdBh
/dev/sdc1 4.9M 1.1M 3.6M 23% /mnt/p30jDcdBh-hint
/dev/mapper/p30jDcdBh
493G 198M 467G 1% /mnt/p30jDcdBh
[root@eddie ~]# echo "/dev/sdc1 /mnt/p30jDcdBh-hint ext2 defaults 0 0" >> \
/etc/fstab
---[ /bash ]--------------------------------------------------------------------
================================================================================
=== Resizing ===================================================================
TODO (see [06])
================================================================================
=== Weblinks ===================================================================
01. Linux Unified Key Setup (LUKS):
http://en.wikipedia.org/wiki/LUKS
02. dm-crypt:
http://en.wikipedia.org/wiki/Dm-crypt
03. Uwe Hermann's blog: "HOWTO: Disk encryption with dm-crypt / LUKS and Debian"
http://www.hermann-uwe.de/blog/\
howto-disk-encryption-with-dm-crypt-luks-and-debian
04. LUKS-wiki
http://www.saout.de/tikiwiki/tiki-index.php?page=LUKS
05. LUKS-wiki: Encrypted Devices Using LUKS
http://www.saout.de/tikiwiki/tiki-index.php?page=EncryptedDeviceUsingLUKS
06. LUKS-wiki: How to resize a LUKS-encrypted partition created over LVM2
http://www.saout.de/tikiwiki/tiki-index.php?page=ResizeLUKSPartitions

Tue, 24 Aug 2010 16:27:01 +0200

Ergänzt: Quit Messages

30.03.2010 31:33 -!- PyroPeter [foobar@unixboard/users/pyropeter] has quit
[Quit: "If privacy is outlawed, only outlaws will have privacy"]
24.08.2010 16:24 -!- PyroPeter [foobar@unixboard/users/pyropeter] has quit
[Quit: "The jet, as well as being an ambassador of death for the enemies of humanity, has a main message of peace and friendship,"]

Tue, 30 Mar 2010 21:34:33 +0200

Update: Quit Messages

05.03.2010 17:34 -!- PyroPeter [foobar@unixboard/users/pyropeter] has quit
[Quit: "Wer von seinem Tag nicht zwei Drittel für sich hat, ist ein Sklave."]
30.03.2010 31:33 -!- PyroPeter [foobar@unixboard/users/pyropeter] has quit
[Quit: "If privacy is outlawed, only outlaws will have privacy"]

Sun, 7 Mar 2010 18:23:44 +0100

Ergänzt: Darwin Streaming Server

================================================================================
=== Live-Streams ===============================================================
(TODO)
Das live-streaming per Darwin funktioniert folgendermaßen: Ein Tool X schickt
einen MPEG-4-Stream per rtp an den host, auf dem Darwin läuft. Weiterhin wird
eine SDP-Datei in /var/streaming/movies abgelegt, die Darwin mit den
Informationen versorgt, die nötig sind, um den Stream zu empfangen und
weiter zu streamen. Das Problem dabei liegt dabei in der Suche nach einem unter
Linux lauffähigen Tool X.
=== vlc
$ cvlc -vv v4l2://:width=320:height=240 --sout '#transcode{venc=ffmpeg{keyint=1},vcodec=mp4v,vb=300k,fps=25}:rtp{dst=127.0.0.1,port-video=20002,ttl=127,name=pptest,sdp=file:///var/streaming/movies/pptest.sdp}'
VLCs Zusammenspiel mit Darwin lässt wenige Wünsche offen. Leider ist vlc selbst
_dermaßen_ _schlecht_, dass es mir die Haare zu Berge stehen lässt.
Eventuell kann man vlc mit viel Probiererei dazu bewegen, einen ffmpeg-Stream
an Darwin weiterzuleiten.
=== mpeg4ip / mp4live
MPEG4IP war früher wohl mal das Vorzeige-Tool, wurde aber seit 2007 nicht mehr
weiterentwickelt. Ich habe es noch nicht getestet.
=== Andere?
Ich habe bis jetzt keine andere Möglichkeit gefunden, Darwin Live-Streams
unterzuschieben.
Eventuell ist ffmpeg geeignet. (Es generiert bereits SDP-Daten, die man
allerdings von Hand in eine Datei kopieren muss)
================================================================================
06. list:ffmpeg-user: "ffmpeg and Darwin Stream Server 3gp"
http://lists.mplayerhq.hu/pipermail/ffmpeg-user/2006-December/005942.html
07. SDP
http://en.wikipedia.org/wiki/Session_Description_Protocol
08. MPEG4IP
http://www.mpeg4ip.net/

Sun, 7 Mar 2010 15:02:26 +0100

Neu: Darwin Streaming Server

oooooooooo. o8o
`888' `Y8b `"'
888 888 .oooo. oooo d8b oooo oooo ooo oooo ooo. .oo.
888 888 `P )88b `888""8P `88. `88. .8' `888 `888P"Y88b
888 888 .oP"888 888 `88..]88..8' 888 888 888
888 d88' d8( 888 888 `888'`888' 888 888 888
o888bood8P' `Y888""8o d888b `8' `8' o888o o888o o888o
________________________________________________________________________________
Apples QuickTime Streaming Server (QTSS) wird nur für MacOSX angeboten und
streamt H.264/MPEG-4, 3GPP und mp3 per RTSP. Weiterhin gibt es ein Tool namens
QuickTime Broadcaster, das es erlaubt, per QTSS Livestreams anzubieten.
Das wäre gänzlich uninteressant, hätte Apple nicht den Kern des QTSS als OSS
veröffentlicht. Der Darwin Streaming Server (DSS) wurde von externen Entwicklern
auf Linux, FreeBSD, Solaris, Tru64, MaxOSX 9 und Windows portiert und wird unter
anderem von Akamai und Youtube-für-Smartphones verwendet.
Ich werde den DSS nun also testen, und die Ergebnisse hier dokumentieren.
================================================================================
=== Installation (auf nem Archlinux) ===========================================
1. darwin-streaming-server aus dem AUR installieren. (Erstellt einen neuen
User namens "qtss".)
2. Einen Admin-Account einrichten:
# qtpasswd admin
# qtpasswd -A admin admin
3. DSS starten:
# /etc/rc.d/dss start
# /etc/rc.d/dss-admin start
================================================================================
=== Setup ======================================================================
Darwin lässt sich über ein grafisch sehr anspruchvolles Web-Interface
konfigurieren. Man erreicht dieses unter der URL
http://localhost:1220/
Beim ersten Aufruf startet ein Setup-Dialog. (Erläuterungen dazu gibts bei [05])
================================================================================
=== Streamen von statischen Inhalten ===========================================
Grundsätzlich arbeitet Darwin ähnlich wie ein Webserver: Er bietet alle Dateien
an, die in einem bestimmten Verzeichnis liegen. Per Default ist dies
/var/streaming/movies
Dort liegen schon einige Beispieldateien in verschiedenen Formaten und Bitraten.
sample_100kbit.mov sample_300kbit.mp4 sample_h264_1mbit.mp4
sample_100kbit.mp4 sample_50kbit.3gp sample_h264_300kbit.mp4
sample_300kbit.mov sample_h264_100kbit.mp4 sample.mp3
Erster Test:
$ mplayer rtsp://localhost/sample_100kbit.mp4
Allerdings war es mir in Tests mit mplayer und vlc nur möglich, die MPEG-4
Dateien zu streamen, bei den anderen lieferte der Server ein
RTSP/1.0 415 Unsupported Media Type
================================================================================
=== Konvertieren von Filmen in ein kompatibles Format ==========================
=== Konvertieren eines Videos von Format X zu h.264
(TODO)
auch: siehe [06]
=== Hinzufügen des "hint" zu bestehendem MPEG-4
Dafür wird das Tool MP4Box aus dem gpac-projekt benötigt.
$ MP4Box -hint ritt_der_valkueren.mp4
(TODO: Dieses Tool kann MPEG-4-files auch optimieren)
================================================================================
=== Streamen durch ein NAT =====================================================
Genau ist dies unter [05] erläutert.
Im Moment sind bei mir folgende Portranges offen:
TCP 554
TCP 6970 - 7077
UDP 6970 - 7077
UDP 10000 - 65500
================================================================================
=== Live-Streams ===============================================================
(TODO)
================================================================================
=== Quellen/Verweise ===========================================================
01. QTSS:
DE: http://de.wikipedia.org/wiki/QuickTime_Streaming_Server
EN: http://en.wikipedia.org/wiki/QuickTime_Streaming_Server
02. H.264:
http://en.wikipedia.org/wiki/H.264
03. 3GPP/3GP:
http://en.wikipedia.org/wiki/3GP
04. QuickTime Broadcaster:
http://en.wikipedia.org/wiki/QuickTime_Broadcaster
05. Soundscreen (umfangreiche HowTo Sammlung zu DSS und QTSS):
http://soundscreen.com/streaming/
Setup: http://soundscreen.com/streaming/server_setup.html
06. list:ffmpeg-user: "ffmpeg and Darwin Stream Server 3gp"
http://lists.mplayerhq.hu/pipermail/ffmpeg-user/2006-December/005942.html

Sun, 7 Mar 2010 14:58:12 +0100

Neu: Quit Messages

.oooooo. o8o .
d8P' `Y8b `"' .o8
888 888 oooo oooo oooo .o888oo
888 888 `888 `888 `888 888
888 888 888 888 888 888
`88b d88b 888 888 888 888 .
`Y8bood8P'Ybd' `V88V"V8P' o888o "888"
ooo ooooo
`88. .888'
888b d'888 .ooooo. .oooo.o .oooo.o .oooo. .oooooooo .ooooo.
8 Y88. .P 888 d88' `88b d88( "8 d88( "8 `P )88b 888' `88b d88' `88b
8 `888' 888 888ooo888 `"Y88b. `"Y88b. .oP"888 888 888 888ooo888
8 Y 888 888 .o o. )88b o. )88b d8( 888 `88bod8P' 888 .o
o8o o888o `Y8bod8P' 8""888P' 8""888P' `Y888""8o `8oooooo. `Y8bod8P'
d" YD
"Y88888P'
________________________________________________________________________________
Da ich seit einiger Zeit durchgehend mit freenode verbunden bin, entgeht mir
jegliche Gelegenheit, das leider weitgehend unbekannte Format der Quit Message
zu nutzen, um darüber meinem Drang nachzugeben, mich hin und wieder auch mal auf
hohem niveau der Welt mitzuteilen. Stattdessen werde ich nun hier die oben
genannten Zeichenketten sammeln.
05.03.2010 17:34 -!- PyroPeter [foobar@unixboard/users/pyropeter] has quit
[Quit: "Wer von seinem Tag nicht zwei Drittel für sich hat, ist ein Sklave."]

Tue, 26 Jan 2010 16:59:48 +0100

Neu: Cache Hack

.oooooo. oooo
d8P' `Y8b `888
888 .oooo. .ooooo. 888 .oo. .ooooo.
888 `P )88b d88' `"Y8 888P"Y88b d88' `88b
888 .oP"888 888 888 888 888ooo888
`88b ooo d8( 888 888 .o8 888 888 888 .o
`Y8bood8P' `Y888""8o `Y8bod8P' o888o o888o `Y8bod8P'
ooooo ooooo oooo
`888' `888' `888
888 888 .oooo. .ooooo. 888 oooo
888ooooo888 `P )88b d88' `"Y8 888 .8P'
888 888 .oP"888 888 888888.
888 888 d8( 888 888 .o8 888 `88b.
o888o o888o `Y888""8o `Y8bod8P' o888o o888o
________________________________________________________________________________
Ich stolperte in letzter Zeit über einen POC, der aufgrund der geänderten
Textfarbe von Links zu besuchten Seiten die Firefox-History auf bestimmte URLs
prüfen konnte. [ach dreck, zu wenig zucker im tee]
Bla Bla Bla ... Mich auf die Idee, ... Bla Bla ... Browser-Cache ...
Bla Bla Bla ... Unterschiedliche Ladezeit ... Bla ... POC fertiggestellt
Er läd Bilder in ein <img>-node, und misst die Ladezeit. Mit ein wenig Geschick
kann man aus der generierten Ladezeittabelle sehr schön ablesen, welche Bilder
aus dem Cache kommen, und welche erst geladen werden müssen.
Das ganze kann man hier ausprobieren: $BLOG/files/Cache_Hack/cachesniffer.xhtml
================================================================================
=== iFAQ =======================================================================
--> Fragen, die Ich oft stellen würde, wenn es mich mehrmals gäbe, und der Code
nicht sowieso von mir wäre.
01. ,,Wieso lädst du ständig 'little.gif?foo=sep' ?´´
Sobald eine URL zwei Mal in der Liste der zu ladenden URLs auftaucht,
funktioniert das Script nicht mehr. (Weil kein neues event.LOAD generiert
wird.)
Darum ist jedes zweite Bild dieses eine Seperatorbild.
Außerdem kann die Ladezeit des ersten Bildes nicht akurat ermittelt werden.
(Alle gängigen Browser hauen auf den ersten Wert 30-70ms drauf.)
02. ,,Wieso lädst du jedes Bild zwei Mal?´´
So erhält man zwei Werte und weiß zusätzlich vom letzten, dass er die
Ladezeit aus dem Cache angibt.
03. ,,Warum wird ein Teil der URLs dynamisch mit der aktuellen Zeit versehen?´´
Weil der Browser diese Bilder immer neu lädt. Es ist auf Dauer unpraktisch,
nach jeder kleinen Codeänderung den Cache leeren zu müssen.
================================================================================
=== LINKS ======================================================================
* Der oben erwähnte History-CSS-Hack POC:
http://ha.ckers.org/weird/CSS-history-hack.html
* Mein Cache-Hack POC:
http://keks.selfip.org/blog/files/Cache_Hack/cachesniffer.xhtml

Thu, 14 Jan 2010 18:24:15 +0100

Neu: HOWTO: Stream Backup

oooo .
`888 .o8
888 .oo. .ooooo. oooo oooo ooo .o888oo .ooooo.
888P"Y88b d88' `88b `88. `88. .8' 888 d88' `88b
888 888 888 888 `88..]88..8' 888 888 888 o8o
888 888 888 888 `888'`888' 888 . 888 888 `"'
o888o o888o `Y8bod8P' `8' `8' "888" `Y8bod8P' o8o
`"'
.oooooo..o .
d8P' `Y8 .o8
Y88bo. .o888oo oooo d8b .ooooo. .oooo. ooo. .oo. .oo.
`"Y8888o. 888 `888""8P d88' `88b `P )88b `888P"Y88bP"Y88b
`"Y88b 888 888 888ooo888 .oP"888 888 888 888
oo .d8P 888 . 888 888 .o d8( 888 888 888 888
8""88888P' "888" d888b `Y8bod8P' `Y888""8o o888o o888o o888o
oooooooooo. oooo
`888' `Y8b `888
888 888 .oooo. .ooooo. 888 oooo oooo oooo oo.ooooo.
888oooo888' `P )88b d88' `"Y8 888 .8P' `888 `888 888' `88b
888 `88b .oP"888 888 888888. 888 888 888 888
888 .88P d8( 888 888 .o8 888 `88b. 888 888 888 888
o888bood8P' `Y888""8o `Y8bod8P' o888o o888o `V88V"V8P' 888bod8P'
888
o888o
________________________________________________________________________________
blabla
================================================================================
=== ZDF-Mediathek ==============================================================
Man finde die URL zur Stream-Seite:
http://www.zdf.de/ZDFmediathek/beitrag/video/942976/Wie-funktioniert-
der-Koerperscanner%253F
Man extrahiere die Video-ID. Daraufhin fordere man folgendes Dokument:
http://www.zdf.de/ZDFmediathek/xmlservice/web/beitragsDetails?id=942976
Die verschiedenen Stream-Quellen sind enthalten in den Knoten
video/formitaeten/formitaet. Vorzugsweise suche man den "<quality>very high"-
Knoten mit der wstreaming.zdf.de-URL, und nutze mplayer oder mplayer, oder auch
mplayer, um den Stream in Sektoren zu bannen.
---[ code type:bash ]-----------------------------------------------------------
stream_url=`wget -O - http://www.zdf.de/ZDFmediathek/xmlservice/web/beitragsDetails?id=$1 2> /dev/null | awk '/<formitaet basetype="wmv3_wma9_asf_mms_asx_http/ {getline; if ($0 ~ "very high") {getline; split($0, a, "<|>"); print a[3]; exit;}}'`
echo $stream_url
---[ /code ]--------------------------------------------------------------------
Everything done. Thank you for downloading a media file containing
proprietary and patented technology.

PyroPeters Blog

[ Nach oben ]      [ Dieser Blog wird mit Strom versorgt von awk, git und xslt ]