Data embedding thread

ITT: Discuss Data Obfuscation/Embedding
1. Hide files in bmp/jpeg/png(without Alpha channel)
2. Hide files in bmp/png (with Alpha channel)
3. Hide files in audio e.g. wav, mp3, ogg, flac, aac
4. Hide files in videos and other ways of doing it
Some ideas from last thread
1. Desudesutalk (Given)
2. File to YouTube video (8*8 pixel unit, as to no compression can mangle it)
3. List of image stego software i.e. F5, Outguess, OpenStego (Given)
4. Sound stego (WTF)
Info about data obfuscation in social media
Twitter: As long as your image is a PNG with alpha-channels and under 5MB, you can use Cornelia/Snowcrash.
Imgur: As long as your image is a PNG, you can use Cornelia/Snowcrash and metadata embedding.
Instagram and Flickr: They have so much regulations on images, just don't mess with it.
Tumblr or Deviantart: You're fucked.
Cornelia/Snowcrash shell script (correct me for any errors)
#!/bin/bashoptions=$(getopt -o abcw:i:z:o: --long file: -- "$@")eval set -- "$options"CASE_A = 0; CASE_B = 0; CASE_C = 0WIDTH = 0; IMAGE = 0ARCHIVE = 0; OUTPUT = 0while true; do case "$1" in -a) CASE_A = 1; shift ;; # Append Space Format -b) CASE_B = 1; shift ;; # Blank Canvas Format -c) CASE_C = 1; shift ;; # Cornilia Old Format -d) CASE_D = 1; shift ;; # Decompressing PNG Image -w) WIDTH = $2; shift 2 ;; # Width of image (for -b) -i) IMAGE = $2; shift 2 ;; # Image file path (for -a and -c) -z) ARCHIVE = $2; shift 2 ;; # Archive/PNG file path -o) OUTPUT = $2; shift 2 ;; # Output Iamge file path easc shiftdoneif [ $((${CASE_A} + ${CASE_B} + ${CASE_C} + ${CASE_D})) != 1 ] then echo "Error: Multiple function flags were given" exit 1 ;;else if [ [ ${WIDTH} == 0 ] && [ ${CASE_B} == 1 ] ] then echo "Error: Width not given for -b mode" exit 1 ;;else if [ [ ${IMAGE} == 0 ] && [ ${CASE_A} || ${CASE_C}) ] then echo "Error: Image file path not given for -a or -c mode" exit 1 ;;fiif [ ${CASE_D} == 0 ] then if [ ! -r ${ARCHIVE} ] then echo "Error: Archive file path does not exit or is not readable" exit 1 ;; else if [ ! -r $(dirname ${OUTPUT}) ] then echo "Error: Output file path does not exist" exit 1 ;; else if [ ! "${OUTPUT}" =~ .png$ ] then echo "Error: Output file path does not end in .png" exit 1 ;; fielse if [ ! -r ${ARCHIVE} ] then echo "Error: PNG file path does not exit or is not readable" exit 1 ;; else if [ ! "${ARCHIVE}" =~ .png$ ] then echo "Error: "PNG file path does not end in .png" exit 1 ;; else if [ ! -r $(dirname ${OUTPUT}) ] then echo "Error: Output BMP file path does not exist" exit 1 ;; else if [ ! "${OUTPUT}" =~ .bmp$ ] then echo "Error: Output BMP file path does not end in .bmp" exit 1 ;; fififunction width_check { WIDTH=$(convert -print "%w" ${IMAGE} /dev/null)}function height_check { HEIGHT=$(echo "(${SIZE}+4*${WIDTH}-1)/(4*${WIDTH})" | bc) }function image_gen1 { convert -size ${WIDTH}x${HEIGHT} xc:transparent conelia_gen/blank.bmp }function image_gen2 { convert ${IMAGE} -type truecolormatte conelia_gen/tmp1.bmp }function append_format { width_check; height_check; image_gen1; iamge_gen2 convert -append conelia_gen/blank.bmp conelia_gen/tmp1.bmp conelia_gen/tmp1.bmp}function blank_format { height_check; image_gen1}function cornelia_format { width_check; height_check if [$(convert -print "%h" ${IMAGE} /dev/null) >= ${HEIGHT}] then image_gen2 else echo "Error: Image is too small for archive" exit 1 ;; fi}function convert_image { head -c 138 conelia_gen/tmp1.bmp > conelia_gen/tmp2 # takes the header cat ${ARCHIVE} >> conelia_gen/tmp2 # concatenate archive to image dd if=conelia_gen/tmp2 of=conelia_gen/tmp1.bmp conv=notrunc # overwrite bmp convert conelia_gen/tmp1.bmp ${OUTPUT} # output image as png}if [ ${CASE_D} == 0 ] then mkdir conelia_gen; SIZE = $(stat -c %s ${ARCHIVE}) if [ ${CASE_A} == 1 ] then append_format else if [ ${CASE_B} == 1 ] then blank_format else if [ ${CASE_C} == 1 ] then cornelia_format fi; convert_Image; rm -r cornelia_gen; exit ;;else convert ${ARCHIVE} -type truecolormatte ${OUTPUT}; exit ;;fi

Other urls found in this thread:

fcc.gov/general/open-internet
resources.infosecinstitute.com/steganography-and-tools-to-perform-steganography/
pastebin.com/3HC80R48
twitter.com/AnonBabble

Shell script is broken and shit.

