Olly, the author of OllyDbg, presents his new open source joke:

PAPERBACK v1.10


Updated by Michael Mohr

Download PaperBack v1.10
Download sources v1.10

PaperBack version 1.00 does not implement AES encryption properly.  Specifically:

a) The key used for (en|de)cryption in version 1.00 provides at most an effective key strength of less than 50 bits (and likely far less, perhaps on the order of 15-25 bits, depending on password quality) instead of the expected 256 bits.  Version 1.10 derives the encryption key from the password via key stretching, significantly improving key strength.  This change causes a small delay in the encryption step.

b) PaperBack version 1.0 implements ECB mode symmetric encryption.  This mode is subject to a watermark attack and leaks information about the encrypted data.  Version 1.00 changes the encryption mode to CBC, which mitigates this attack.

2) AES key length is now selectable in paperbak.h via AESKEYLEN.  I suggest not using AES-256, as its key schedule is known to be substandard.  See Bruce Schneier's website for details.  For the moment I've switched PaperBack to use AES-192.

3) The included libraries are now packaged as binary .lib files.  Instructions for rebuilding them from source are included in README.md from the PaperBack source code.

(Olly: mea maxima culpa. I am no cryptanalytic, and wrote Paperback quickly and without much thinking about the strength of the code. Btw, can this new release read old bitmaps?)



PAPERBACK v1.00

Download PaperBack v1.00
Download sources v1.00
Read GNU GPL



1. What is PaperBack?
2. Installation.
3. Setup.
4. Printing data to paper.
5. Data restoration.
6. History.
7. Patents and IP.
8. Acknowledgements.

9. Source code description.


1. What is PaperBack?

PaperBack is a free application that allows you to back up your precious files on the ordinary paper in the form of the oversized bitmaps. If you have a good laser printer with the 600 dpi resolution, you can save up to 500,000 bytes of uncompressed data on the single A4/Letter sheet. Integrated packer allows for much better data density - up to 3,000,000+ (three megabytes) of C code per page.

You may ask - why? Why, for heaven's sake, do I need to make paper backups, if there are so many alternative possibilities like CD-R's, DVD±R's, memory sticks, flash cards, hard disks, streamer tapes, ZIP drives, network storages, magnetooptical cartridges, and even 8-inch double-sided floppy disks formatted for DEC PDP-11? (I still have some). The answer is simple: you don't. However, by looking on CD or magnetic tape, you are not able to tell whether your data is readable or not. You must insert your medium into the drive (if you have one!) and try to read it.

Paper is different. Do you remember the punched cards? EBCDIC and all this stuff. For years, cards were the main storage medium for the source code. I agree that 100K+ programs were... unhandly, but hey, only real programmers dared to write applications of this size. And used cards were good as notepads, too. Punched tapes were also common. And even the most weird codings, like CDC or EBCDIC, were readable by humans (I mean, by real programmers).

Of course, bitmaps produced by PaperBack are also human-readable (with the small help of any decent microscope). I'm joking. What you need is a scanner attached to PC. Actual version is for Windows only, but it's free and open source, and there is nothing that prevents you from porting PaperBack to Linux or Mac, and the chances are good that it still will work under Windows XXXP or Trillenium Edition. And, of course, you can mail your printouts to the recipients anywhere in the world, even if they have no Internet access or live in the countries where such access is restricted by the regiment.

Oh yes, a scanner. For 600 dpi printer you will need a scanner with at least 900 dpi physical (let me emphasize, physical, not interpolated) resolution.

Have I already mentioned that PaperBack is free? I release it under the GNU General Public License, version 3. This means that you pay nothing for the program, that the sources are freely available, and that you are allowed - in fact, encouraged - to modify and improve this application.


2. Installation.

You don't need to install PaperBack. Copy it to any directory, if possible, with unrestricted write access (to allow PaperBack to save settings to the initialization file), optionally create shortcut on the desktop - that's all.


3. Setup.

This is how Options dialog looks:

Options dialog


The most important setting is the dot density. It determines the size of the data bit on the paper and must be at least two times lower than the physical resolution of your printer. For example, if you are the (moderately) happy owner of the HP LaserJet V with 600 dpi resolution, set density to 300 dpi. This allows you to draw 300x300=90,000 dots, or slightly less than 6 k bytes of useful data on every square inch of the paper.

Jet printers are not as good as laser. Maximal useful resolution is typically limited to 200 dpi. Please select the best available quality, and don't forget to align the printing nozzles, so that points printed from left to right coincide with those printed from right to left.

