• Welcome to Valhalla Legends Archive.
 

Can VB 6 be decompiled

Started by DeTaiLs, April 02, 2004, 03:52 PM

Previous topic - Next topic

DeTaiLs

Me and a friend are having a fight i am saying that VB 6 cant be decompiled and he is saying people decompile and steal projects all the time.



The-FooL

VB6 can be decompiled.  There are many decompilers out there....

Stealth

As far as I know, VB6 can't be decompiled back into VB code. Any program can be disassembled.
- Stealth
Author of StealthBot

Noodlez

Someone *could* write a program which converts the assembly to VB though : :P

DeTaiLs

The last VB i knew that could be decompiled was Vb3 i think since that VB has been more protected and harder to decompile i searched google and different websites and found no proof that decompiles exist



Newby

Quote from: Noodlez on April 02, 2004, 07:15 PM
Someone *could* write a program which converts the assembly to VB though : :P
I nominate Noodlez to do it :D
- Newby

Quote[17:32:45] * xar sets mode: -oooooooooo algorithm ban chris cipher newby stdio TehUser tnarongi|away vursed warz
[17:32:54] * xar sets mode: +o newby
[17:32:58] <xar> new rule
[17:33:02] <xar> me and newby rule all

Quote<TehUser> Man, I can't get Xorg to work properly.  This sucks.
<torque> you should probably kill yourself
<TehUser> I think I will.  Thanks, torque.

drivehappy

I imagine it can be. If the processor can execute the commands I'm sure someone would be able to do the same, however I've read it is hard to do.

Banana fanna fo fanna

#7
Quote from: Noodlez on April 02, 2004, 07:15 PM
Someone *could* write a program which converts the assembly to VB though : :P

no you can't

But check out NuMega SmartCheck, it can give you a ton of information, almost to the point of decompiling.

TheMinistered

In all actuality, a vb6 executable could be decompiled to vb6.  There is one but though, that being that you can not retrieve original variable names.  I think no one has taken the time to build one, as it would be a large and cumbersome project.

Adron

#9
P-code could probably be done rather well, native code is probably more ambiguous.

iago

As far as I know, vb1-4 can be decompiled fully, and vb 5/6/I assume .net can't be.  It can, of course, be disassembled or hex-edited, though.  If by "Steal" your friend means put their name on it, then yes, that's possible, just by editing the Strings.
This'll make an interesting test for broken AV:
QuoteX5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*


Adron

As far as I know, vb1-4 can load binary data in the same format it's stored in the exe and then save it as text. vb5-6 can't, they only load text format files. So for vb5-6, you need to parse it from binary->text yourself, making a discompiler much more complex to make.

MyndFyre

Quote from: iago on April 07, 2004, 11:43 AM
As far as I know, vb1-4 can be decompiled fully, and vb 5/6/I assume .net can't be.  It can, of course, be disassembled or hex-edited, though.  If by "Steal" your friend means put their name on it, then yes, that's possible, just by editing the Strings.

VB .NET can most definitely be decompiled; obfuscation tools are available to make it much more difficult (Dotfuscator Professional is great), but I found two quite good decompilers for free.  It's a sad reality.
QuoteEvery generation of humans believed it had all the answers it needed, except for a few mysteries they assumed would be solved at any moment. And they all believed their ancestors were simplistic and deluded. What are the odds that you are the first generation of humans who will understand reality?

After 3 years, it's on the horizon.  The new JinxBot, and BN#, the managed Battle.net Client library.

Quote from: chyea on January 16, 2009, 05:05 PM
You've just located global warming.

iago

#13
Quote from: Myndfyre on April 07, 2004, 09:33 PM
Quote from: iago on April 07, 2004, 11:43 AM
As far as I know, vb1-4 can be decompiled fully, and vb 5/6/I assume .net can't be.  It can, of course, be disassembled or hex-edited, though.  If by "Steal" your friend means put their name on it, then yes, that's possible, just by editing the Strings.

VB .NET can most definitely be decompiled; obfuscation tools are available to make it much more difficult (Dotfuscator Professional is great), but I found two quite good decompilers for free.  It's a sad reality.

Ah, reminds me of Blizzard, breaks their fixes in new versions :)

Just to make sure we're clear, you mean decompiler != disassembler, right?  And how well is it decompiled, are variable names retained?

I actually find it kind of funny that Java comes with a tool to decompile it, javap :)
This'll make an interesting test for broken AV:
QuoteX5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*


K

#14
I dont remember whether or not variable names are preserved (I think they might be), but it's not really as big an issue as you think.  Dotfuscator can turn code like this:


Car c = new Car(EngineType.Diesel);
c.FillUp(DollarsLeft);
while(c.GasLeft())
{
  c.Go();
}


into:

a a = new a(b.a);
a.a(b);
while(a.a())
{
 a.a();
}


by overloading names based on return types as well as function arguments.

Edit: iago, .NET also comes with a disassembler: ildasm.exe.  It's not really that suprising considering they're both compiled to byte code.