* Those are illegal variable declarations. Variables need the equals sign to be snug with them.
* You should generally prefer getopts to getopt. Use of spaces breaks getopt unless you parse the output painstakingly. getopts is also POSIX; getopt isn't. Plus you don't have to fuck with shifting unless you are mixing options with positional arguments.
* You declare a longopt that you don't even fucking use.
* You fucking misspell esac.
* Don't use == and != for arithmetic equality. Use -eq and -ne (more importantly, == isn't portable, you use = for string equality in shell scripts).
* You don't need those null statements (;;) after the exits. In fact, a compliant shell will break on them. The only valid place for a null statement in POSIX shell is in a switch.
* Don't use the "function" keyword. It is not posix compliant. Use a proper function declaration instead.
* POSIX functions need to have the final command separated from the final brace by either a newline or a semicolon.
* You have some broken tests in your if statements (eg. else if [ [ ${IMAGE} == 0 ] && [ ${CASE_A} || ${CASE_C}) ] then...). Even if the brackets matched, that's not a proper shell test.
* You have some fucked up quote mismatches.
* You should target /bin/sh in your shebang unless you need shell-specific features.
* "else if" is illegal in a shell script. You need to use elif.
* if...then needs to be separated by a semicolon or a newline.
* Your temporary dir should use some sufficiently unique value to avoid conflict. The script's own PID is usually good enough for this.
* errors should be output in stderr.
* You should check for existence of variables, rather than setting them explicitly. The script ends up more readable.
* Always use quotes around command substitiution and variables. You can't predict otherwise how it will try to expand whitespace.
* Shell tests don't allow fucking regex. What the fuck are you even doing? Use the POSIX variable prefix removal.
* What's up with the fucking explicit exits? Use a function for christ's sake.
* Redundant checks fucking everywhere.
* Use some goddamn comments.
* Put in a fucking usage message or write a man page, especially if you're doing stupid shit like reusing options for different functions.
* Why the fuck are you reusing options? -z is both an archive and an input image? Don't do that.

Did you even try running your script? I don't know a shell that won't die from syntax errors on that shit.

Here's a cleaned up first half for you to get started:

#!/bin/sh# Call a usage function from here as well.die() { echo "$*" >&2; exit 2; }FUNCTIONS=0while getopts abcw:i:z:o: optdo case $opt in a) CASE_A=1 FUNCTIONS=$((FUNCTIONS+1)) ;; # Append Space Format b) CASE_B=1 FUNCTIONS=$((FUNCTIONS+1)) ;; # Blank Canvas Format c) CASE_C=1 FUNCTIONS=$((FUNCTIONS+1)) ;; # Cornilia Old Format d) CASE_D=1 FUNCTIONS=$((FUNCTIONS+1)) ;; # Decompressing PNG Image w) WIDTH="$OPTARG";; # Width of image (for -b) i) IMAGE="$OPTARG";; # Image file path (for -a and -c) z) ARCHIVE="$OPTARG";; # Archive/PNG file path o) OUTPUT="$OPTARG";; # Output Image file path ?) die;; esacdoneif [ $FUNCTIONS -eq 0 ]; then die "Error: need a function flag"elif [ $FUNCTIONS -gt 1 ]; then die "Error: Multiple function flags were given"elif [ -n "$CASE_B" -a -z "$WIDTH" ]; then die "Error: Width not given for -b mode"elif [ -n "${CASE_A}${CASE_C}" -a -z "$IMAGE" ]; then die "Error: Image file path not given for -a or -c mode"fiif [ ! -r "$ARCHIVE" ]; then die "Error: file path '$ARCHIVE' does not exist or is not readable"elif [ ! -r "$(dirname "$OUTPUT")" ]; then die "Error: Output file path '$OUTPUT' does not exist"fiif [ -z "$CASE_D" ]; then if [ "${OUTPUT##*.}" != png ]; then die "Error: Output file path '$OUTPUT' does not end in .png" fielse if [ "${OUTPUT##.*}" != bmp ]; then die "Error: Output BMP file path '$OUTPUT' does not end in .bmp" fifi

If you don't know how to write shell scripts, don't. Either learn to do it right or use a programming language you actually know. At the very least, check that your script runs in bash, dash, and ksh before distributing it. I can't find a shell that your script doesn't die in.

Stop spamming CP embedded images

Not really. Last year I downloaded every image on /cyber/ and found only one hidden file that was concatenated. The content was just the equivalent of a knock-knock joke, nothing good.

We had Desu-Desu Talk threads when this board first started but they were never that popular and they died after three threads. There were a lot more Tox threads... but anons would use Tox and not Tox over Tor (like myself) so they exposed their IPs to each other. Then the Tox threads died down, after a few months, and they became kind of rare.

Then there was some change to 8ch's code earlier this year (I think), that strips off embedded files automatically. Anons used to package SICP in a JPG but that stopped working and so the low-skill concatenating files method of sending data in a picture file is really obsolete. Stenography is really cool and the spy agencies have been using it to trasmit info since the internet started, but nobody really uses it and when I try to explain it to normies their eyes glaze over. I can't get any of my normie family or friends to implement GPG on emails either, go figure. Everybody seems fine with being watched 24/7. Its sad, and it really makes you think.

That snowcrash infographic font is horrific. Its really unpleasant to look at, seriously. If you made it I highly suggest that you redo it. Solid green text on a black backgroud is readable if you need suggestions.

8ch automatically strips embedded files so yours is an inane post.

We had an embedded file thread before the wipe, actually. IMO you should've scraped baphomet for them.

I ain't touching that, Mr. Ping Pong.

First, stop namefagging. Second, the snowcrash infographic is the 2000's original i.e. REALLY SHIT. Don't blame me for what they have done.

Word.

Baphomet is not bad, and they actually LARP instead of Cyber, who just care about the fashion statements of Shadowrun, etc. Baphomet on Endchan has some old text files right now with naughty stuff that I remember reading in the early 1990s. That's cool. The old Phreaking stuff, its kind of obsolete now, but it sems like back in the day you could go online and find all kids of goodies. Last year I read that a 4chan an user uploaded an ISIS manual and promptly got imprisoned. Turns out that he was a teenager in the northern part of the Britian. Chans are very sanitised these days, and there is less and less non-kosher topics being discussed. In other news I read that Star Wars Rouge One is going to smash all the box office records, so I guess that's what people want. Give the people what they want, or what they've been told that they want... but still, it is disturbing that encryption is not that difficult to implement yet hardly anyone uses it. Mostly radical leftist activists which want to enact more cuck shit and ban the waifu age, so its sad, just sad...

