Steganography

UKworkshop.co.uk

Help Support UKworkshop.co.uk:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.

DrPhill

Cyber Heretic
Joined
15 Feb 2012
Messages
1,154
Reaction score
314
Location
Directly above the center of the earth
I am not sure if anyone here would be interested, but during the bad weather I entertained myself indoors by writing a program that hides text messages in jpg image files. The general technique is called steganography, but my program uses none of the techniques described in the article.

I am not sure how 'useful' such a program is.... it was more of a mental exercise.

Anyway, the program is free to all. Let me know what you think.

Phill
 
Well done DrPhill.
I too dabble in bits and pieces of programming, normally when I have a small task which I otherwise could not manage. That is how the Sketchup plugin, see below, came into being. You will have experienced the buzz when a program works after some effort. I got a very similar buzz when I realised that my plugin was in use in many places around the world.

Well done again.
xy
 
Snap, I'm just putting the finishing touches to a USB EEPROM programmer which involves a VB6 controller and HEX file decoder on the PC and PIC firmware to receive the data over USB and programme the EEPROM. I only really do programming/electronics in the winter and it's taken years of bitting and bobbing to finally get some fruition.
 
Crikey, that's deep stuff. Way beyond me. Stil it's good to keep the brain working. Especially on something useful.
xy
 
Thanks both for your encouragement.

xy mosian":3aw6qze2 said:
I got a very similar buzz when I realised that my plugin was in use in many places around the world.
Very well done - producing something that others find useful. The only time I have managed that was with a program for calculating/visualising the placement of holes on tin whistles. Your printer pugin sounds much more widely useful.

monkeybiter":3aw6qze2 said:
USB EEPROM programmer which involves a VB6 controller and HEX file decoder on the PC and PIC firmware to receive the data over USB and programme the EEPROM
Wow, I understand that and its uses, but VB6? Really? I always found the basic family too much temptation to bad coding. You must have iron discipline.

Without a workshop I need to find something to do during the winter (and I can code in the warm).
 
I will need to become comfortable with C to reach my ultimate goal but my activity is so infrequent I have to make sure that I actually reach a position where I can return to the project months later without having to spend too much 'catch-up' time. To do that at the moment the quickest way is to fall back on something I'm used to.
I have used C but my lack of iron discipline made me launch into getting it working rather than teaching myself, only to forget everything again by next winter.
 
Ah, yes, sorry - what you know well is always the best language for the job. Learning a language while just complicate solving the problem.
It is easy to forget that my knowledge of several languages is the product of a rare career path.

FWIW my feeling is that C or C++ would better suit the lower levels you are coding to. Trouble is that you need to manage the resources. A language from the Java/C# family might be a fair compromise.
 
The next stage will require PIC, Z80 and PC coding. Once that works it will be PIC, 68000 and PC. After that the 68000 system will be added to with an FPGA providing VGA [probably] display but that will be done in VHDL which is different again. I've started on the C path [and VHDL] and I intend to code each platform of the next stage in it, in the long run it should make it easier [re-use etc.]. But it definitely will be a long run.
 
Eh?

I'm just checking my computer settings in case It's somehow reset itself to a foreign language :D

Note to self: 'must return to safety of sharpening threads'
 
monkeybiter":33twpc6j said:
The next stage will require PIC, Z80 and PC coding. Once that works it will be PIC, 68000 and PC. After that the 68000 system will be added to with an FPGA providing VGA [probably] display but that will be done in VHDL which is different again. I've started on the C path [and VHDL] and I intend to code each platform of the next stage in it, in the long run it should make it easier [re-use etc.]. But it definitely will be a long run.

Sound like some kind of retro-emulation project?

BugBear
 
Not emulation, just trying to finally get the wheels turning on a 40 year old ambition :roll: I've always wanted to design and build a simple computer.
We'll see if there are enough years left to get somewhere with it?
 
