Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

Linux is obsolete -- Andrew Tanenbaum


devel / alt.lang.asm / Encrypted videos

SubjectAuthor
* Encrypted videosHerbert Kleebauer
`- Re: Encrypted videosHerbert Kleebauer

1
Encrypted videos

<tufgr0$20oeb$1@dont-email.me>

 copy mid

https://www.novabbs.com/devel/article-flat.php?id=408&group=alt.lang.asm#408

 copy link   Newsgroups: alt.lang.asm
Path: i2pn2.org!i2pn.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: kle...@unibwm.de (Herbert Kleebauer)
Newsgroups: alt.lang.asm
Subject: Encrypted videos
Date: Fri, 10 Mar 2023 16:02:55 +0100
Organization: A noiseless patient Spider
Lines: 202
Message-ID: <tufgr0$20oeb$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 10 Mar 2023 15:02:56 -0000 (UTC)
Injection-Info: reader01.eternal-september.org; posting-host="e8b8b3e80a0d85817d4f25267b23261b";
logging-data="2122187"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+y0GtzYLLRORIBymTx/9LA15TJ8d7vSgk="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.8.0
Cancel-Lock: sha1:Aj3Cg70gT99mQX8HUFQSeIa6Piw=
Content-Language: en-US
 by: Herbert Kleebauer - Fri, 10 Mar 2023 15:02 UTC

Just noticed that the VLC media player can play videos read
from stdin. So, after a long, long time I did a quick assembly
hack (source code in a follow up). Would like to get some bug
reports).

=================================================================

Privacy For Videos (aes256 encryption for videos)

This utility can be use to display encrypted videos in
combination with the VLC media player:

usage: pfv.exe number : password1 : password2 : inputfile >outputfile

password is a 43 character string with the characters A-Z a-z 0-9 / +
Any other character is ignored. If less characters are provided, the
string is padded with +. Therefore you should not use a password which
ends with a +, because, for example, the two passwords "abc" and "abc++++"
are both extended to "abc++++++++++++++++++++++++++++++++++++++++"
and therefore "abc++++" is not more secure than "abc". The binary
256 bit key for aes is generated by base64 decoding the given 43
character password.

To encrypt a video file "video1.mp4" with the password "hello world"
(note: the space in the password is ignored, so "helloworld" or
"hello_world" would be the same), use:

pfv.exe :: hello world : video1.mp4 >video1.pfv

The file size of the output file is increased to a multiple
of 1 Mbyte.

Note: if you repeat this command, you will get a different
binary, but it still is a valid encrypted version of the video.

To decrypt this encrypted video use:

pfv.exe : hello world :: video1.pfv >video2.mp4

video1.mp4 and video2.mp4 are then identical files.

To directly play an encrypted video use:

pfv.exe : hello world :: video1.pfv | C:\path_to_vlc\vlc.exe -

To re-encrypt a video with a different password without first
decrypting it (no decrypted version of the video is temporarily
stored on the disk), use:

pfv.exe : old password : new password : inputfile > outputfile

If you have more encrypted videos, for example:

video1.pfv (encrypted with password "pass1")
video2.pfv (encrypted with password "pass1")
video3.pfv (encrypted with password "pass2")
video4.pfv (encrypted with password "pass1")

you can copy them all into one big file (but there
is a 4 GByte limit for FAT filesystems):

copy /b video1.pfv + video2.pfv + video3.pfv + video4.pfv all.pfv

To play vidoe1 use:
pfv.exe : pass1 :: all.pfv | C:\path_to_vlc\vlc.exe -

To play vidoe2 use:
pfv.exe 2 : pass1 :: all.pfv | C:\path_to_vlc\vlc.exe -

To play vidoe3 use:
pfv.exe : pass2 :: all.pfv | C:\path_to_vlc\vlc.exe -

To play vidoe4 use:
pfv.exe 3 : pass1 :: all.pfv | C:\path_to_vlc\vlc.exe -

The number specifies which of the videos encrypted with
the given password should be decrypted. If the number
is 0 or omitted, 1 is used (video 4 is the 3. video
encrypted with pass1 in the input file).

If you use ">outfile" instead of "|vlc -" you can
extract the video from the multi-video file (encrypted
or unencrypted depending of a given second password).

The program is pretty slow, but a standard PC should be
be able to decode at least Full HD videos.

A C version would most probably much faster, but I
wanted to do again some assembly programming after
many years.

If you put this batch on your desktop,

@echo off
set /p p=Password:
set p=&cls&pfv :%p%::%1|C:\path_to_vlc\vlc.exe -

you can use the mouse to drop a encrypted video on it.
It then asks for the password and plays the video.

Here the binary of pfv.exe:

@echo off
certutil -f -decode %~f0 pfv.exe>nul
goto :eof

-----BEGIN CERTIFICATE-----
TVpgAQEAAAAEAAAA//8AAGABAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAoAAAAA4fug4AtAnNIbgBTM0hTmljZSB0byBtZWV0IHNvbWVi
b2R5IHdobyBpcyBzdGlsbCB1c2luZyBET1MsDQpidXQgaGlzIHByb2dyYW0gcmVx
dWlyZXMgV2luMzIuDQokAFBFAABMAQEAUHmlNgAAAAAAAAAA4AAPAQsBBQwADAAA
AAAAAAAAAAD6EAAAABAAAAAwAQAAAEAAABAAAAACAAAEAAAAAAAAAAQAAAAAAAAA
ADABAAACAAAAAAAAAwAAAAAAEAAAEAAAAAAQAAAQAAAAAAAAEAAAAAAAAAAAAAAA
JBAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAkAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALnRleHQAAAAAEQEAABAAAAAMAAAAAgAA
AAAAAAAAAAAAAAAAIAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCEAAAlBAAAKIQAACyEAAA
wBAAANQQAADgEAAA7BAAAAAAAABaEAAAAAAAAAAAAABMEAAAABAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAS0VSTkVMMzIuZGxsAACCEAAAlBAAAKIQAACyEAAAwBAAANQQ
AADgEAAA7BAAAMAQAAAAAAAAAABHZXRDb21tYW5kTGluZUEAAABFeGl0UHJvY2Vz
cwAAAEdldFN0ZEhhbmRsZQAAAABDcmVhdGVGaWxlQQAAAFNldEZpbGVQb2ludGVy
RXgAAAAAUmVhZEZpbGUAAAAAV3JpdGVGaWxlAAAAQ2xvc2VIYW5kbGUA/xUAEEAA
icYx0qwIwHUKvuoTQADpzAMAADwidQL30gnSdec8IHXjMcAx0qwIwHUKvuoTQADp
qwMAADw6dA8sMHLpPAl35WvSCgHC696D6gGD0gGJFZwaQAC/tBpAAOguBgAAv6Qb
QADoJAYAAPYFgBpAAAN1Cr6EFEAA6WUDAACsPCB0+06J94n1rDwidPuqCMB19moA
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
-----END CERTIFICATE-----

Re: Encrypted videos

<tufh1a$20rdd$1@dont-email.me>

 copy mid

https://www.novabbs.com/devel/article-flat.php?id=409&group=alt.lang.asm#409

 copy link   Newsgroups: alt.lang.asm
Path: i2pn2.org!i2pn.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: kle...@unibwm.de (Herbert Kleebauer)
Newsgroups: alt.lang.asm
Subject: Re: Encrypted videos
Date: Fri, 10 Mar 2023 16:06:17 +0100
Organization: A noiseless patient Spider
Lines: 1373
Message-ID: <tufh1a$20rdd$1@dont-email.me>
References: <tufgr0$20oeb$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 10 Mar 2023 15:06:18 -0000 (UTC)
Injection-Info: reader01.eternal-september.org; posting-host="e8b8b3e80a0d85817d4f25267b23261b";
logging-data="2125229"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+i9GAr1mh0jAhSxEjEYn9caERnUp/Qyvs="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.8.0
Cancel-Lock: sha1:n8Ey7uh0oxq5m5VBc+x9B1TBMmo=
In-Reply-To: <tufgr0$20oeb$1@dont-email.me>
Content-Language: de-DE
 by: Herbert Kleebauer - Fri, 10 Mar 2023 15:06 UTC

The source:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; pfv.mac: Privacy For Videos ;;
;; encrypt/decrypt video files using aes algorithm ;;
;; usage: pfv number:password1:password2: infile >outfile ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Version 0.01 10.03.2023 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

UseIdatSection=0 ; 0 if no idat section is used
UseUdatSection=0 ; 0 if no udat section is used

;#==================================================================#
;# Start of Headers #
;#==================================================================#

; +--------------------------------------------+
; | Start of DOS Header |
; +--------------------------------------------+

; DOS .EXE header
dc.b 'MZ' ; Magic number
dc.w dosfilesize\512 ; Bytes on last page of file (0->512)
dc.w (dosfilesize-1)/512+1
; Pages in file (Page=512 byte)
dc.w 0 ; Relocations (nr of entries)
dc.w doshead_end/16 ; Size of header size in paragraphs (16 byte)
dc.w 0 ; Minimum extra paragraphs needed
dc.w $ffff ; Maximum extra paragraphs needed
dc.w 0 ; Initial (relative) SS value (ss=load_adr+nr)
dc.w dosstack ; Initial SP value
dc.w 0 ; Checksum
dc.w dosmain ; Initial IP value
dc.w 0 ; Initial (relative) CS value (cs=load_adr+nr)
dc.w reloc ; File address of relocation table
dc.w 0 ; Overlay number
dc.w 0,0,0,0 ; Reserved words
dc.w 0 ; OEM identifier (for e_oeminfo)
dc.w 0 ; OEM information; e_oemid specific
dc.l 0,0,0,0,0 ; Reserved words
dc.l WinHeader ; File address of new exe header
reloc:
doshead_end:

@=$0
dosmain:move.w s6,-(sp)
move.w (sp)+,s0
move.w #_text,r1
move.b #$09,m0
trap #$21
move.w #$4c01,r0
trap #$21
_text: dc.b 'Nice to meet somebody who is still using DOS,',13,10
dc.b 'but his program requires Win32.',13,10,'$'
even 16

dosstack=@+256 ; 256 Byte stack
dosfilesize=@+256

; +--------------------------------------------+
; | End of DOS Header |
; +--------------------------------------------+

; +--------------------------------------------+
; | Start of Windows Header |
; +--------------------------------------------+

ImageBase== $00400000
SectionAlignment== 4096
FileAlignment== 512

WinHeader=@@
@=ImageBase

; see WINNT.H for information
dc.b 'PE',0,0 ; magic word
; _IMAGE_FILE_HEADER:
dc.w $014c ; Machine ($014c=Intel x86 processor)
dc.w NumberOfSections ; NumberOfSections
dc.l $36a57950 ; TimeDateStamp (seconds since 31.12.69 16:00)
dc.l 0 ; PointerToSymbolTable
dc.l 0 ; NumberOfSymbols
dc.w SizeOfOptionalHeader ; SizeOfOptionalHeader
dc.w $010f ; Charcteristics

; 0x0001 Relocation info stripped from file.
; 0x0002 File is executable (i.e. no unresolved externel references).
; 0x0004 Line nunbers stripped from file.
; 0x0008 Local symbols stripped from file.
; 0x0010 Agressively trim working set
; 0x0080 Bytes of machine word are reversed.
; 0x0100 32 bit word machine.
; 0x0200 Debugging info stripped from file in .DBG file
; 0x0400 If Image is on removable media, copy and run from the swap file.
; 0x0800 If Image is on Net, copy and run from the swap file.
; 0x1000 System File.
; 0x2000 File is a DLL.
; 0x4000 File should only be run on a UP machine
; 0x8000 Bytes of machine word are reversed.

@a=@ ; _IMAGE_OPTIONAL_HEADER
dc.w $010b ; Magic
dc.b 5 ; MajorLinkerVersion
dc.b 12 ; MinorLinkerVersion
dc.l SizeOfCode ; SizeOfCode
dc.l SizeOfInitializedData ; SizeOfInitializedData
dc.l SizeOfUninitializedData ; SizeOfUninitializedData
dc.l winmain-ImageBase ; AddressOfEntryPoint
dc.l BaseOfCode ; BaseOfCode
dc.l BaseOfData ; BaseOfData
dc.l ImageBase ; ImageBase
dc.l SectionAlignment ; SectionAlignment
dc.l FileAlignment ; FileAlignment
dc.w 4 ; MajorOperatingSystemVersion
dc.w 0 ; MinorOperatingSystemVersion
dc.w 0 ; MajorImageVersion
dc.w 0 ; MinorImageVersion
dc.w 4 ; MajorSubsystemVersion
dc.w 0 ; MinorSubsystemVersion
dc.l 0 ; Win32VersionValue
dc.l SizeOfImage ; SizeOfImage
dc.l SizeOfHeaders ; SizeOfHeaders
dc.l 0 ; CheckSum
dc.w 3 ; Subsystem
; 0: Unknown subsystem.
; 1: Image doesn't require a subsystem.
; 2: Image runs in the Windows GUI subsystem.
; 3: Image runs in the Windows character subsystem.
; 5: image runs in the OS/2 character subsystem.
; 7: image run in the Posix character subsystem.
; 8: image run in the 8 subsystem.
dc.w $0000 ; DllCharacteristics
dc.l $00100000 ; SizeOfStackReserve
dc.l $00001000 ; SizeOfStackCommit
dc.l $00100000 ; SizeOfHeapReserve
dc.l $00001000 ; SizeOfHeapCommit
dc.l $00000000 ; LoaderFlags
dc.l NumberOfRvaAndSize ; NumberOfRvaAndSize (entries
; in the data dir)

; ..............................................
; : Start of Image Data Directory :
; ..............................................

; virtual address, size
@b=@
dc.l 0,0 ; Export Directory
dc.l imp_start,imp_size ; Import Directory
dc.l 0,0 ; Resource Directory
dc.l 0,0 ; Exception Directory
dc.l 0,0 ; Security Directory
dc.l 0,0 ; Base Relocation Table
dc.l 0,0 ; Debug Directory
dc.l 0,0 ; Description String
dc.l 0,0 ; Machine Value (MIPS GP)
dc.l 0,0 ; TLS Directory
dc.l 0,0 ; Load Configuration Directory
dc.l 0,0 ; Bound Import Directory in headers
dc.l iat_start,iat_size ; Import Address Table
dc.l 0,0 ; 14
dc.l 0,0 ; 15
dc.l 0,0 ; 16

NumberOfRvaAndSize = (@-@b)/8
SizeOfOptionalHeader = @-@a

; ..............................................
; : End of Image Data Directory :
; ..............................................

; ..............................................
; : Start of Image Sections Header :
; ..............................................

@a=@

dc.b '.text',0,0,0 ; name
dc.l VSizeOf_text ; virtual size
dc.l VBaseOf_text ; virtual address
dc.l FSizeOf_text ; size of raw data
dc.l FBaseOf_text ; pointer to raw data
dc.l 0 ; pointer to relocatins
dc.l 0 ; pointer to line numbers
dc.w 0 ; number of relocations
dc.w 0 ; number of line numbers
dc.l $e0000020 ; characteristics

IF UseIdatSection
dc.b '.idat',0,0,0 ; name
dc.l VSizeOf_idat ; virtual size
dc.l VBaseOf_idat ; virtual address
dc.l FSizeOf_idat ; size of raw data
dc.l FBaseOf_idat ; pointer to raw data
dc.l 0 ; pointer to relocatins
dc.l 0 ; pointer to line numbers
dc.w 0 ; number of relocations
dc.w 0 ; number of line numbers
dc.l $e0000040 ; characteristics
ENDIF


Click here to read the complete article
1
server_pubkey.txt

rocksolid light 0.9.7
clearnet tor