Its pseudo-anonymous to namefag and its a feature, not a bug.

Because of guys like you 8ch /k/ removed the namefag feature. Good for them. I do it because I feel like it sometimes, OK? When Net Neutrality gets overturned under the Trump Administration I'm going to namefag it up for about a week, but until then I don't want our long-time techies to forget that good 'ole Makise Kurisu is still here. It also triggers the /k/ommandos, so its fun to troll a bit, but whatever, I don't really care about those fags.

A history lesson: 4chan used to be full of namefags. Then there was this joke "Secure Tripcodes are for Jerks" which was because the anons couldn't get laughs as easy by impersonating someone wirh a secure tripcode. This morphed into all tripfags are cancer, and then, sometime earlier this year, that namefags are the Devil. And its really meme magic in action. But fuck you, I'll namefag once in a while for fun. Maybe I'll even avatarfag to give you that special cancer feel, deep in the bone marrow, but mostly because I reject the idea that pseudo-anonymity is bad. Thomas Paine wrote uder a pen name, and the Crown would have had him hung if they knew his real name. Pseudo-anonymity is not perfect anonymity, but the more you know about computig the more you realize that its just a placebo effect. If I really was up to no good I would be sure not to namefag. Thanks for your concern, if you actually cared about my OPSEC. I doubt it though, and I don't need to be lectured to by someone who doesn't contribute to the thread other than to say what he doesn't like. We have too much of that. No sense of community, and nothing ever gets done. Maybe if I'm not shitposting myself I'll make some free software and give it to the world, but I need some ideas first. I was going to play with some WebGL today for fun but now I've gone on a bit of a rant... well, later brah, don't forget to read your daily SICP.

Are you sperging/mad? new? or just mourning over the fact that 4chan is dead?
I am all okay for a little namefagging, but when the user tide is low in Holla Forums, it all seems that namefagging became a way of making celebrities.
Do you put yourself on a pillar and see yourself is "holier than thou"? If not, good for you. If so... you might as well be a "pork bangin' dick tater" (as someone in a far land have said, if you catch my drift).
P.S. I do read SICP, thanks for your concern.

Let me be clear, I actually like the content that you post, but your name starts to feel that it comes up too often. No challengers, no 1v1 namefag arguments... Things gets boring really fast.

#!/bin/sh# Call a usage function from here as well.die() { echo "$*" >&2; exit 2; }FUNCTIONS=0while getopts abcdhw:i:z:o: optdo case $opt in a) CASE_A=1 FUNCTIONS=$((FUNCTIONS+1)) ;; # Append Space Format b) CASE_B=1 FUNCTIONS=$((FUNCTIONS+1)) ;; # Blank Canvas Format c) CASE_C=1 FUNCTIONS=$((FUNCTIONS+1)) ;; # Cornilia Old Format d) CASE_D=1 FUNCTIONS=$((FUNCTIONS+1)) ;; # Decompressing PNG Image h) CASE_H=1 FUNCTIONS=$((FUNCTIONS+1)) ;; # Manual page for program w) WIDTH="$OPTARG";; # Width of image (for -b) i) IMAGE="$OPTARG";; # Image file path (for -a and -c) z) ARCHIVE="$OPTARG";; # Archive/PNG file path i.e. input o) OUTPUT="$OPTARG";; # Output PNG/Archive file path ?) die "Error: incorrect flag was given";; esacdoneif [ ${CASE_H} == 1 ] then echo "This is the Cornelia Archive Embedding Program (CAEP)" echo "It takes an archive (bzip2/gzip/xzip/lzip/lzop/lzma/7zip/zip/rar)" echo "To use this, enter in either of these commands" echo "A. Append Space Format (Archive data under iamge)" echo "Cornelia -a -i IMAGE -z ARCHIVE -O PNG_OUT" echo "B. Blank canvas Format (Archive directly as image)" echo "Cornelia -b -w WIDTH -z ARCHIVE -O PNG_OUT" echo "C. Cornlia Old Format (Archive overwrite image bottom)" echo "Cornelia -c -i IMAGE -z ARCHIVE -O PNG_OUT" echo "D. Decompressing PNG (Decompress PNG image to BMP)" echo "Cornelia -d -z PNG -O ARCHIVE_OUT" exit ;;fiif [ $FUNCTIONS -eq 0 ]; then die "Error: need a function flag"elif [ $FUNCTIONS -gt 1 ]; then die "Error: Multiple function flags were given"elif [ -n "$CASE_B" -a -z "$WIDTH" ]; then die "Error: Width not given for -b mode"elif [ -n "${CASE_A}${CASE_C}" -a -z "$IMAGE" ]; then die "Error: Image file path not given for -a or -c mode"fiif [ -z "$CASE_D" ]; then # Decompression if [ ! -r ${ARCHIVE} ]; then "Error: PNG file path is not readable" elif [ "${ARCHIVE##*.}" != png ]; then die "Error: Output file path '${OUTPUT}' does not end in .png" elif [ ! -r "$(dirname ${OUTPUT})" ]; then "Error: Output BMP file path '${OUTPUT}' does not exist" elif [ "${OUTPUT##.*}" != bmp ]; then die "Error: Output BMP file path '${OUTPUT}' does not end in .bmp" fielse # Other functions if [ ! -r "${ARCHIVE}" ]; then die "Error: Archive file path '${ARCHIVE}' is not readable" elif [ "${ARCHIVE}" ~= *.((t?(bz2|[gl]z))|[7x]z|lzma|rar|[lt]zo|zip)$ ]; then "Error: Archive file path '${ARCHIVE}' is not a valid input" elif [ ! -r "$(dirname "$OUTPUT")" ]; then die "Error: Output file path '${OUTPUT}' does not exist" elif [ "${OUTPUT##*.}" != png ]; then die "Error: Output file path '${OUTPUT}' does not end in .png"fifunction width_check { WIDTH=$(convert -print "%w" ${IMAGE} /dev/null)} # checks the width of the imagefunction height_check { HEIGHT=$(echo "(${SIZE}+4*${WIDTH}-1)/(4*${WIDTH})" | bc) } # check the height needed for the imagefunction image_gen1 { convert -size ${WIDTH}x${HEIGHT} xc:transparent conelia_gen/blank.bmp } # generates blank imagefunction image_gen2 { convert ${IMAGE} -type truecolormatte conelia_gen/tmp1.bmp } # generates colored imagefunction append_format { width_check; height_check; image_gen1; iamge_gen2 convert -append conelia_gen/blank.bmp conelia_gen/tmp1.bmp conelia_gen/tmp1.bmp;}function blank_format { height_check; image_gen1; }function cornelia_format { width_check; height_check if [$(convert -print "%h" ${IMAGE} /dev/null) >= ${HEIGHT}]; then image_gen2 else echo "Error: Image is too small for archive"; exit 1 ;; fi; }function convert_image { head -c 138 conelia_gen/tmp1.bmp > conelia_gen/tmp2 # takes the header cat ${ARCHIVE} >> conelia_gen/tmp2 # concatenate archive to image dd if=conelia_gen/tmp2 of=conelia_gen/tmp1.bmp conv=notrunc # overwrite bmp convert conelia_gen/tmp1.bmp ${OUTPUT};} # output image as pngif [ -z "$CASE_D" ]; convert ${ARCHIVE} -type truecolormatte ${OUTPUT}; exit ;; # converts file and exitelse mkdir conelia_gen; SIZE = $(stat -c %s ${ARCHIVE}) if [ ${CASE_A} -eq 1 ] then append_format elif [ ${CASE_B} -eq 1 ] then blank_format elif [ ${CASE_C} -eq 1 ] then cornelia_format fi; convert_Image; rm -r cornelia_gen; exit ;; # deletes temporary file and exitfi