Dots must be clearly distinguishable from each other. Usually this means that they must be separated by some anount of white space, determined by the parameter dot size. 70% is usually the best option.

Compression is always good, because it reduces the size of the bitmap, unless your file is already packed. Use fast compression if your computer is really, really slow, and maximal compression in all other cases.

Redundancy helps to recover partially damaged data. Redundancy 1:5 means that for every 5 consecutive data blocks, if one block is completely unreadable, PaperBack will be able to restore it. To reduce damages caused by coffee pots and other common dangers, blocks are distributed around the page. Higher redundancy decreases page capacity but improves reliability.

Header and footer asks PaperBack to print useful information about the file, like file name, its size, date of last modification, page and recommended scanner settings. This parameter influences only the printing and has no influence on the reading of the data. Border around the page improves autocropping with the not-so-smart TWAIN drivers.

Large files will be printed on several pages. When last page is scanned (order is not important) and autosave option is activated, PaperBack will ask you to select location where restored file will be saved. If this option is unchecked, you must press Save button when recognition is finished - convenient if your scanner has automatical feeder and you scan several backups (up to 5) at once.

PaperBack uses Highly Sophisticated Unbelievably Advanced Error Correction Techniques (in fact, Reed-Solomon ECC) to restore unreadable pixels. Therefore, if data is halfway readable, it will accept it, even if recognition parameters are very far from optimal. This accelerates processing but leads to the high amount of bad blocks reported by the program. When you backup important data and verify it afterwards, this may lead to false assumption that data is unreliable. But activate Determine best quality, and PaperBack will report the real data quality. Of course, this costs time.

Two last options set data encryption (FIPS-197 compliant AES is not easy to crack) and whether password is displayed as the readable text while you type it in, or the characters are replaced by asterisks. Of course, this option does not mean that password will be printed on the paper!


4. Printing data to paper.

First, set page size and printer options. They may differ from one driver to another, so I will not discuss them here in details. Always select the best available printing quality. Turn off halftoning, dithering and image optimization. Don't forget to align nozzles on jet printers; if possible, turn off bidirectional printing. Note that only basic printer options are saved between the sessions, and you may need to re-enter them again.

After options are set, you can print your data. Current PaperBack version is 1.00, and it can't backup folders - only the single files, at most one per page. This is the very substantial drawback for the backup program. If you are going to save many small files, better first pack them into the single archive using WinZip, tar or similar program.

PaperBack supports drag-and-drop. If file has extention other than .bmp, it will be printed. Default action for bitmaps is the recognition. To  backup them, use Print button. You can drop several files at once; internal queue is limited to 128 entries. Again, each file will be printed on the separate sheet(s) of paper.

For test purposes, you can save bitmaps to the disk. This option is selectable from the main menu.


5. Data restoration.

PaperBack should support any scanner with TWAIN interface. It also accepts uncompressed grayscale and RGB bitmaps with 8 or 24 bits per pixel. You can drag-and-drop files with extention .bmp directly into the PaperBack.

If you use scanner, select scanning source from the main menu, then press Scan button. Optimal resolution is about 3 times the dot density. B/W scans are usually unreadable, always select grayscale image. Color scanning is also acceptable, but has no advantages except for 3-fold memory use. (Another joke). Memory requirements are relatively high. A4 grayscale bitmap with 900 dpi resolution requires around 80 MB.

Turn off all image optimizations, like sharpening - PaperBack uses its own optimization techniques better suitable for this particular case.

Grid should be more or less parallel to the sides of the scanner (maximal angle must not exceed ±7°), but general orientation is unimportant: portrait, landscape, upside down or even, if you use transparencies, flipped. Orientation may change from one paper sheet to another.

You can scan up to 5 backups simultaneously. Each file will be placed into the separate tab. If backup consists of several pages, the order in which they are scanned is absolutely unimportant. Bottom line in the tab displays list of unscanned or incomplete pages. If some page is unreadable, change its placement, resolution and/or brightness and contrast.

Quality map to the right shows distribution of errors on the last scanned page as a gradations of colours. Good blocks are green. The higher the number of erroneous bytes, the more reddish is the colour. Undeciphereble blocks with more than 16 invalid bytes are black. If block is white, PaperBack was unable to recognize the grid. Doubleclick map to display the block as a grayscale image (optionally with marked errors).

After all pages are scanned, press on Save to write restored file to the disk. If backup is encrypted, you will be asked to enter the password.


6. History.

