Oninit Phoenix Forms: Informix Form Decompiler
Lost the source for your Informix 4GL screen forms? Oninit Phoenix Forms decompiles compiled form files (.frm) back into readable .per source. Upload a form and the tool rebuilds its screen layout, field definitions, attributes and table references, then shows the recovered .per directly on the page. There's nothing to install and nothing is stored, which makes it easier to maintain, document or migrate legacy 4GL applications when the original form source is gone.
What it recovers
Upload an Informix 4GL compiled form (.frm) file, and the tool will
reverse-engineer the binary and reconstruct the original .per source
definition: the screen layout (field positions and
surrounding text, exactly as laid out in the original form), every
field tag and its table/column binding, the
TABLES section, SCREEN RECORD / SCREEN ARRAY
declarations, and the ATTRIBUTES section for each field —
TYPE, COMMENTS, FORMAT,
PICTURE, COLOR, INCLUDE item lists,
DEFAULT values, and the boolean attributes
(REQUIRED, NOENTRY, UPSHIFT,
DOWNSHIFT, AUTONEXT and more), plus the
INSTRUCTIONS section (DELIMITERS and screen record
declarations). This makes it useful for recovering a lost form, documenting
legacy screens, auditing what a form actually does, or planning a migration
to Genero, FourJs GAS, or a web front end when the original .per is
gone.
Before and after: a decompiled form
Here is a short example, side by side: hand-written source on the left, what
Phoenix Forms reconstructs from the compiled binary alone (no source)
on the right. This is a small illustrative form built for this page, not a
real customer form — but it was compiled with the real IBM Informix 4GL form
compiler and decompiled with the real tool, and the recovered .per
recompiles to a byte-identical .frm. Attribute order
can canonicalize (the recovered form lists UPSHIFT before
REQUIRED before COMMENTS, matching how form4gl
itself orders them internally) but nothing is lost.
Original source
DATABASE formonly
SCREEN
{
Item code: [f0 ]
Qty: [f1 ]
}
ATTRIBUTES
f0 = formonly.f0 TYPE CHAR,
COMMENTS = "Item code",
UPSHIFT,
REQUIRED;
f1 = formonly.f1 TYPE INTEGER,
DEFAULT = 1;
INSTRUCTIONS
DELIMITERS " "
Recovered from the compiled binary
DATABASE formonly
SCREEN
{
Item code: [f0 ]
Qty: [f1 ]
}
ATTRIBUTES
f0 = formonly.f0 TYPE CHAR, UPSHIFT, REQUIRED, COMMENTS = "Item code";
f1 = formonly.f1 TYPE INTEGER, DEFAULT = 1;
END
INSTRUCTIONS
DELIMITERS " ";
END
Supported forms and limits
Recovery works on forms compiled by the real IBM Informix 4GL form compiler,
form4gl. Uploads are limited to a single .frm file of up
to 64 KiB — generous headroom, since compiled forms are
normally a few hundred bytes to a few kilobytes. Single-file uploads are
supported, and once processing is complete, the reconstructed .per
source is rendered directly on the page for immediate review. No additional
software, configuration, or manual extraction steps are required.
How we verify it
A decompiler is easy to demo and hard to trust, so recovered .per
source isn't just shown — it's recompiled with the same real, unmodified
form4gl and checked byte-for-byte against the original
.frm. That's the same trust signal as Oninit
Phoenix Recover: not merely readable, but re-compilable to an identical
binary. Across a corpus of 2,262 real-world compiled Informix 4GL
forms, 1,885 of 2,213 tested round-trip completely
cleanly — decompiled to .per, recompiled with form4gl,
and matching the original .frm byte-for-byte, a
round-trip success rate of 85.18%. The remaining forms
recover partially today; that count is climbing as each remaining gap is
found and fixed. (Form names and source are not shown here, as the corpus is
drawn from real third-party codebases, not public samples — the example
above is a small form built specifically for this page.)
Source Code Recovery Authorization
Please read carefully before continuing.
This feature is intended solely for recovering source code from executable programs that you own or are otherwise legally authorized to analyze.
By clicking “I Accept” or otherwise continuing, you acknowledge and agree that:
- You own the software being decompiled, or you have obtained all necessary rights and permissions from the copyright owner.
- You are legally authorized to decompile and reconstruct the source code from the submitted executable.
- Your use of this feature complies with all applicable laws, software license agreements, contracts, and intellectual property rights.
- You understand that unauthorized decompilation of software owned by others may violate copyright, contractual obligations, or other applicable laws.
- You accept full responsibility for your use of this feature and for any recovered source code.
By selecting “I Accept” and continuing, you certify that the above statements are true and agree that you are solely responsible for ensuring you have the legal authority to use this feature.
The decompiler runs server-side; nothing is stored. For batch or scripted use, see the ondebug CLI, which can decompile forms from the command line. Need the program logic too? See Oninit Phoenix Recover, the Informix 4GL decompiler for .4ge programs.