Scet Posted March 30, 2010 I've recently been working on my own encryption program called occulo. Basically it hides files by using the last two bits in every color of an image, and resizes it if necessary. The problem is someone has reported that it doesn't work for them. There's nothing really special about the program, it's just a simple console application and only uses one library(DevIL). So I have no idea what's wrong. It would really help if people here could test it, especially someone with XP SP3 or Win7. Just follow the instructions on the project page for the example picture. Thanks. 0 Share this post Link to post
Maes Posted March 30, 2010 Does it have any other prerequisites? Like a Visual C++ redistributable? Because I couldn't get it to start :-/ I'll try to see if it's compilable under gcc. However a few things in the SC made me go WTF e.g. why are several things including bit rotation re-implemented in inlined asm? 0 Share this post Link to post
exp(x) Posted March 30, 2010 This reminds me of my signals and systems course where we had a sound file embedded in the least significant bits of one color channel and had to figure out how to extract it with Matlab. 0 Share this post Link to post
Scet Posted March 30, 2010 Maes said:words I suppose it may need a redistributable, it is the debug build. Also I really should implement that in C, I just wanted the project done which is way I used the assembly. Edit: I've uploaded the release build, with the asm removed. Please try that. 0 Share this post Link to post
Maes Posted March 31, 2010 Well, now it works OK. Encrypts/decrypts successfully, with or without a password, and resizes image to accommodate for large data files (the space requirements are Image * Height *4 = FileSize, right?). Probably the other people you mentioned also had problems with the debug build. Also, why not replacing the calls to the rotate functions with a simple data<<count or data>>count? it will be both more compact and faster, without the overhead of calling a function (C optimization zealots, don't speak about automatic inlining yet). 0 Share this post Link to post
Scet Posted April 1, 2010 (the space requirements are Image * Height *4 = FileSize, right?) I don't know the exact equation, but it's two bits per channel. Since the output is always 24-bpp then it's one byte per one and a third pixels. replacing the calls to the rotate functions with a simple data<<count or data>>count? Well the <</>> operators are shift, not rotate. I'm now using ( ( data << rotation ) | ( data >> ( 8 - rotation ) ) ) instead of the function. I've uploaded a new proper version if anyone is interested. Thanks for testing Maes. 0 Share this post Link to post