Once upon a time, my oldest son (he was 15 then) asked me: "Dad, how the huge amounts of data are saved on the small CD?" A brief explanation from my side followed, I took a very sharp pencil and tried to draw as small points and lines as possible, in order to emphasize how dense the data is. Then my son asked: "How much data can you place this way on the single sheet of paper?" My estimation was in the order of 100 K. "Can we make a try?" It took me four or five days to make the proof of concept, and another two weeks to integrate packer, encryption and user interface. Then I lost the interest and put the whole project into the darkest corner of the deepest directory on my hard disk. (One more joke). But why keep potentially useful code to myself? So now I am releasing it under GPL 3.


7. Patents and IP.

PaperBack is a "clean-room" implementation. I assure that my part of code is written by myself alone and is not based on any 3-rd party work.

However, I can't guarantee that this program doesn't infringe any patents, trade marks or other stuff that makes lawyers rich. If you are going to use PaperBack, all the burden of proof is on your side.

To make lawyers (un)happy:

Sonic 3 Air Mod Transform Button Hud =link= -

Modders have addressed this by mapping the transformation to a separate "Custom" button. This shift allows for:

Adds a clean icon to your heads-up display. This icon changes state depending on whether you meet the requirements to transform.

This guide covers everything you need to know about setting up a dedicated transformation button, displaying it on your Heads-Up Display (HUD), and utilizing mods to perfect your Sonic 3 A.I.R. experience. The Problem with Default Transformations

Rule of Thumb: If your transformation HUD isn't showing up, move the Transform HUD mod higher up in the active mods list so it overrides the base graphics of your character mods. Step 4: Troubleshooting Common Issues The Transformation Prompt is Invisible sonic 3 air mod transform button hud

This HUD element would sit just below or around your Ring counter, serving three primary functions:

For players who want to dive deeper, you can manually edit HUD sprites to better fit your setup. The game uses standard for HUD elements, allowing you to swap out button icons or change their colors using software like GIMP or Paint.NET . Just ensure you maintain the RGBA 8-bit format to keep transparency intact. I.R. on the Steam Deck ? Sonic 3 AIR: 2013 Mobile HUD Mod Guide - Ftp

With the mechanics streamlined, modifying the Heads-Up Display (HUD) provides immediate visual feedback for your new control scheme. We will modify the default render loop to reposition the Score, Time, and Ring counters, and add a visual indicator for the Transform button state. Step 1: Hooking into the HUD Renderer Modders have addressed this by mapping the transformation

This code block creates a dropdown menu in the game's mod settings, allowing you to choose between two different visual styles for the transformation effect. The game then uses a script to read the value of TransformStyle and change the in-game graphics accordingly.

: High-quality mods, such as Characters Go Super Then Hyper , allow players to toggle specifically between Super and Hyper forms if they have all 14 emeralds, rather than being forced into Hyper automatically.

Flashy UI elements that glow or pulse the moment your ring count hits 50, letting you know your dedicated mapped button is active. How to Install a Transform Button HUD Mod This guide covers everything you need to know

This modification significantly changes the transformation mechanics within Sonic 3 A.I.R. by introducing:

In the modding community for (Angel Island Revisited), the "Transform Button HUD" refers to a category of mods designed to separate the transformation mechanic from the standard jump button and provide visual feedback on the screen. These mods solve a long-standing issue where players would accidentally trigger Super or Hyper forms while trying to use double-jump abilities like the Insta-Shield. Key Features of Transform Button Mods

Locate the Transform Button HUD mod in your inactive list and move it to the list. Save and return to the main menu. Configuring the Dedicated Button



8. Acknowledgements.

PaperBack would be not possible without the Reed-Solomon error correction. The code is written by Phil Karn (C) 2002. Phil allows use of his code under the terms of GPL.

AES encryption code is developed by Christophe Devine (C) 2001-2004. This code is also released under GPL.

bzip2 compression engine is developed by Julian R. Seward (C) 1996-2005. See sources for details. To my best knowledge (IANAL), his license is compatible with GPL.


9. Source code description.

There is currently none, but the sources are commented. If you need help, read comments. If you still need help, ask your friends. For more help, visit some discussion forum. If you are completely despaired, create your own forum. If you are ready to commit suicide, well, drop me a mail (ollydbg at t-online de). Set subject to PaperBack, or you will be considered spam and filtered out. Allow 4 to 6 weeks for delivery.



Visitors so far: Counter hostet by EUserv

This site is Copyright (C) 2007 Oleh Yuschuk, ollydbg at t-online de. You are allowed to cite and mirror it in whole or in parts, provided that you always refer to the original source.