wbStego4
Developer Documentation
Introduction
This documentation
coveres wbStego4.3open.
The source distribution contains forms and source files for Delphi 5 or
higher and Kylix 1 or higher.
wbStego4.3open
is published under the GNU
General Public License (GPL).
Contents of
the Source Distribution
The source distribution contains the following directories:
/ |
root directory, containg the project file, the source files (*.pas),
and the text and image files needed to run the program |
/d5dfms |
contains the forms in Delphi 5 format, copy them into the root directory
to use them |
/kylixdfms |
contains the forms in Kylix format, copy them into the root directory
to use them |
/dcpcrypt |
contains files of DCPCrypt
library by Dave Barton |
The distribution's root directory contains the following files (if the
file type is "Form", there is a .pas file in the root directory
and a .dfm in the D5 or Kylix directory).
File name |
File type |
Description |
wbsData.pas |
Unit |
holds global data |
main32.pas |
Form |
defines Form14, the wbStego
main window containing both wizard and flow chart user interface;
does all the initialization |
SelDType.pas |
Form |
defines Form1, dialog to select data type of carrier
file if it has not been detected automatically |
Fc_set.pas |
Form |
defines Form2, encryption settings dialog (called from
flow chart UI) |
Fc_pwd.pas |
Form |
defines Form3, encryption password dialog (called from
flow chart UI) |
Bin32Hdl.pas |
Unit |
Bit operations on 32bit integers |
splash.pas |
Form |
defines Form5, splash screen |
nocrypt.pas |
Form |
defines Form6, dialog saying that encryption not supported
(obsolete) |
regtools.pas |
Form |
defines Form7, registration dialog (obsolete) |
copyrightmgr.pas |
Form |
defines Form8, copyright information manager dialog
(definition of copyright info profiles) |
selectcopyright.pas |
Form |
defines Form9, selection dialog for existing copyright
information profiles |
MultiLang.pas |
Unit |
handling of internationalization, uses custom file format
(cf. MultiDataFile.pas)
to store string table and images |
SmartFileCopy.pas |
Unit |
file copy utility |
MultiDataFile.pas |
Unit |
handling of files composed of block introduced by a
size header and terminated by zeros |
working.pas |
Form |
defines Form11 |
EncryptedDataFile.pas |
Unit |
class representing encrypted files to be hidden |
MLKBBSGenerator.pas |
Unit |
generates sequences of pseudo random numbers |
findcarrier.pas |
Form |
defines Form4 |
wbsUtil.pas |
Unit |
Formatting of label caption strings |
cpi_decod.pas |
Form |
defines Form14 |
settings.pas |
Form |
defines Form10 |
ASCIIInsert.pas |
Unit |
carrier file class for insertion method into text files |
ASCIIReplace.pas
|
Unit |
carrier file class for replacement method into text
files |
BasicFile.pas |
Unit |
generic file class |
DataFile.pas |
Unit |
class representing file to be hidden |
CarrierFile.pas |
Unit |
generic carrier file class |
BMPReplace.pas |
Unit |
carrier file class for replacement method using BMPs |
PDFInsert.pas |
Unit |
carrier file class for insertion method into PDFs |
BMPPalettes.pas |
Unit |
BMP color table handling |
BMPUtils.pas |
Unit |
BMP utilities |
wbHelpViewer.pas |
Unit |
simple viewer to display HTML file and react to basic
help commands (Kylix version only) |
dummy.bmp |
Image |
1x1 dummy image |
ilsupp.dat |
|
Data file containing english and german images and string
tables |
wbStego.ini |
|
Initialization data (Kylix only, under Win32 the registry
is used) |
wbstego.rtf |
RTF |
English help |
wbstego_ger.rtf |
RTF |
German help |
wbstego4en.hpj |
|
MS Help Compiler project for english help |
wbstego4de.hpj |
|
MS Help Compiler project for german help |
wbsimg.int |
|
non-language specific image index table |
wbsimg.eng |
|
english image index table |
wbsimg.ger |
|
german image index table |
wbsmsg.eng |
|
english string table |
wbsmsg.ger |
|
german string table |
wbs43en.hlp |
|
english Win32 help file |
wbs43de.hlp |
|
german Win32 help file |
wbs43en.hlp.html |
|
english HTML help file |
wbs43de.hlp.html |
|
german HTML help file |
help_rtf2html.pl |
|
Perl script for converting RTF help files into simple
HTML help files |
splash.Image1.Picture.bmp |
Image |
Image shown in splash screen |
main32.Image10.Picture.bmp |
Image |
Carrier file icon |
main32.Image11.Picture.bmp |
Image |
Data file icon |
main32.Image12.Picture.bmp |
Image |
background image of flowchart mode |
main32.Image2.Picture.bmp |
Image |
Carrier file icon |
main32.Image4.Picture.bmp |
Image |
Data file icon |
main32.Image6.Picture.bmp |
Image |
carrier file icon |
main32.Image8.Picture.bmp |
Image |
key icon |
main32.Image9.Picture.bmp |
Image |
key icon |
stego.ico |
Image |
wbStego4
icon |
Opening the
project in Delphi/Kylix
- copy the correct .dfm files
from the subdirectory to the root directory
- Delphi or Kylix may complain
about undefined attributes or variables defined bot not used in the
form - ignore them all and don't allow Delphi/Kylix to remove the declarations,
otherwise cross-platfrom compatibility is no longer given.
Localization
wbStego
uses a custom mechanism for localization, implemented in MultiLang.pas
using MultiDataFile.pas.
All information is stored in the file ilsupp.dat,
which consists of a number of blocks, all introduced by a 3 byte header
specifying the size of the block. The file is a terminated by 3 bytes
set to 0, i.e. a block header without data block.
ilsupp.dat contains both
the string table and the images. The file can be created by just putting
togehter the blocks in a Hex editor and inserting the headers. The structure
of the file is as follows:
- Index table for language
independent images (images.int)
- English string table (wbsmsg.eng)
- Index table for english
images (wbsimg.eng)
- German string table (wbsimg.ger)
- Index table for german
images (wbsimg.ger)
- image data
The format of the string table
files is a key value format, specifiying the full name of a property as
key and a string as value on each line, e.g.
main32.Button5.Caption='&Settings'
Lines starting with a semicolon are treated as comments.
The format for image index tables is the same, with the value being the
index of the part of ilsupp.dat
containing the bitmap data. For example, in the list above, the index
and string table are parts 0 through 4 of hte file, so the first image
has the value 5.
Which language definition is loaded fromwhere is defined in the parameters
of the InitMLSupport function,
called from wbsData.pas.
Creating the
online help
The
text of the online help is stored in wbstego.rtf
(wbstego_ger.rtf for the
german version). This RTF file contains hyper-text help according to the
MS specification.
- Win32: just open the .hpj
file with MS Help Compiler and run it
- Linux: use the Perl script
help_rtf2html.pl to convert the RTF file to HTML. The file expects
wbstego.rtf as input
and will produce wbstego.html as output. Rename the output file correctly
(e.g. wbs43en.hlp.html).
By default, the Linux HTML help files are expected to have the same
name as the Win32 help file (as defined in the string table) plus the
additional extension .html.
wbStego
web pages © 1999-2004, last modified: Mar. 1, 2004.
|