Skip to content
WJunction - Webmaster Forum

Random idea -> Data to Images

Status
Not open for further replies.

95 comments

well you could also "split" the files into the maximum size allowable by the particular imagehost, which wouldnt require a huge amount of extra code (in c# anyway).

its actually a very good idea, though i suspect that it will get found out and peoples accounts will be closed. TOS will be broken, etc.
 
Yeah, that is true, but I am sure if the word got around, Elio could make some cash from it, by incorporating his google ad code into the images everytime they are clicked/downloaded, which would mean he could upgrade, because he would be earning a lot of cash :)

Remember, the images are legal, so hopefully Google wouldn't go around checking them for illegal content ;)
 
well you could also "split" the files into the maximum size allowable by the particular imagehost, which wouldnt require a huge amount of extra code (in c# anyway).

its actually a very good idea, though i suspect that it will get found out and peoples accounts will be closed. TOS will be broken, etc.

That is the plan (to split) but it isn't that straight forward as each image needs to to able to describe the whole situation. So each individual image needs to know the total amount of images, which part of that collection that image is, file name, signature (to be sure a image is a image containing data) etc. B-)

Easily solved with:
Code:
let MaxFileNameSize = 0xff // 255
let mutable DefaultImgResolution = new Point(1600, 1600)
let HandShake = [| 0xffuy; 0x04uy; 0x09uy; 0x56uy |] // Unsigned byte array -> 255; 4; 9; 86

[<System.Flags>]
type AlphaFlags =
    | None = 0b00000000uy // Do nothing
    | EoF  = 0b00000001uy // End of File -> Stop reading

// =============================================

(* Calculate the amount of bytes the can be stored in an image of the specified resolution *)
let CalcImgBytes x y mult =
    match (x > 0), (y > 0) with
    | true, true -> (x * y) * mult
    | _ -> 0

(* Calculate the amount of images that will be needed to store the data *)
let CalcNumOfImgsRequired (dataBytes:int) (imgBytes:int) =
    (float dataBytes) / (float imgBytes)
    |> ceil
    |> int

(* Generates the header data that contains the needed info *)
let CreateHeader (part:byte) (totalParts:byte) (fileVersion:byte) (fileName:string) =
    if (fileName.Length > MaxFileNameSize) then
        let msg = "File name length must be " + string MaxFileNameSize + " or smaller and bigger than 0"
        let fn = "fileName"
        raise(new ArgumentOutOfRangeException(fn, fileName.Length, msg))
    else
        Encoding.UTF8.GetBytes(fileName)
        |> Array.append [| (byte fileName.Length); part; totalParts; fileVersion |]
        |> Array.append HandShake
        |> Array.append HandShake
        |> Array.append HandShake
        |> Seq.ofArray

CalcNumOfImgsRequired ins't complete yet though. But yeh. About the ToS, if people upload the images without using an account it's VERY hard to detect.

Oh Btw, if I end up making this a public tool the transcoder will be fully open source since I could really use tips.
 
I think this will be great, especially because it is open source :)

Is it possible to make it even harder to detect by actually making it a real image, as opposed to all those lines on the other ones lol Or is that just a test image?
 
Yeah, that is true, but I am sure if the word got around, Elio could make some cash from it, by incorporating his google ad code into the images everytime they are clicked/downloaded, which would mean he could upgrade, because he would be earning a lot of cash :)

Remember, the images are legal, so hopefully Google wouldn't go around checking them for illegal content ;)

No , if this gets out counter measures will be made and ip's found doing it banned
 
^^ well not really because then it would become easily detectable. You have a kind of #eof signature at the end of the image. The data is usually added after the #eof but of course, is easily detectable.

(@ danny, not elio).
 
No , if this gets out counter measures will be made and ip's found doing it banned

No probs mate, now I know not to upload to ImgCentre with these ;) Don't want to be banned lol

^^ well not really because then it would become easily detectable. You have a kind of #eof signature at the end of the image. The data is usually added after the #eof but of course, is easily detectable.

(@ danny, not elio).

Ah OK mate, I just thought it would make it harder to detect, but I like the idea anyway lol
 
No , if this gets out counter measures will be made and ip's found doing it banned

Just to avoid confusion, in no way would this be targeted to put stress on local image hosts (such as IC). That is, not from my side. I was thinking about tinypic and tons of other image hosts. But obviously I can't prevent people from uploading a 'data image' to IC.

@dany: This method is already undetectable. People could see that it isn't a regular image but programs can't because to them this is a normal image with normal pixel data. They would need to build a decoder and try and decode EVERY uploaded image to see if it contains extractable data. But since that would use as much CPU usage as unrar'ing a file it wouldn't be practical.
 
Yeah, I won't be using ImgCentre to upload these kind of images.

If it is undetectable, go for it :) I am all for undetectable apps, I am up for testing it for you as well mate. That is if you need any testers ;)
 
This is an amazing idea depending on how you go about doing it. It wouldn't be practical for someone to sit there and turn each rar/zip into a image.

I know its harder but it would have to be able to ask the user the size of each split, compress, and then convert all the parts.

As well as a function to re compile a folder of images.

The concept itself as to uploading warez is amazing. No waiting times, tons of mirrors for parts, ect.

Just like the boards that specify to certain file hosts you could do the same for this method of warez image hosting. It would be very successful.
 
still a way of "hiding" the visual data would be nice, though i must admit i have no idea how you would go about doing that.

It's impossible because altering pixels means altering (and corrupting) the data those pixels represent. You could combine the older method with this one though:
- Create images out of data
- for each image take a jpg and add the png to the end of it leaving the jpg visible

But again it would become detectable.
 
I think this was popular like7 years ago.. with geocities hosts and stuff.. altough less advanced as you describe it. Great idea, but with all the filehosts at this moment, don't think it'll get too popular. Heck I don't even download stuff when I see it's HJSplit cause I only have Winrar installed, it's a bitch to have so many applications just to extract a movie or whatever.
 
^ As I said before, the best way to think about this is winrar. Like winrar it would need to encode/decode data. If the size is big the data needs to be split across multiple images. Thus users would need a program to encode/decode it. Without that program all that can be done with the images is view them as one which is quite useless. Unless you consider an image that represents general binary data art <3.
 
Status
Not open for further replies.

About the author

Hyperz
Active Member · Joined
2,482
Messages
618
Reactions
113
Points

Advertise on WJunction

Reach 1000's of webmasters, hosts & affiliates. Banner & sponsored-thread slots available.

Contact us
Back
Top Bottom