#!/bin/sh# Call a usage function from here as well.die() { echo "$*" >&2; exit 2; }FUNCTIONS=0while getopts abcdhw:i:z:o: optdo case $opt in a) CASE_A=1 FUNCTIONS=$((FUNCTIONS+1)) ;; # Append Space Format b) CASE_B=1 FUNCTIONS=$((FUNCTIONS+1)) ;; # Blank Canvas Format c) CASE_C=1 FUNCTIONS=$((FUNCTIONS+1)) ;; # Cornilia Old Format d) CASE_D=1 FUNCTIONS=$((FUNCTIONS+1)) ;; # Decompressing PNG Image h) CASE_H=1 FUNCTIONS=$((FUNCTIONS+1)) ;; # Manual page for program w) WIDTH="$OPTARG";; # Width of image (for -b) i) IMAGE="$OPTARG";; # Image file path (for -a and -c) z) ARCHIVE="$OPTARG";; # Archive/PNG file path i.e. input o) OUTPUT="$OPTARG";; # Output PNG/Archive file path ?) die "Error: incorrect flag was given";; esacdoneif [ ${CASE_H} -eq 1 ]; then echo "This is the Cornelia Archive Embedding Program (CAEP)" echo "It takes an archive (bzip2/gzip/xzip/lzip/lzop/lzma/7zip/zip/rar)" echo "To use this, enter in either of these commands" echo "A. Append Space Format (Archive data under iamge)" echo "Cornelia -a -i IMAGE -z ARCHIVE -O PNG_OUT" echo "B. Blank canvas Format (Archive directly as image)" echo "Cornelia -b -w WIDTH -z ARCHIVE -O PNG_OUT" echo "C. Cornlia Old Format (Archive overwrite image bottom)" echo "Cornelia -c -i IMAGE -z ARCHIVE -O PNG_OUT" echo "D. Decompressing PNG (Decompress PNG image to BMP)" echo "Cornelia -d -z PNG -O ARCHIVE_OUT" exitfiif [ $FUNCTIONS -eq 0 ]; then die "Error: need a function flag"elif [ $FUNCTIONS -gt 1 ]; then die "Error: Multiple function flags were given"elif [ -n "$CASE_B" -a -z "$WIDTH" ]; then die "Error: Width not given for -b mode"elif [ -n "${CASE_A}${CASE_C}" -a -z "$IMAGE" ]; then die "Error: Image file path not given for -a or -c mode"fiif [ -z "$CASE_D" ]; then # Decompression if [ ! -r ${ARCHIVE} ]; then "Error: PNG file path is not readable" elif [ "${ARCHIVE##*.}" != png ]; then die "Error: Output file path '${OUTPUT}' does not end in .png" elif [ ! -r "$(dirname ${OUTPUT})" ]; then "Error: Output BMP file path '${OUTPUT}' does not exist" elif [ "${OUTPUT##.*}" != bmp ]; then die "Error: Output BMP file path '${OUTPUT}' does not end in .bmp" fielse # Other functions if [ ! -r "${ARCHIVE}" ]; then die "Error: Archive file path '${ARCHIVE}' is not readable" elif [ "${ARCHIVE}" ~= *.((t?(bz2|[gl]z))|[7x]z|lzma|rar|[lt]zo|zip)$ ]; then "Error: Archive file path '${ARCHIVE}' is not a valid input" elif [ ! -r "$(dirname "$OUTPUT")" ]; then die "Error: Output file path '${OUTPUT}' does not exist" elif [ "${OUTPUT##*.}" != png ]; then die "Error: Output file path '${OUTPUT}' does not end in .png"fifunction width_check { WIDTH=$(convert -print "%w" ${IMAGE} /dev/null)} # checks the width of the imagefunction height_check { HEIGHT=$(echo "(${SIZE}+4*${WIDTH}-1)/(4*${WIDTH})" | bc) } # check the height needed for the imagefunction image_gen1 { convert -size ${WIDTH}x${HEIGHT} xc:transparent conelia_gen/blank.bmp } # generates blank imagefunction image_gen2 { convert ${IMAGE} -type truecolormatte conelia_gen/tmp1.bmp } # generates colored imagefunction append_format { width_check; height_check; image_gen1; iamge_gen2 convert -append conelia_gen/blank.bmp conelia_gen/tmp1.bmp conelia_gen/tmp1.bmp;}function blank_format { height_check; image_gen1; }function cornelia_format { width_check; height_check if [$(convert -print "%h" ${IMAGE} /dev/null) >= ${HEIGHT}]; then image_gen2 else echo "Error: Image is too small for archive"; exit 1 ;; fi; }function convert_image { head -c 138 conelia_gen/tmp1.bmp > conelia_gen/tmp2 # takes the header cat ${ARCHIVE} >> conelia_gen/tmp2 # concatenate archive to image dd if=conelia_gen/tmp2 of=conelia_gen/tmp1.bmp conv=notrunc # overwrite bmp convert conelia_gen/tmp1.bmp ${OUTPUT};} # output image as pngif [ -z "$CASE_D" ]; convert ${ARCHIVE} -type truecolormatte ${OUTPUT}; exit ;; # converts file and exitelse mkdir conelia_gen; SIZE = $(stat -c %s ${ARCHIVE}) if [ ${CASE_A} -eq 1 ] then append_format elif [ ${CASE_B} -eq 1 ] then blank_format elif [ ${CASE_C} -eq 1 ] then cornelia_format fi; convert_Image; rm -r cornelia_gen; exit ;; # deletes temporary file and exitfi

