Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations SkipVought on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Decompiler - Is there such a thing??? 1

Status
Not open for further replies.

Tesla

Technical User
May 24, 2001
2
0
0
GB
Give you an example..
If you have an executeable application ie app.exe
is there a decompiler that will break the app down
into its constituent parts?

thanx
Tesla
 
I have seen some for vb3 and 4, but not for 5 or 6. I dont think there are any (but im sure someone is working on it)
If anyone finds one let me know
Dragnut
 
Here is the bad news: no.

The reason is simple: if the VB code is compiled to native machine language, the VB structure is lost.

For VB (version 6) the compiler is C2.exe which is a C compiler modified for Visual Basic. Once the process begins, the VB code is rendered into a C-styled language; this intermediate language is sent to C2 and further rendered as an obj library.

There is an obj library for each form, each bas and each cls. The next process is the 'fix up' in which the linker finds each referenced function and variable to produce the final machine-code .exe file.

At this point, only a debugger such as NuMega's, will provide insight into the source code however this insight will be as Assembler instructions or perhaps some low-level C translations.

The original VB structure exists only in the initial source code and any attempts to programme a reverse-engineering tool would be at best, guesswork for if my decompiler reached a point wherein an image was made invisible, how should the machine code be translated:

Select case imgMain.Visible
case True: imgMain.Visible = False 'do something
case else: 'do this
End Select


Or perhaps...

If imgMain.Visible then imgMain.Visible = False

I won't bore you with the lower technical details; this should be boring enough.

With VB.Net, though, decompilation might be possible since the 'intermediate language' is not too dissimilar (cough, cough) to the 'pseudo code' of VB 4 and lower which made decompilers possible at that time.

Hope this helped.

Nick

 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top