Can Valkyrie recover library
code?
Libraries are simply files that contain pre-compiled
objects, whether PRG files compiled with CLIPPER.EXE, C files
compiled with a C compiler, ASM files compiled with an
assembler, or others. The OBJ files are simply grouped together
in the library (LIB) file for ease of use. Aside from that,
there is no difference between the code from a library and code
from a PRG file that you compile and link yourself.
Valkyrie will decompile any Clipper routine in the EXE file,
whether it came from a standalone PRG or from a library. In
fact, there is no way to determine whether a particular routine
was placed in the EXE from a library or form a separate OBJ
file.
In short, Clipper code from a library will get decompiled
just like an other Clipper code. Non-Clipper code from a
library will not be decompiled.
Back to
Beginning
How can I tell which libraries were used
to create an EXE file?
Short answer: You can't.
Long answer: Sometimes you can make a pretty good guess if
you happen to be familiar with the names of the routines in a
particular library. Often, vendors of a commercial library will
name their functions with a standard prefix to avoid clashes
with other libraries. This is no guarantee that a function
really did come from that library, however, since anyone can
name a function anything they want, whether or not some library
already has a function with that name.
Your best bet is to ask around at user groups or
on a large public forum, such as CompuServe or a USENET group.
Back to
Beginning
What will I get back?
Short answer: Clipper source code.
Long answer: It depends on whether the program was compiled
with Clipper S87 or with Clipper 5.x.
Clipper S87 is fairly straightforward: you will get back
source code practically identical to the original code. Things
like comments, indentation, and, in some cases, source file
structure, may be different, but for the most part, it will be
the same code as in the original PRG files.
CA-Clipper 5 is a different, and more difficult problem.
With the addition of STATIC and LOCAL variables, a
preprocessor, code blocks, etc., it is much more difficult, if
not impossible, to get back the exact code. Valkyrie
will create names for the STATIC and LOCAL variables if it has
to (STATIC1, LOCAL1, etc.), although it can get the original
names of the file was compiled with DEBUG information. Valkyrie
can also undo many of the standard preprocessor
definitions, such as those found in STD.CH. Macros defined in
custom CH files will not get un-preprocessed.
Back to
Beginning
Isn't this illegal?
Yes, if you are decompiling a program which is
covered by copyright law.
Yes, if you are decompiling a program which has a
license that expressly forbids decompilation.
Please Note: the
makers of Valkyrie are programmers, not lawyers. If you have
any questions or doubts about the legality of what you
are thinking of doing with Valkyrie, we strongly advise you to
obtain qualified legal counsel before proceeding.
Back to
Beginning
When is Valkyrie going to support Blinker 3.x/4.x?
This is a very important matter to the developers and they
are hard at work on this issue right now. They have solved many
individual cases for customers who have submitted their files
to them on their BBS. The problems are with Blinker Dual and
Extended modes, which are more difficult to unravel than
normal EXE files.
If you have a file which you need to decompile NOW and it is
Blinker 3.x or greater Dual or Extended Mode, contact us and we
will see if the developer already has a solution.
Back to
Beginning
When is Valkyrie going to support
Clipper 5.3?
Like most software houses, the Valkyrie developers handle
problems according to the noise level each
generates. To date, there have been very few requests for
Clipper 5.3 support compared to the number of people who need
Blinker 3.x support. As a
result, the developers are currently working on the bigger
problem first. When Blinker 3.x/4.x is handled, their very next
priority will be Clipper 5.3.
5/98: Supports CA-Clipper 5.0 through 5.2 (Will not work with CA-Clipper 5.3)
Back to
Beginning