And when it doesn't you can shill and bitch about the imaginary government boogeyman that has censored your posts for 16 years

O WAIT

Which was meant for single threads, not long time attention whoring.
and you'll realize how retarded you were (are) for supporting centralization of the web and jacked up cap plans.

#!/bin/bash# Call a usage function from here as well.die() { echo "$*" >&2; exit 2; }FUNCTIONS=0while getopts abcdhw:i:z:o: optdo case $opt in a) CASE_A=1 FUNCTIONS=$((FUNCTIONS+1)) ;; # Append Space Format b) CASE_B=1 FUNCTIONS=$((FUNCTIONS+1)) ;; # Blank Canvas Format c) CASE_C=1 FUNCTIONS=$((FUNCTIONS+1)) ;; # Cornilia Old Format d) CASE_D=1 FUNCTIONS=$((FUNCTIONS+1)) ;; # Decompressing PNG Image h) CASE_H=1 FUNCTIONS=$((FUNCTIONS+1)) ;; # Manual page for program w) WIDTH="$OPTARG";; # Width of image (for -b) i) IMAGE="$OPTARG";; # Image file path (for -a and -c) z) ARCHIVE="$OPTARG";; # Archive/PNG file path i.e. input o) OUTPUT="$OPTARG";; # Output PNG/Archive file path ?) die "Error: incorrect flag was given";; esacdoneif [ ${CASE_H} -eq 1 ]; then echo "This is the Cornelia Archive Embedding Program (CAEP)" echo "It takes an archive (bzip2/gzip/xzip/lzip/lzop/lzma/7zip/zip/rar)" echo "To use this, enter in either of these commands" echo "A. Append Space Format (Archive data under iamge)" echo "Cornelia -a -i IMAGE -z ARCHIVE -o PNG_OUT" echo "B. Blank canvas Format (Archive directly as image)" echo "Cornelia -b -w WIDTH -z ARCHIVE -o PNG_OUT" echo "C. Cornlia Old Format (Archive overwrite image bottom)" echo "Cornelia -c -i IMAGE -z ARCHIVE -o PNG_OUT" echo "D. Decompressing PNG (Decompress PNG image to BMP)" echo "Cornelia -d -z PNG -O ARCHIVE_OUT" exitfiif [ ${FUNCTIONS} -eq 0 ]; then die "Error: need a function flag"elif [ ${FUNCTIONS} -gt 1 ]; then die "Error: Multiple function flags were given"elif [ -n "${CASE_B}" -a -z "{$WIDTH}" ]; then die "Error: Width not given for -b mode"elif [ -n "${CASE_A}${CASE_C}" -a -z "${IMAGE}" ]; then die "Error: Image file path not given for -a or -c mode"fiif [ -z "$CASE_D" ]; then # Decompression if [ ! -r ${ARCHIVE} ]; then "Error: PNG file path is not readable" elif [ "${ARCHIVE##*.}" != png ]; then die "Error: Output file path '${OUTPUT}' does not end in .png" elif [ ! -r "$(dirname ${OUTPUT})" ]; then "Error: Output BMP file path '${OUTPUT}' does not exist" elif [ "${OUTPUT##.*}" != bmp ]; then die "Error: Output BMP file path '${OUTPUT}' does not end in .bmp" fielse # Other functions if [ ! -r "${ARCHIVE}" ]; then die "Error: Archive file path '${ARCHIVE}' is not readable" elif [[ ! "${ARCHIVE}" =~ "\.((t?(bz2|[gl]z))|[7x]z|lzma|rar|[lt]zo|zip)$" ]]; then # I am stuck here "Error: Archive file path '${ARCHIVE}' is not a valid input" elif [ ! -r "$(dirname "$OUTPUT")" ]; then die "Error: Output file path '${OUTPUT}' does not exist" elif [ "${OUTPUT##*.}" != png ]; then die "Error: Output file path '${OUTPUT}' does not end in .png" fifiwidth_check { WIDTH=$(convert -print "%w" ${IMAGE} /dev/null)} # checks the width of the imageheight_check { HEIGHT=$(echo "(${SIZE}+4*${WIDTH}-1)/(4*${WIDTH})" | bc) } # check the height needed for the imageimage_gen1 { convert -size ${WIDTH}x${HEIGHT} xc:transparent conelia_gen/blank.bmp } # generates blank imageimage_gen2 { convert ${IMAGE} -type truecolormatte conelia_gen/tmp1.bmp } # generates colored imageappend_format { width_check; height_check; image_gen1; iamge_gen2 convert -append conelia_gen/blank.bmp conelia_gen/tmp1.bmp conelia_gen/tmp1.bmp; }blank_format { height_check; image_gen1; }cornelia_format { width_check; height_check if [$(convert -print "%h" ${IMAGE} /dev/null) >= ${HEIGHT}]; then image_gen2 else echo "Error: Image is too small for archive"; exit 1 fi; }convert_image { head -c 138 conelia_gen/tmp1.bmp > conelia_gen/tmp2 # takes the header cat ${ARCHIVE} >> conelia_gen/tmp2 # concatenate archive to image dd if=conelia_gen/tmp2 of=conelia_gen/tmp1.bmp conv=notrunc # overwrite bmp convert conelia_gen/tmp1.bmp ${OUTPUT}; } # output image as pngif [ -z "$CASE_D" ]; convert ${ARCHIVE} -type truecolormatte ${OUTPUT}; exit # converts file and exitelse mkdir conelia_gen; SIZE = $(stat -c %s ${ARCHIVE}) if [ ${CASE_A} -eq 1 ] then append_format elif [ ${CASE_B} -eq 1 ] then blank_format elif [ ${CASE_C} -eq 1 ] then cornelia_format fi; convert_Image; rm -r cornelia_gen; exit # deletes temporary file and exitfi