monkeybiter":17949ymw said:
Not emulation, just trying to finally get the wheels turning on a 40 year old ambition :roll: I've always wanted to design and build a simple computer.
We'll see if there are enough years left to get somewhere with it?

An interesting if long-term project. A bit like building your own house from scratch, I guess. Except that most of the 'materials' are free. What I like in particular about coding is that all the untidiness 'disappears' when you turn the machine off. You can also make your own tools, save every stage of the build and instantly return to an earlier stage if you mess something up, and reuse helpful stuff from the internet.

Shame the results are not as tangible/saleable as tables and chairs.....
 
Can you imagine if you could incrementally save your progress in woodwork, no poor joints/botched finishes, just delete and reload an earlier version.
 
DrPhill":2phpglog said:
Thanks both for your encouragement.

xy mosian":2phpglog said:
I got a very similar buzz when I realised that my plugin was in use in many places around the world.
Very well done - producing something that others find useful. The only time I have managed that was with a program for calculating/visualising the placement of holes on tin whistles. Your printer pugin sounds much more widely useful.

Thanks DrPhill. I was lucky, fortunatly I needed a program which others find useful. Dave Richards of Design, Click, Build was very helpful in final desing stages. Our own Eric The Viking helped with testing larger sized printing.

DrPhill":2phpglog said:
Without a workshop I need to find something to do during the winter (and I can code in the warm).
Precisely.

xy
 
monkeybiter":k4lfauzy said:
Not emulation, just trying to finally get the wheels turning on a 40 year old ambition :roll: I've always wanted to design and build a simple computer.
We'll see if there are enough years left to get somewhere with it?

That sounds like a virtual boat in the Garden, but without the mess and neighbour comments. A long time ambition. Keep at it.
xy
 
Steganography is a bit beyond me, but I did send our older two off to summer camp one year with a one-time pad and stamps for postcards. My son didn't bother, but we had a couple of cards from daughter #1, who thoroughly enjoyed doing it.

They were very easy to make in Excel, giving a fresh set of codes each time the spreadsheet was loaded, so you simply made two copies of each on the printer. For convenience, I put a reference no. in a top corner, which started the message in"plain".

Being Excel it probably wasn't very random, but I'm fairly sure that if it had been used in anger, Cheltenham would have had considerable difficulties.

Can you still buy random tables? IIRC they were used in statistics (data analysis, surveys, etc.).

FWIW, I'm dead impressed you can put code into JPEGs. I'd have thought the compression would make that really hard, as it's lossy.
 
I remember reading some years ago about a service using webcams pointed at lava lamps to generate and sell random numbers.
I always wondered what the returns policy was, if you'd already thought of that one.
 
Eric The Viking":2oxx5uvh said:
Can you still buy random tables? IIRC they were used in statistics (data analysis, surveys, etc.).

I am not sure what is available on paper, but many crypto libraries would make it an easy project (eg javax.crypto). Cryptographic grade randomness is available for a few lines of code (I think you could use JavaScript or groovy to access javax.crypto in a few lines and bish-bash-bosh job done. Available at a printer near you).

Eric The Viking":2oxx5uvh said:
FWIW, I'm dead impressed you can put code into JPEGs. I'd have thought the compression would make that really hard, as it's lossy.
Thanks, and well spotted. The whole idea was to manipulate the compressed data rather than the decompressed data. It means that every byte of the the encoded message is spread across 750 (+/- 250) pixels. Think of it as hiding a message in the losses involved in compression.

The 'standard' bit plane manipulations would indeed be lost in jpegs - which is why pngs are typically used. But the standard bit-plane manipulations are relatively easy to detect, and who sends photos as pngs? Part of the 'secrecy' comes from the 'needle in a haystack' task of detecting a modified image amongst millions of jpgs flying around the internet. Detecting a manipulated message by looking at the image would be very difficult, as the changes are similar to those caused by the compression algorithm.
 
Back
Top