FAQ

Home Next

horizontal rule

Home
FAQ
True Stories
Submissions
Price List
Downloads
Links
Search
Privacy Policy
Terms of Use

This page contains answers to common questions regarding the Source Recovery Service for UV.

How does the Source Recovery Service for UV work?

I  have heard that it is impossible to recover the source code from object code. Does the Source Recovery Service for UV really work?

How much does it cost to recover the source for my UniVerse BASIC programs?

What versions of UniVerse BASIC are supported?

How long does it take to recover the source code?

What does the recovered source code look like? Is it full of GOTO's?

Do you have any references?

Why wouldn't customers want to provide references?

Isn't it illegal to decompile programs?

I have some programs that I'm not supposed to decompile. Will the SRS do it any way?

Can the SRS use object code from the catalog space?

What forms of payment do you accept?

How can I tell how many source lines were in the original source code?

Does the SRS recover CASE and LOOP constructs?

Can I license the tool set used by the SRS?

I can't VLIST the code. Can the SRS still recover the source code?

I have PI/open object code that I need decompiled. Can the SRS recover this?

Why would I pay to use the SRS for my PI/open recovery when I can use the free decompiler that UniVerse provides?

If you have a question that isn't addressed here, check out the discussion group or send an e-mail to info@srs4uv.com.

horizontal rule

How does the Source Recovery Service for UV work?

As the name implies, this is a service as opposed to a downloaded program that you would use. You send the UniVerse BASIC object code as an attachment to an e-mail addressed to info@srs4uv.com. You'll receive an e-mail back with the recovered source code for the submitted programs, ready to compile and catalog or run.

Refer to the submissions page for further information.

Back to Top

horizontal rule

I have heard that it is impossible to recover the source code from object code. Does the Source Recovery Service for UV really work?

Yes. It really works. If the object loads and runs successfully, it can be recovered. The SRS Team has been recovering source code since 1981 and have not found a program that could not be recovered. 

Back to Top

horizontal rule

How much does it cost to recover the source for my UniVerse BASIC programs?

Refer to the price list page for current pricing for the recovery of program submissions.

Back to Top

horizontal rule

What versions of UniVerse BASIC are supported?

Source code has been successfully recovered for programs compiled on versions of UniVerse as early as 5.x and all the way up to version 10.0. If you have UniVerse BASIC compiled before version 5.x, send it in for analysis and we will let you know whether we can help you.

Back to Top

horizontal rule

How long does it take to recover the source code?

This depends on many factors. Typically it takes a few days to recover a few programs. Large submissions will have the estimated time included in the fee quote. The largest submission to date of 230 programs required 14 days to recover. Your time will vary.  

Back to Top

horizontal rule

What does the recovered source code look like? Is it full of GOTO's? 

Good and no. The recovered programs look nearly like the original source code, albeit, there are no comments because the UniVerse compiler does not store those in the object code. The variable names are the same however line labels are different. There are no more GOTO statements in the recovered programs than there were in the original program, though there may be fewer.  If the submitted programs were structured code, that is what you will receive back. However if the submitted programs were spaghetti code originally, that is what you will receive back.   

Back to Top

horizontal rule

Do you have any references?

Yes and no. The majority of the SRS users prefer to remain anonymous. Consequently, no customer is discussed in sufficient detail to allow them to be identified. Over the last 18 years, a wide variety of publicly and privately held companies, municipal governments and educational institutions around the world have successfully used the SRS to recover missing source code. 

We know that several SRS users lurk on the USENET news:comp.databases.pick newsgroup and on the International UniVerse and UniData User Group listserver. You can post your query to those groups and see if anyone replies to you confidentially. Just mention the Source Recovery Service for UV or TAD, The Adaptable Decompiler and see what you get. Don't be surprised if no one responds though. See the next question  to understand why. (If you decide to do this and you have a serious source code problem, it may be wise to get a new free e-mail account from yahoo or hotmail to mask your employers identity from the masses.)

Back to Top

horizontal rule

Why wouldn't customers want to provide references?

Typically the concerns center on the possible negative implications and adverse reactions by others upon discovering the risk that the organization was in due to the missing source code. Rather than publicly air these matters, they prefer to handle the challenge discreetly. 

Back to Top

horizontal rule

Isn't it illegal to decompile programs?

We do not provide legal advice and nothing contained within this section is to be construed as legal advice.

Generally speaking, if your employer had you or others write the programs for the employers benefit, these programs are owned by the employer and can be decompiled at the employer's direction. 

If your employer  licensed the programs from a third-party, there may be contractual restrictions that forbid the decompilation of the programs. Check with your legal counsel to determine whether or not those contractual restrictions are applicable in your case as there may be fair-use issues or other mitigating factors that effectively render such restrictions unenforceable. Is the third-party still in business? Is the third-party able to provide the source code?  Due diligence is important as decompiling programs could put you or your company at substantial risk.

We do not provide legal advice and nothing contained within this section is to be construed as legal advice.

Back to Top

horizontal rule

I have some programs that I know I'm not supposed to decompile. Will the SRS do it any way?

No. The SRS is not intended to be used to commit intellectual property theft. We reserve the right to refuse service to anyone.

Back to Top

horizontal rule

Can the SRS use object code from the catalog space?

