Luckily, in this particular case Cryptex lets you create as many archives as you please, so you can freely experiment. In most cases, a thorough analysis of such code would provide most of the answers. In such cases, you would usually need to spend significant amounts of time studying the code that reads your file format. This would greatly increase the complexity of the reversing process, because it would limit our options. For example, with some file formats you might only have access to code that reads from the file, but not to the code that generates files using that format. This approach is very helpful, but it is not always going to be feasible. In the case of Cryptex, this boils down to creating one or more small archives that contain a single file with easily recognizable contents. How does one begin to reverse a file format? In most cases, the answer is to create simple, tiny files that contain known, easy-to-spot values. Finally, it is important to keep in mind that the data reverse-engi- neering journey we’re about to embark on is not specifically tied to file formats the process could be easily applied to networking protocols. crx Cryptex file format was published, the only way to accomplish this would be by reversing the file format. For instance, consider the (very likely) possibility that Cryptex became popular to the point where other software vendors would be interested in adding Cryptex-compatibility to their programs. Perhaps (and this is more common than you would think) the program incorrectly uses a strong, industry-standard encryption algorithm in a way that compromises the security of the encrypted files.įile formats are also frequently reversed for compatibility and interoperability purposes. Should they rely on the author’s guarantees regarding the product’s security level? Perhaps the author has installed some kind of a back door that would allow him or her to easily decrypt any file created by the program? Perhaps the program is poorly written and employs some kind of a home-made, trivial encryption algorithm. Let’s say that an organization wants to use such a product for archiving and transmitting critical information. First of all, it is the only way to evaluate the level of security offered by the product. There are several reasons that could justify deciphering the file format of a program such as Cryptex. It is also possible to add multiple files with one command using wildcards such as *.doc. Files are encrypted using a user-supplied password, and the program supports deleting files from the archive and extracting files from it. Listing the contents of an archive: “Cryptex l MyArchive s8Uj~” Deleting a file from an archive: “Cryptex d MyArchive s8Uj~ myfile.doc”Ĭryptex is quite straightforward to use, with only four supported commands. It cannot be changed afterwards and must be specified whenever that particular archive is accessed.Įncrypting a file: “Cryptex a MyArchive s8Uj~ c:\mydox\myfile.doc” Encrypting multiple files: “Cryptex a MyArchive s8Uj~ c:\mydox\*.doc” Decrypting a file: “Cryptex x MyArchive s8Uj~ file.doc” An archive’s password is established while it For maximum security it is recommended that the password be made as long as possible and that it be made up of a random sequence of many different characters, digits, and symbols. Password is an unlimited-length string that can contain any combination of letters, numbers, and symbols. : Lists all files in the specified archive. Listing 6.1 shows the Cryptex welcome and help screen. Cryptex displays a welcome screen that also includes its “user’s manual”-a quick reference for the supported commands and how they can be used. The best way to start is by simply running Cryptex.exe without any com- mand-line options. In order to properly launch Cryptex, you’ll need to open a Command Prompt window and run Cryptex.exe within it. In a commercial product, you would be reading the user manual at this point.Ĭryptex is a console-mode application, which means that it doesn’t have any GUI-it is operated using command-line options, and it provides feedback through a console window. In general, it is important to develop a good understanding of a program and its user interface before attempting to reverse it. Before actually starting to reverse Cryptex, let’s play with it a little bit so you can learn how it works.
0 Comments
Leave a Reply. |