OP here, care to explain the history of that guy?
Net Neutrality is leftist bullshit anyways, let the free market tear censorship a new asshole. That's the solution.
And Trump? He's OUR hacker

You can remove monopolization by letting companies compete at a state level and keep Net Neutrality BUT NO think of the poor corporations! they must come before me!

You do realize they might merger no matter on the state or national level, right? What people called NN is basically government regulated Economies. What you called NN is actually more of a free market than most left winger's NN.
P.S. Patriot Act is lame, RWDS is the best in solving problems without government spying.

Makise is an egotistical namefag that used to wind rants in /g/ apple threads.

Now he shits it up over here with his tantrums and wants anybody with a non-far rightwing ideology to burn in the ovens. Irony is for anti-socialist he lives in his mom's house for free.

NN prevents companies from 100% fucking us, and I'm glad it thorns comcast.

Google Fiber could challenge verizon or comcast, but that doesn't mean anything will be cheaper or "freer" when instead of 2 powerhouses there is 3, what's to stop them from keeping boundaries anyways?

It's good fucking goy economics to the max.

Cronyism + Oligopolies = Fucked
We need more competition, and a government that won't be biased, and NN just gives government too much power to be biased.

?, NN doesn't effect the market. The only thing is does is force data to be treated equally. Comcast instituted 1 TB data caps on all non-business plans 2 months ago but at least we're not being throttled.

Another thing I'll mention to what Makise said is if trump is inaugurated why would removing NN be a priority? republicans control the 3 sectors of government and correct me if I'm wrong wasn't the fearmongering about NN related to obama censoring the net? you don't have doubts about trump.. do you? its very funny.

But it doesn't, this claim is literally never backed up with proof. It's corporate fearmongering to lessen their end of the deal.


It is that goddamn simple to understand. As far as monopolies go I agree, allow the little guy in local towns to compete and tell comcast to fuckoff, removing NN does utterly no favors to customers.

I am all for trump. No doubts. But if Trump lets Obamacare slide, NN might as well slide along with it.
And they tried to spice it up with elements of SOPA/PIPA/CISPA. Also, there are other slight of hand that they are doing under the table. I am all supportive of "Equal Data" but shit the regulation is too shady!

Trump isn't sliding obamacare, hes keeping two important pieces.

•no denial of care
•can be under parents plan

If Trump wanted to keep equal data and remove whatever it is scaring people in this document then fine

fcc.gov/general/open-internet

The problem with your retardation is that insurance companies require buy-in for the whole medical insurance market to not totally collapse.
Nothing is scaring people who actually know what the fuck they're talking about. Holla Forums is filled with retards from Holla Forums and Holla Forums, the quality of posts on this site in general has dramatically gone down the shitter.
There's nothing wrong with regulating residential ISPs as a Title II common carriers. It's fully within the FCC's jurisdiction, and it's fully within the FCC's jurisdiction to settle peering disputes. Those two things are all the network neutrality legislation entail.

There's nothing wrong with any of it, except for the fact that it's just politics. If network neutrality regulations are killed, it'll be because of lobbying from Verizon, AT&T, Comcast, etc.
Not because of any specific concerns of 'gubmint takin oba muh intuhnet, obama restricting muh free speech' which is what the stinky fat fuck curry pajeet was raising a big stink about, which retards on Holla Forums took hook, line and sinker.

And, it's probably inaccurate to call it 'legislation.' The legislation was passed by congress, the FCC just applied legislation in a proper way for ISPs, as opposed to the way that Bush's FCC sucked the dick of last mile ISPs and cable companies so they could fuck the consumer up and down.

Wheeler was a great commissioner. Indeed, he got more shit done in the name of the consumer than was done in the last three decades at the FCC.