Yes.  The object code in the catalog space has a 40 byte structure added to the beginning of the file which the SRS ignores during the recovery.

Back to Top

horizontal rule

What forms of payment do you accept?

All transactions are in US currency. Typically, we require payment in full by check or wire before providing the services. Purchase orders with 50% paid in advance and net 30 terms on the remainder are accepted from Fortune 1000 companies, municipal government agencies, and accredited educational institutions.

Back to Top

horizontal rule

How can I tell how many source lines were in the original source code?

You can use the VLIST command provided the program wasn't compiled with the -I option. See the example below of the VLIST output. The line in RED contains the original source lines.

>VLIST BP LRC.2
Subroutine "BP.O/LRC.2"
Compiler Version: 9.6.1.3
Object Level : 5
Machine Type : 11
Local Variables : 6
Subroutine args : 2
Unnamed Common : 0
Named Common Seg: 0
Object Size : 170
Source lines : 14
00003 00000 : 0F8 move 0 => LRC
00004 00006 : 0F8 move 255 => NEGATIVE.LRC
00005 0000C : 0D0 len TEST.STRING => LENGTH
Press any key to continue...Q
Quit
>

If the VLIST command refuses to list object code, you can download our SRS.UV.HEADER BASIC subroutine from our downloads page. The SRS.UV.HEADER subroutine allows you create I-Type descriptors for use with the UniVerse Retrieve report writer to view  the header fields of UniVerse BASIC object code. 

Back to Top

horizontal rule

Does the SRS recover CASE and LOOP constructs?

Yes. If the original source code used CASE and/or LOOP statements, the SRS recovers these. The SRS even recovers LOOPS with multiple WHILE and/or UNTIL clauses.

Sometimes the SRS logical structure analysis produces surprising results. The SRS is able to logically promote IF-THEN GOTO constructs into LOOP statements and nested IF-THEN-ELSE constructs into CASE statements. When programmers first see this logical promotion, some think that the logic of the program has been changed. In fact, the logic is the same, it is now represented in a relatively more structured manner. 

Back to Top

horizontal rule

Can I license the tool set used by the SRS?

At this time, the SRS tool set is generally unavailable to end-users. 

There are always exceptions though. Should we determine that you have a very large recovery project, there is the possibility of being granted a short-term project license to use the SRS tool set on your own computer. 

We understand that some would like to have the SRS tool set readily available, just in case it is needed on a moments notice. If you have an urgent need to recover source code, let us know and we'll try to accommodate your schedule. 

Back to Top

horizontal rule

I can't VLIST the code. Can the SRS still recover the source code?

Yes. The SRS can recover the source code for a program that has been marked as protected from being processed by VLIST or RAID.  

However there could be other reasons why VLIST will not process the object code. We have seen cases where the object code in the BP.O file is corrupt yet the object in the catalog space is correct. An object code file would become corrupted by being edited with the ED verb for example. 

Back to Top

horizontal rule

I have PI/open object code that I need decompiled. Can the SRS recover this?

Yes. The predecessor to the SRS was TAD, The Adaptable Decompiler. The TAD product recovers the source code for Prime INFORMATION or PI/open object code. The fees for a recovery using TAD are the same as the SRS. 

Back to Top

horizontal rule

Why would I pay to use the SRS for my PI/open recovery when I can use the free decompiler that UniVerse provides?

The PI/open decompiler provided with UniVerse (UniVerse decompiler) will recover compilable source code for most PI/open programs. However, the UniVerse decompiler was purposefully crippled to prevent the recovery of any program that used the undocumented "Internal use only" statements and functions of PI/open. They crippled the UniVerse decompiler to prevent folks from decompiling the PI/open verbs. Some application programmers knew how to hack the PI/open BASIC compiler to use these "Internal use only" statements and functions, and consequently, those programs are not recoverable with the UniVerse decompiler.

The UniVerse decompiler does not attempt to recover the logical structure of the program. It takes some short cuts that produce recovered source code that is full of GOTO statements. We believe the goal of creating the UniVerse decompiler was to let companies move their existing application from PI/open to UniVerse. The assumption may have been that if you didn't have the source code to the programs to begin with, you wouldn't want to make modifications to the recovered source code afterwards. If that describes your situation, the UniVerse decompiler is the way to go, providing it is able to recover all of your programs.

Unlike the UniVerse decompiler, the SRS recovers programs that used the "Internal use only" statements . The programs recovered by the SRS look similar to the original source code ---  all of the LOOP and CASE constructs are recovered without introducing a flood of GOTO statements like the UniVerse decompiler would. Plus the SRS can use your include files that define common storage members and dimensioned array element equates --- features that combine to produce recovered source code that is easy to read and maintain.  

If you intend on performing maintenance on the recovered programs and you want clean looking code, the SRS is the way to go.

Back to Top

horizontal rule

If you have a question that isn't addressed here, check out the discussion group or send an e-mail to info@srs4uv.com.

Hit Counter  

horizontal rule

Privacy Policy Terms of Use
The Source Recovery Service, Source Recovery Service for UV, SRS4UV and SRS are trademarks of srs4uv.com, inc. 
All other products mentioned are registered trademarks or trademarks of their respective companies.

Questions or problems regarding this web site should be directed to info@srs4uv.com.
Copyright © 2002-2007 srs4uv.com, inc. All rights reserved.