License GNU General Public License, version 2
Lines 539
Keywords
code (4) easter egg (1) hide (1) image (5) jpg (1) privacy (3) steganography (1) visual c++ (1) web (3) zip (5)
Permissions
Owner: sbosshardt
Viewable by Everyone
Editable by All Siafoo Users
Hide
Easily highlight source code for your blog with our Syntax Highlighter. Join Siafoo Now or Learn More

Use image files as hidden archives (Visual C++ 2008) Atom Feed 0

In Brief This VC++ project/program lets you hide files within image files (jpg works for sure, you might be able to do other file types too). Maybe you guys can find a use for this. The posted code is a single file (Form1.h) of the whole project, but it's a standard Windows Forms project and Form1.h is the only source file I edited.... more
# 's
  1#pragma once
2
3
4#include "stdafx.h"
5#include "windows.h"
6
7
8
9
10namespace ThousandWords {
11
12 using namespace System;
13 using namespace System::ComponentModel;
14 using namespace System::Collections;
15 using namespace System::Windows::Forms;
16 using namespace System::Data;
17 using namespace System::Drawing;
18 using namespace System::Runtime::InteropServices;
19
20
21 /// <summary>
22 /// Summary for Form1
23 ///
24 /// WARNING: If you change the name of this class, you will need to change the
25 /// 'Resource File Name' property for the managed resource compiler tool
26 /// associated with all .resx files this class depends on. Otherwise,
27 /// the designers will not be able to interact properly with localized
28 /// resources associated with this form.
29 /// </summary>
30 public ref class Form1 : public System::Windows::Forms::Form
31 {
32 public:
33 Form1(void)
34 {
35 InitializeComponent();
36 //
37 //TODO: Add the constructor code here
38 //
39 }
40
41 protected:
42 /// <summary>
43 /// Clean up any resources being used.
44 /// </summary>
45 ~Form1()
46 {
47 if (components)
48 {
49 delete components;
50 }
51 }
52 private: System::Windows::Forms::OpenFileDialog^ openFileDialog1;
53 private: System::Windows::Forms::MenuStrip^ menuStrip1;
54 private: System::Windows::Forms::ToolStripMenuItem^ fileToolStripMenuItem;
55 private: System::Windows::Forms::ToolStripMenuItem^ chooseImageToolStripMenuItem;
56 private: System::Windows::Forms::ToolStripMenuItem^ chooseSourceFolderToolStripMenuItem;
57 private: System::Windows::Forms::ToolStripMenuItem^ exitToolStripMenuItem;
58
59
60
61
62
63
64
65
66
67
68 private: System::Windows::Forms::FolderBrowserDialog^ folderBrowserDialog1;
69 private: System::Windows::Forms::SaveFileDialog^ saveFileDialog1;
70
71
72
73
74 private: System::Windows::Forms::TabControl^ tabControl1;
75 private: System::Windows::Forms::TabPage^ tabPage1;
76 private: System::Windows::Forms::PictureBox^ pictureBox1;
77 private: System::Windows::Forms::TabPage^ tabPage2;
78 private: System::Windows::Forms::Button^ button4;
79 private: System::Windows::Forms::Button^ button3;
80 private: System::Windows::Forms::Label^ label4;
81 private: System::Windows::Forms::TextBox^ textBox3;
82 private: System::Windows::Forms::RadioButton^ radioButton2;
83 private: System::Windows::Forms::RadioButton^ radioButton1;
84 private: System::Windows::Forms::Label^ label3;
85 private: System::Windows::Forms::Button^ button2;
86 private: System::Windows::Forms::TextBox^ textBox2;
87 private: System::Windows::Forms::Label^ label2;
88 private: System::Windows::Forms::Button^ button1;
89 private: System::Windows::Forms::TextBox^ textBox1;
90 private: System::Windows::Forms::Label^ label1;
91 private: System::Windows::Forms::Label^ label5;
92 private: System::Windows::Forms::Button^ button7;
93 private: System::Windows::Forms::Button^ button6;
94 private: System::Windows::Forms::TextBox^ textBox5;
95 private: System::Windows::Forms::Label^ label6;
96 private: System::Windows::Forms::Button^ button5;
97 private: System::Windows::Forms::TextBox^ textBox4;
98 private: System::Windows::Forms::PictureBox^ pictureBox2;
99 protected:
100
101 private:
102 /// <summary>
103 /// Required designer variable.
104 /// </summary>
105 System::ComponentModel::Container ^components;
106
107#pragma region Windows Form Designer generated code
108 /// <summary>
109 /// Required method for Designer support - do not modify
110 /// the contents of this method with the code editor.
111 /// </summary>
112 void InitializeComponent(void)
113 {
114 this->openFileDialog1 = (gcnew System::Windows::Forms::OpenFileDialog());
115 this->menuStrip1 = (gcnew System::Windows::Forms::MenuStrip());
116 this->fileToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
117 this->chooseImageToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
118 this->chooseSourceFolderToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
119 this->exitToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
120 this->folderBrowserDialog1 = (gcnew System::Windows::Forms::FolderBrowserDialog());
121 this->saveFileDialog1 = (gcnew System::Windows::Forms::SaveFileDialog());
122 this->tabControl1 = (gcnew System::Windows::Forms::TabControl());
123 this->tabPage1 = (gcnew System::Windows::Forms::TabPage());
124 this->button4 = (gcnew System::Windows::Forms::Button());
125 this->button3 = (gcnew System::Windows::Forms::Button());
126 this->label4 = (gcnew System::Windows::Forms::Label());
127 this->textBox3 = (gcnew System::Windows::Forms::TextBox());
128 this->radioButton2 = (gcnew System::Windows::Forms::RadioButton());
129 this->radioButton1 = (gcnew System::Windows::Forms::RadioButton());
130 this->label3 = (gcnew System::Windows::Forms::Label());
131 this->button2 = (gcnew System::Windows::Forms::Button());
132 this->textBox2 = (gcnew System::Windows::Forms::TextBox());
133 this->label2 = (gcnew System::Windows::Forms::Label());
134 this->button1 = (gcnew System::Windows::Forms::Button());
135 this->textBox1 = (gcnew System::Windows::Forms::TextBox());
136 this->label1 = (gcnew System::Windows::Forms::Label());
137 this->pictureBox1 = (gcnew System::Windows::Forms::PictureBox());
138 this->tabPage2 = (gcnew System::Windows::Forms::TabPage());
139 this->pictureBox2 = (gcnew System::Windows::Forms::PictureBox());
140 this->button7 = (gcnew System::Windows::Forms::Button());
141 this->button6 = (gcnew System::Windows::Forms::Button());
142 this->textBox5 = (gcnew System::Windows::Forms::TextBox());
143 this->label6 = (gcnew System::Windows::Forms::Label());
144 this->button5 = (gcnew System::Windows::Forms::Button());
145 this->textBox4 = (gcnew System::Windows::Forms::TextBox());
146 this->label5 = (gcnew System::Windows::Forms::Label());
147 this->menuStrip1->SuspendLayout();
148 this->tabControl1->SuspendLayout();
149 this->tabPage1->SuspendLayout();
150 (cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->pictureBox1))->BeginInit();
151 this->tabPage2->SuspendLayout();
152 (cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->pictureBox2))->BeginInit();
153 this->SuspendLayout();
154 //
155 // openFileDialog1
156 //
157 this->openFileDialog1->FileName = L"openFileDialog1";
158 this->openFileDialog1->Multiselect = true;
159 this->openFileDialog1->FileOk += gcnew System::ComponentModel::CancelEventHandler(this, &Form1::openFileDialog1_FileOk);
160 //
161 // menuStrip1
162 //
163 this->menuStrip1->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(1) {this->fileToolStripMenuItem});
164 this->menuStrip1->Location = System::Drawing::Point(0, 0);
165 this->menuStrip1->Name = L"menuStrip1";
166 this->menuStrip1->Size = System::Drawing::Size(669, 24);
167 this->menuStrip1->TabIndex = 0;
168 this->menuStrip1->Text = L"menuStrip1";
169 //
170 // fileToolStripMenuItem
171 //
172 this->fileToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(3) {this->chooseImageToolStripMenuItem,
173 this->chooseSourceFolderToolStripMenuItem, this->exitToolStripMenuItem});
174 this->fileToolStripMenuItem->Name = L"fileToolStripMenuItem";
175 this->fileToolStripMenuItem->Size = System::Drawing::Size(37, 20);
176 this->fileToolStripMenuItem->Text = L"File";
177 //
178 // chooseImageToolStripMenuItem
179 //
180 this->chooseImageToolStripMenuItem->Name = L"chooseImageToolStripMenuItem";
181 this->chooseImageToolStripMenuItem->Size = System::Drawing::Size(198, 22);
182 this->chooseImageToolStripMenuItem->Text = L"Choose Image...";
183 //
184 // chooseSourceFolderToolStripMenuItem
185 //
186 this->chooseSourceFolderToolStripMenuItem->Name = L"chooseSourceFolderToolStripMenuItem";
187 this->chooseSourceFolderToolStripMenuItem->Size = System::Drawing::Size(198, 22);
188 this->chooseSourceFolderToolStripMenuItem->Text = L"Choose Source Folder...";
189 //
190 // exitToolStripMenuItem
191 //
192 this->exitToolStripMenuItem->Name = L"exitToolStripMenuItem";
193 this->exitToolStripMenuItem->Size = System::Drawing::Size(198, 22);
194 this->exitToolStripMenuItem->Text = L"Exit";
195 this->exitToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::exitToolStripMenuItem_Click);
196 //
197 // tabControl1
198 //
199 this->tabControl1->Controls->Add(this->tabPage1);
200 this->tabControl1->Controls->Add(this->tabPage2);
201 this->tabControl1->Location = System::Drawing::Point(12, 27);
202 this->tabControl1->Name = L"tabControl1";
203 this->tabControl1->SelectedIndex = 0;
204 this->tabControl1->Size = System::Drawing::Size(648, 282);
205 this->tabControl1->TabIndex = 15;
206 //
207 // tabPage1
208 //
209 this->tabPage1->Controls->Add(this->button4);
210 this->tabPage1->Controls->Add(this->button3);
211 this->tabPage1->Controls->Add(this->label4);
212 this->tabPage1->Controls->Add(this->textBox3);
213 this->tabPage1->Controls->Add(this->radioButton2);
214 this->tabPage1->Controls->Add(this->radioButton1);
215 this->tabPage1->Controls->Add(this->label3);
216 this->tabPage1->Controls->Add(this->button2);
217 this->tabPage1->Controls->Add(this->textBox2);
218 this->tabPage1->Controls->Add(this->label2);
219 this->tabPage1->Controls->Add(this->button1);
220 this->tabPage1->Controls->Add(this->textBox1);
221 this->tabPage1->Controls->Add(this->label1);
222 this->tabPage1->Controls->Add(this->pictureBox1);
223 this->tabPage1->Location = System::Drawing::Point(4, 22);
224 this->tabPage1->Name = L"tabPage1";
225 this->tabPage1->Padding = System::Windows::Forms::Padding(3);
226 this->tabPage1->Size = System::Drawing::Size(640, 256);
227 this->tabPage1->TabIndex = 0;
228 this->tabPage1->Text = L"Put Into Image";
229 this->tabPage1->UseVisualStyleBackColor = true;
230 //
231 // button4
232 //
233 this->button4->Location = System::Drawing::Point(322, 205);
234 this->button4->Name = L"button4";
235 this->button4->Size = System::Drawing::Size(133, 45);
236 this->button4->TabIndex = 23;
237 this->button4->Text = L"Put Into Image";
238 this->button4->UseVisualStyleBackColor = true;
239 this->button4->Click += gcnew System::EventHandler(this, &Form1::button4_Click_1);
240 //
241 // button3
242 //
243 this->button3->Location = System::Drawing::Point(554, 162);
244 this->button3->Name = L"button3";
245 this->button3->Size = System::Drawing::Size(75, 23);
246 this->button3->TabIndex = 22;
247 this->button3->Text = L"Browse...";
248 this->button3->UseVisualStyleBackColor = true;
249 this->button3->Click += gcnew System::EventHandler(this, &Form1::button3_Click_1);
250 //
251 // label4
252 //
253 this->label4->AutoSize = true;
254 this->label4->Location = System::Drawing::Point(319, 148);
255 this->label4->Name = L"label4";
256 this->label4->Size = System::Drawing::Size(61, 13);
257 this->label4->TabIndex = 21;
258 this->label4->Text = L"Output File:";
259 //
260 // textBox3
261 //
262 this->textBox3->Location = System::Drawing::Point(322, 164);
263 this->textBox3->Name = L"textBox3";
264 this->textBox3->Size = System::Drawing::Size(226, 20);
265 this->textBox3->TabIndex = 20;
266 //
267 // radioButton2
268 //
269 this->radioButton2->AutoSize = true;
270 this->radioButton2->Location = System::Drawing::Point(412, 67);
271 this->radioButton2->Name = L"radioButton2";
272 this->radioButton2->Size = System::Drawing::Size(100, 17);
273 this->radioButton2->TabIndex = 19;
274 this->radioButton2->TabStop = true;
275 this->radioButton2->Text = L"Individual File(s)";
276 this->radioButton2->UseVisualStyleBackColor = true;
277 //
278 // radioButton1
279 //
280 this->radioButton1->AutoSize = true;
281 this->radioButton1->Location = System::Drawing::Point(322, 67);
282 this->radioButton1->Name = L"radioButton1";
283 this->radioButton1->Size = System::Drawing::Size(84, 17);
284 this->radioButton1->TabIndex = 18;
285 this->radioButton1->TabStop = true;
286 this->radioButton1->Text = L"Entire Folder";
287 this->radioButton1->UseVisualStyleBackColor = true;
288 //
289 // label3
290 //
291 this->label3->AutoSize = true;
292 this->label3->Location = System::Drawing::Point(319, 51);
293 this->label3->Name = L"label3";
294 this->label3->Size = System::Drawing::Size(75, 13);
295 this->label3->TabIndex = 17;
296 this->label3->Text = L"Payload Type:";
297 //
298 // button2
299 //
300 this->button2->Location = System::Drawing::Point(554, 109);
301 this->button2->Name = L"button2";
302 this->button2->Size = System::Drawing::Size(75, 23);
303 this->button2->TabIndex = 16;
304 this->button2->Text = L"Browse...";
305 this->button2->UseVisualStyleBackColor = true;
306 this->button2->Click += gcnew System::EventHandler(this, &Form1::button2_Click_1);
307 //
308 // textBox2
309 //
310 this->textBox2->Location = System::Drawing::Point(322, 111);
311 this->textBox2->Name = L"textBox2";
312 this->textBox2->Size = System::Drawing::Size(226, 20);
313 this->textBox2->TabIndex = 15;
314 //
315 // label2
316 //
317 this->label2->AutoSize = true;
318 this->label2->Location = System::Drawing::Point(319, 95);
319 this->label2->Name = L"label2";
320 this->label2->Size = System::Drawing::Size(48, 13);
321 this->label2->TabIndex = 14;
322 this->label2->Text = L"Payload:";
323 //
324 // button1
325 //
326 this->button1->Location = System::Drawing::Point(554, 17);
327 this->button1->Name = L"button1";
328 this->button1->Size = System::Drawing::Size(75, 23);
329 this->button1->TabIndex = 8;
330 this->button1->Text = L"Browse...";
331 this->button1->UseVisualStyleBackColor = true;
332 this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click_1);
333 //
334 // textBox1
335 //
336 this->textBox1->Location = System::Drawing::Point(322, 19);
337 this->textBox1->Name = L"textBox1";
338 this->textBox1->Size = System::Drawing::Size(226, 20);
339 this->textBox1->TabIndex = 7;
340 this->textBox1->TextChanged += gcnew System::EventHandler(this, &Form1::textBox1_TextChanged);
341 //
342 // label1
343 //
344 this->label1->AutoSize = true;
345 this->label1->Location = System::Drawing::Point(319, 3);
346 this->label1->Name = L"label1";
347 this->label1->Size = System::Drawing::Size(95, 13);
348 this->label1->TabIndex = 6;
349 this->label1->Text = L"Source Image File:";
350 //
351 // pictureBox1
352 //
353 this->pictureBox1->BorderStyle = System::Windows::Forms::BorderStyle::Fixed3D;
354 this->pictureBox1->Location = System::Drawing::Point(6, 1);
355 this->pictureBox1->Name = L"pictureBox1";
356 this->pictureBox1->Size = System::Drawing::Size(307, 249);
357 this->pictureBox1->TabIndex = 5;
358 this->pictureBox1->TabStop = false;
359 //
360 // tabPage2
361 //
362 this->tabPage2->Controls->Add(this->pictureBox2);
363 this->tabPage2->Controls->Add(this->button7);
364 this->tabPage2->Controls->Add(this->button6);
365 this->tabPage2->Controls->Add(this->textBox5);
366 this->tabPage2->Controls->Add(this->label6);
367 this->tabPage2->Controls->Add(this->button5);
368 this->tabPage2->Controls->Add(this->textBox4);
369 this->tabPage2->Controls->Add(this->label5);
370 this->tabPage2->Location = System::Drawing::Point(4, 22);
371 this->tabPage2->Name = L"tabPage2";
372 this->tabPage2->Padding = System::Windows::Forms::Padding(3);
373 this->tabPage2->Size = System::Drawing::Size(640, 256);
374 this->tabPage2->TabIndex = 1;
375 this->tabPage2->Text = L"Extract From Image";
376 this->tabPage2->UseVisualStyleBackColor = true;
377 //
378 // pictureBox2
379 //
380 this->pictureBox2->BorderStyle = System::Windows::Forms::BorderStyle::Fixed3D;
381 this->pictureBox2->Location = System::Drawing::Point(6, 6);
382 this->pictureBox2->Name = L"pictureBox2";
383 this->pictureBox2->Size = System::Drawing::Size(310, 244);
384 this->pictureBox2->TabIndex = 7;
385 this->pictureBox2->TabStop = false;
386 //
387 // button7
388 //
389 this->button7->Location = System::Drawing::Point(325, 130);
390 this->button7->Name = L"button7";
391 this->button7->Size = System::Drawing::Size(133, 45);
392 this->button7->TabIndex = 6;
393 this->button7->Text = L"Extract From Image";
394 this->button7->UseVisualStyleBackColor = true;
395 this->button7->Click += gcnew System::EventHandler(this, &Form1::button7_Click);
396 //
397 // button6
398 //
399 this->button6->Location = System::Drawing::Point(557, 84);
400 this->button6->Name = L"button6";
401 this->button6->Size = System::Drawing::Size(75, 23);
402 this->button6->TabIndex = 5;
403 this->button6->Text = L"Browse...";
404 this->button6->UseVisualStyleBackColor = true;
405 this->button6->Click += gcnew System::EventHandler(this, &Form1::button6_Click);
406 //
407 // textBox5
408 //
409 this->textBox5->Location = System::Drawing::Point(325, 86);
410 this->textBox5->Name = L"textBox5";
411 this->textBox5->Size = System::Drawing::Size(226, 20);
412 this->textBox5->TabIndex = 4;
413 //
414 // label6
415 //
416 this->label6->AutoSize = true;
417 this->label6->Location = System::Drawing::Point(322, 70);
418 this->label6->Name = L"label6";
419 this->label6->Size = System::Drawing::Size(95, 13);
420 this->label6->TabIndex = 3;
421 this->label6->Text = L"Destination Folder:";
422 //
423 // button5
424 //
425 this->button5->Location = System::Drawing::Point(557, 25);
426 this->button5->Name = L"button5";
427 this->button5->Size = System::Drawing::Size(75, 23);
428 this->button5->TabIndex = 2;
429 this->button5->Text = L"Browse...";
430 this->button5->UseVisualStyleBackColor = true;
431 this->button5->Click += gcnew System::EventHandler(this, &Form1::button5_Click);
432 //
433 // textBox4
434 //
435 this->textBox4->Location = System::Drawing::Point(325, 27);
436 this->textBox4->Name = L"textBox4";
437 this->textBox4->Size = System::Drawing::Size(226, 20);
438 this->textBox4->TabIndex = 1;
439 this->textBox4->TextChanged += gcnew System::EventHandler(this, &Form1::textBox4_TextChanged);
440 //
441 // label5
442 //
443 this->label5->AutoSize = true;
444 this->label5->Location = System::Drawing::Point(322, 11);
445 this->label5->Name = L"label5";
446 this->label5->Size = System::Drawing::Size(63, 13);
447 this->label5->TabIndex = 0;
448 this->label5->Text = L"Source File:";
449 //
450 // Form1
451 //
452 this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
453 this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
454 this->ClientSize = System::Drawing::Size(669, 317);
455 this->Controls->Add(this->tabControl1);
456 this->Controls->Add(this->menuStrip1);
457 this->MainMenuStrip = this->menuStrip1;
458 this->Name = L"Form1";
459 this->Text = L"ThousandWords - When a picture is more than just a picture...";
460 this->menuStrip1->ResumeLayout(false);
461 this->menuStrip1->PerformLayout();
462 this->tabControl1->ResumeLayout(false);
463 this->tabPage1->ResumeLayout(false);
464 this->tabPage1->PerformLayout();
465 (cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->pictureBox1))->EndInit();
466 this->tabPage2->ResumeLayout(false);
467 this->tabPage2->PerformLayout();
468 (cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->pictureBox2))->EndInit();
469 this->ResumeLayout(false);
470 this->PerformLayout();
471
472 }
473#pragma endregion
474 private: System::Void openFileDialog1_FileOk(System::Object^ sender, System::ComponentModel::CancelEventArgs^ e) {
475 }
476 private: System::Void button1_Click_1(System::Object^ sender, System::EventArgs^ e) {
477 openFileDialog1->ShowDialog();
478 textBox1->Text = openFileDialog1->FileName;
479 }
480private: System::Void exitToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
481 this->Close();
482 }
483private: System::Void textBox1_TextChanged(System::Object^ sender, System::EventArgs^ e) {
484 pictureBox1->ImageLocation = textBox1->Text;
485 pictureBox1->SizeMode = PictureBoxSizeMode::StretchImage;
486 }
487private: System::Void button2_Click_1(System::Object^ sender, System::EventArgs^ e) {
488 if (radioButton1->Checked) // select folder
489 {
490 folderBrowserDialog1->ShowDialog();
491 textBox2->Text = folderBrowserDialog1->SelectedPath;
492 }
493 else if (radioButton2->Checked) // select one or more files
494 {
495 openFileDialog1->ShowDialog();
496
497 for (int i = 0; i < openFileDialog1->FileNames->Length; i++)
498 {
499 textBox2->Text += "\"" + openFileDialog1->FileNames[i] + "\" ";
500 }
501 }
502 else
503 {
504 MessageBox::Show("Please select whether you are adding a file or a folder!","Attention!",MessageBoxButtons::OK,MessageBoxIcon::Exclamation);
505 }
506 }
507private: System::Void button3_Click_1(System::Object^ sender, System::EventArgs^ e) {
508 saveFileDialog1->ShowDialog();
509 textBox3->Text = saveFileDialog1->FileName;
510 }
511private: System::Void button4_Click_1(System::Object^ sender, System::EventArgs^ e) {
512 if (textBox1->Text->Length && textBox2->Text->Length && textBox3->Text->Length)
513 {
514 String ^Command = "7z a files.7z " + textBox2->Text;
515 char* com = (char*)(void*)Marshal::StringToHGlobalAnsi(Command);
516 //MessageBox::Show(Command);
517 system(com);
518
519 Command = "COPY /B \"" + textBox1->Text + "\" + \"files.7z\" \"" + textBox3->Text + "\"";
520 com = (char*)(void*)Marshal::StringToHGlobalAnsi(Command);
521 //MessageBox::Show(Command);
522 system(com);
523
524 Command = "del files.7z";
525 com = (char*)(void*)Marshal::StringToHGlobalAnsi(Command);
526 //MessageBox::Show(Command);
527 system(com);
528
529 }
530 else
531 {
532 String ^SourceImage;
533 String ^SourceArchive;
534 String ^DestinationImage;
535 if (!textBox1->Text->Length)
536 {
537 SourceImage = " [source image]";
538 }
539 if (!textBox2->Text->Length)
540 {
541 SourceArchive = " [source archive]";
542 }
543 if (!textBox3->Text->Length)
544 {
545 DestinationImage = " [destination image]";
546 }
547 MessageBox::Show("You need to specify" + SourceImage + SourceArchive + DestinationImage + "!","Error",MessageBoxButtons::OK,MessageBoxIcon::Stop);
548 }
549 }
550private: System::Void button5_Click(System::Object^ sender, System::EventArgs^ e) {
551 openFileDialog1->ShowDialog();
552 textBox4->Text = openFileDialog1->FileName;
553 }
554private: System::Void textBox4_TextChanged(System::Object^ sender, System::EventArgs^ e) {
555 pictureBox2->ImageLocation = textBox4->Text;
556 pictureBox2->SizeMode = PictureBoxSizeMode::StretchImage;
557 }
558private: System::Void button6_Click(System::Object^ sender, System::EventArgs^ e) {
559 folderBrowserDialog1->ShowDialog();
560 textBox5->Text = folderBrowserDialog1->SelectedPath;
561 }
562private: System::Void button7_Click(System::Object^ sender, System::EventArgs^ e) {
563 String ^Command = "7z e -o\"" + textBox5->Text + "\" \"" +textBox4->Text + "\"";
564 char* com = (char*)(void*)Marshal::StringToHGlobalAnsi(Command);
565 //MessageBox::Show(Command);
566 system(com);
567 }
568
569};
570}

This VC++ project/program lets you hide files within image files (jpg works for sure, you might be able to do other file types too). Maybe you guys can find a use for this. The posted code is a single file (Form1.h) of the whole project, but it's a standard Windows Forms project and Form1.h is the only source file I edited.

The project and program are contained in the screenshot for this project. Currently, zip file uploads aren't working on Siafoo so there's no direct download link, but you can save the picture to your computer and open it with an archiving program (WinRar and 7Zip have been tested so far). If that doesn't work, you can try this (non-permanent) link: http://pollux.csustan.edu/~sbosshar/ThousandWords.zip .

Included is the code, project, executable, 7zip executable (it's GPL), and a sample image for you to test out. This concept has some potential - for instance a firefox extension that integrates this could allow users to create websites within images, something that could be useful on social networking sites.