#!/bin/bash# Call a usage function from here as well.die() { echo "$*" >&2; exit 2; }FUNCTIONS=0while getopts abcdhw:i:z:o: optdo case $opt in a) CASE_A=1; FUNCTIONS=$((FUNCTIONS+1));; # Append Space Format b) CASE_B=1; FUNCTIONS=$((FUNCTIONS+1));; # Blank Canvas Format c) CASE_C=1; FUNCTIONS=$((FUNCTIONS+1));; # Cornilia Old Format d) CASE_D=1; FUNCTIONS=$((FUNCTIONS+1));; # Decompressing PNG Image h) CASE_H=1; FUNCTIONS=$((FUNCTIONS+1));; # Manual page for program w) WIDTH="$OPTARG";; # Width of image (for -b) i) IMAGE="$OPTARG";; # Image file path (for -a and -c) z) ARCHIVE="$OPTARG";; # Archive/PNG file path i.e. input o) OUTPUT="$OPTARG";; # Output PNG/Archive file path ?) die "Error: incorrect flag was given";; esacdoneif [ ${CASE_H} -eq 1 ]; then echo "This is the Cornelia Archive Embedding Program (CAEP)" echo "It takes an archive (bzip2/gzip/xzip/lzip/lzop/lzma/7zip/zip/rar)" echo "To use this, enter in either of these commands" echo "A. Append Space Format (Archive data under iamge)" echo "Cornelia -a -i IMAGE -z ARCHIVE -o PNG_OUT" echo "B. Blank canvas Format (Archive directly as image)" echo "Cornelia -b -w WIDTH -z ARCHIVE -o PNG_OUT" echo "C. Cornlia Old Format (Archive overwrite image bottom)" echo "Cornelia -c -i IMAGE -z ARCHIVE -o PNG_OUT" echo "D. Decompressing PNG (Decompress PNG image to BMP)" echo "Cornelia -d -z PNG -O ARCHIVE_OUT" exitfiif [ ${FUNCTIONS} -eq 0 ]; then die "Error: need a function flag"elif [ ${FUNCTIONS} -gt 1 ]; then die "Error: Multiple function flags were given"elif [ -n "${CASE_B}" -a -z "{$WIDTH}" ]; then die "Error: Width not given for -b mode"elif [ -n "${CASE_A}${CASE_C}" -a -z "${IMAGE}" ]; then die "Error: Image file path not given for -a or -c mode"fiif [ -z "$CASE_D" ]; then # Decompression if [ ! -r ${ARCHIVE} ]; then "Error: PNG file path is not readable" elif [ "${ARCHIVE##*.}" != png ]; then die "Error: Output file path '${OUTPUT}' does not end in .png" elif [ ! -r "$(dirname ${OUTPUT})" ]; then "Error: Output BMP file path '${OUTPUT}' does not exist" elif [ "${OUTPUT##.*}" != bmp ]; then die "Error: Output BMP file path '${OUTPUT}' does not end in .bmp" fielse # Other functions if [ ! -r "${ARCHIVE}" ]; then die "Error: Archive file path '${ARCHIVE}' is not readable" elif [[ ! "${ARCHIVE}" =~ "\.((t?(bz2|[gl]z))|[7x]z|lzma|rar|[lt]zo|zip)$" ]]; then # I am stuck here "Error: Archive file path '${ARCHIVE}' is not a valid input" elif [ ! -r "$(dirname "$OUTPUT")" ]; then die "Error: Output file path '${OUTPUT}' does not exist" elif [ "${OUTPUT##*.}" != png ]; then die "Error: Output file path '${OUTPUT}' does not end in .png" fifiwidth_check() { WIDTH=$(convert -print "%w" ${IMAGE} /dev/null)} # checks the width of the imageheight_check() { HEIGHT=$(echo "(${SIZE}+4*${WIDTH}-1)/(4*${WIDTH})" | bc) } # check the height needed for the imageimage_gen1() { convert -size ${WIDTH}x${HEIGHT} xc:transparent conelia_gen/blank.bmp } # generates blank imageimage_gen2() { convert ${IMAGE} -type truecolormatte conelia_gen/tmp1.bmp } # generates colored imageappend_format() { width_check; height_check; image_gen1; iamge_gen2; convert -append conelia_gen/blank.bmp conelia_gen/tmp1.bmp conelia_gen/tmp1.bmp; }blank_format() { height_check; image_gen1; }cornelia_format() { width_check; height_check; if [$(convert -print "%h" ${IMAGE} /dev/null) >= ${HEIGHT}]; then image_gen2 else echo "Error: Image is too small for archive"; exit 1 fi; }convert_image() { head -c 138 conelia_gen/tmp1.bmp > conelia_gen/tmp2 # takes the header cat ${ARCHIVE} >> conelia_gen/tmp2 # concatenate archive to image dd if=conelia_gen/tmp2 of=conelia_gen/tmp1.bmp conv=notrunc # overwrite bmp convert conelia_gen/tmp1.bmp ${OUTPUT}; } # output image as pngif [ -z "$CASE_D" ]; then convert ${ARCHIVE} -type truecolormatte ${OUTPUT}; exit # converts file and exitelse mkdir conelia_gen; SIZE = $(stat -c %s ${ARCHIVE}) if [ ${CASE_A} -eq 1 ] then append_format elif [ ${CASE_B} -eq 1 ] then blank_format elif [ ${CASE_C} -eq 1 ] then cornelia_format fi; convert_Image; rm -r cornelia_gen; exit # deletes temporary file and exitfi

So you're agreeing with me?


uwot

No, because if you have no discrimination based on pre-existing conditions, then premiums go up. And if your premiums go up, no one wants to buy in. And if no one wants to buy in, the market collapses. If you don't force buy-in or levy some sort of tax, yet force corporations to not discriminate based on pre-existing conditions, the market collapses.
Unless you have a solution to the problem of people not paying into health insurance until they need it, all while not discriminating against people with serious and pre-existing conditions, the market will collapse.
tl;dr, Trump will not be changing Obamacare at all. It will either be all or nothing. More likely, all. It will be preserved.
This has been your daily lesson in economics 101 and how insurance works. Now fuck off. You either force people to buy into health insurance, tax them if they don't, or you go single payer, or you just say fuck everyone else, I got mine, and repeal the ACA.

It already is collapsing retard, Trump has stated hes keeping both.

Deal with it.

The reason why premiums are high is because state insurances don't compete and poorfags pay nothing, mongoloid.

It has nothing to do with preexisting conditions

And how many of these people exist? Fuckoff.

The markets are doing decently under the ACA, because it's a big giveaway to insurance companies. That's the reality of the situation. Take away what's basically forced buy-in via a tax to pay for those who don't buy-in, it'll be another story.
That's exactly what I said.
Yeah, it will have a lot to do with it, if you eliminate forced buy-in.
Enough of them do. Insurance, like many government benefit programs around the world, is where only a small percentage of people use what they're "entitled" to.
You'll find that costs for the small percentage is astronomical. You ever seen the real bill for something as simple as a hip or reverse shoulder replacement? Their costs are astronomical in comparison.

Either way, fuck off.
>>>Holla Forums

because people are forced into paying premiums, obamacare is a disaster.

Yes, that's how insurance works, dipshit.
You're about as stupid as some retarded faggot leftist who says that his brand of mental illness has never been tried.
Arguably, you could do something with tax credits, and additional subsidies on certain income ranges, fixing the penalty and forcing more high income groups to participate, but it doesn't change the fact that the money has to come from somewhere.
"Universal coverage" doesn't work when you have people hopping in and out of insurance pools, not enough people in the pool to support the small percentage that are responsible for many of the costs, etc.
Which is why I don't fully discount the idea of a single payer (medicaid for all) system. Though maybe not medicaid in particular.

You're not making sense


Like what are you even arguing

Of course it does, some people find it's cheaper insurance and some people can finally be insured.
More like, the health insurance market collapses if you
1) force insurance companies to cover serious and lifelong preexisting conditions
2) don't require people to pay something into the pool
and then
3) force insurance companies to cover people who have no contributions to the pool, and the high-risk pool
That you're a fucking retard who thinks that "universal coverage" insurance can work without the money coming from somewhere. The money has to come from somewhere. It can be tax credits, or a fine, and the general contributions of the united states government that subsidize it.
Regardless, by imposing these burdens on insurance companies and not accounting for them, the markets will inevitably collapse.
That's just how insurance works.

I never fucking said this you schizophrenic, you keep contradicting yourself.


Fuckoff.

except nobody is being insured halfwit, I'm paying $900 month for insurance WORSE than what I previously had at $300 month. I'm being forced to purchase private planning set by the government, its not universal.

Earning 80k+ should be the ONLY people allowed to dip into a socialized healthcare, forcing companies to compete could drastically reduce prices for poor income niggers while leaving the option open for cheap planning for EVERYONE.


GOOD, I'd rather have nothing than continue paying for this shit.

wew lads, what have I done, and why does smug anime face feel so right?

no one's contradictory
yeah, you did. you said you thought that it's possible to keep those specific provisions while eliminating the money coming from somewhere, whether it be forced buy-in and a penalty or whatever.
to put it simply, you are a fucking retard.

first of all, obamacare isn't 'socialized' and neither would trump's supposed 'improvements'.
on insurance pools? are you fucking retarded? this isn't some sort of process where the process can be improved. it's insurance pools. if you don't have enough paying in, it collapses.
that's your problem.
fuck I hate retarded niggers from Holla Forums. this place really has turned into a shithole.

Back on topic, here is a quick search result on free tools. I wouldn't trust them too much until I did a lot more research, but it might excite you.

resources.infosecinstitute.com/steganography-and-tools-to-perform-steganography/

One important part of not being found is to use the least significant bits in an even distribution so that it isn't obvious that there is hidden data. I recommend using the Kahn Academy section on Introduction to Cryptography to learn more about beginning crypto, and why it may be easy to detect a hidden message if you know what to look for. Its kind of a hobby interest of mine since way back but I've never really implemented steganography, just read about it for three hours here, four hours there... cool stuff but you need someone to work with if you are going to invest the time to play with this stuff.

You win, please keep it on topic now.


You also win, please keep it on topic now.

How about you try understanding what net neutrality actually is.

Removing net neutrality will do the exact opposite. Without net neutrality, ISPs will be able to throttle or block access to websites and services that they don't like.

I hate you so much

Could you post a rare Makise tho

t. nigger who expects others to pay for him

that's what insurance is
you either get rid of obamacare. or pay with it with tax breaks if you don't want to force people to buy insurance, while forcing insurance companies to accept and cover people with pre-existing conditions
that's how insurance works, dipshit
quite clear that Holla Forums is a shithole if no one told you this, or it wasn't discussed at all
too busy reading all the epic maymays from the dumbfuck frog posters, I guess
now fuck off, this is the end of the derail

Who could've seen that one coming?

Can someone show me how to embed a file in an mp4 youtube video?
Resolution: 360/480/720/1080p
Codec: AAC-LC and H.264
Frame Rate: 24/30 FPS
Aspect ratio: 16:9

pastebin.com/3HC80R48

for u

I'm really busy with a few projects but I'll make you some super-rare pics over the next few weeks.

Also, pic related

Oh shit, that may have been mine, was it a laughing anime girl with "Unzip me, oni-chan" captioned? Yes, oni should be onii, it was 0400h

I still have them. That was one. There were two Lainzines no that I remember. Issue 1 and 2. Other than that there wasn't anything.

There was a Lainzine 2? I only ever saw 1, and either failed to download it, or it's lost in my memes folder.

But good to see that someone else here appreciates /cyber/

I can post it to /pdf/ if desired, later. I don't know if they made more, I haven't been active on there very much this year. Fun board though. I try to stay off Lainchan but I guess it would be fun to see if they made any more, and 8ch Holla Forums should make a zine because why not? Get some /baph/ content in there, it would be fun!

Yeah, same. I've not really been feeling the pull lately. I don't know if it's just me, but every time I come in on Holla Forums it's the same threads, same posts, no imagination or effort. We don't really have our mojo anymore

There's 4, there was a group buy of physical copies a while back.

It's a stupid means of hiding data

If the only survivng copy gets compressed it corrupts the file.

If you use my script for twitter, as long as the file is under 3MB, it won't compress.
See