|
VB Decompiler Hosted by TheAutomaters.com
|
Author |
Message |
golem Often here
Joined: 18 Nov 2002 Posts: 73
|
Posted: Tue Aug 31, 2004 3:03 am
Post subject: Hey there Alex...
|
|
You don't REALLY think you have the 'copyright' to all the materials contained in your 'vb.pdf' document, do you?
Carry on!
golem
|
|
Back to top |
|
|
|
ionescu007 Sometimes here
Joined: 21 Aug 2004 Posts: 33
|
Posted: Tue Aug 31, 2004 4:05 am
Post subject:
|
|
Hi,
Um, copyright means that you're not allowed taking that PDF and writing "WRITTEN BY GOLEM. I RULZZZZZ" on it. I've shared all the information in there with the site. So yes, I hold copyright to all "materials" in that PDF, not the information herein (however 75% of it is mine, since the existing data was incorrect or lacking. I merely corrected it).
Best regards,
Alex Ionescu
Kernel Developer, ReactOS
President, Relsoft Technologies
|
|
Back to top |
|
|
|
golem Often here
Joined: 18 Nov 2002 Posts: 73
|
Posted: Tue Aug 31, 2004 4:10 pm
Post subject: I'm a gem collector...
|
|
AND this is certainly another Alex gem!
> copyright means that you're not allowed taking that PDF
> I hold copyright to all "materials" in that PDF
Maybe you should get a second opinion... A legal opinion.
>since the existing data was incorrect or lacking. I merely corrected it).
You've taken materials the vast majority of which is plainly and clearly in the public domain, made a few mostly inconsequential 'corrections' and are now claiming...
>however 75% of it is mine
I don't think so!
Hmmm.... Not even one single mention, acknowledgement of, reference to, or bibliographical credit to the REAL sources.
That, my friend, has a different definition AND it is certainly not 'copyright'.
Quite a few years back now, I was fortunate enough to be able to complete a (the only? ) working VB5/6 PCode decompiler... The result of countless hours... However, I simply can not stand up and say anything in any way, shape, or form proclaiming:
>however 75% of it is mine...
Because as everyone knows I'm standing on a LOT of peoples shoulders.
Carry on!
golem
|
|
Back to top |
|
|
|
ionescu007 Sometimes here
Joined: 21 Aug 2004 Posts: 33
|
Posted: Tue Aug 31, 2004 10:35 pm
Post subject:
|
|
> Maybe you should get a second opinion... A legal opinion.
I did. As I said, you cannot take that PDF and claim it's yours. It is copyright infrigement.
> You've taken materials the vast majority of which is plainly and clearly in > the public domain, made a few mostly inconsequential 'corrections' and are now claiming...
No actually, I've done absolutely all the work by my own, including the naming, offsets, defintions and all graphical elements of the document. I only used this site to double-check some things.
> Laughing I don't think so!
Good for you. When you can come up with valid proof, let me know. I think I was being generous with the 75%. The only stuff in there which I didn't have time to discover or wrongly assumed comes from _alfa_, and I thanked her in every post for her help. But maybe you can't read.
> Quite a few years back now, I was fortunate enough to be able to >complete a (the only? Wink ) working VB5/6 PCode decompiler... The >result of countless hours... However, I simply can not stand up and say >anything in any way, shape, or form proclaiming
Funny, all I've seen from you are posts saying "You're getting somewhere" and "Good..good..close!". All I've seen from me are over 30 "inconsequential" changes (such as reversing the ENTIRE Project COM data tables which WEREN'T EVEN ON THE SITE as well as finding out a way to INITIALIZE VARIABLES AT RUNTIME based on a new structure), complete defintions of each structures I've touched, credit to alfa who helped me, and all in one week.
>Because as everyone knows I'm standing on a LOT of peoples shoulders.
You do, I don't. I opened up ollydbg and IDA, and spent hours finding everything by myself. I've had no help from anyone except alfa and that is the simple truth (and I've credited her)..
Of course the whole issue is that you're frustrated someone is better then you (not just me, I've seen your kind of response to others as well), and you think you're all that for making the "only" working VB PCode decompiler. Yeah well guess what, that's a piece of cake, IMO. Show me something that transforms PCode into "Form.Load: MsgBox App.hInstance: SendMessage(Me.hwnd, WM_CAPTION, 0, Byval "Hello")" and then I'll be amazed.
>Carry on!
No I won't waste my time replying anymore. Flame me all you want.
Best regards,
Alex Ionescu
Kernel Developer, ReactOS
President, Relsoft Technologies
|
|
Back to top |
|
|
|
golem Often here
Joined: 18 Nov 2002 Posts: 73
|
Posted: Wed Sep 01, 2004 3:53 am
Post subject: LOL... Ouch!
|
|
Alexandru: It's MINE! ALL... MINE!
>something that transforms PCode->
Form.Load: MsgBox App.hInstance: SendMessage(Me.hwnd, WM_CAPTION, 0, Byval "Hello")
OK. I accept your challenge (cuz 'and then I'll be amazed' = my NEW goal in life). So, I loaded your 'VB' 'code snippet' and compiled it to PCode.
Wait... Somethings wrong! I don't understand... I got some kind of error:'Compile error: Syntax error'.
I'm SO confused!
What did I do wrong? Hmm... I know! I need your 'DLL Compiler' to be able to call this 'VB' 'code snippet' from VB, right? (You're not just toying with me aren't you? You picked this particular snippet of code just to trip me up or activate some hidden feature in VB only you know about?) Or I need to install the latest version 'DLL Compiler'?
I would really appreciate any light you can shed on this...
(Do you have ANY idea how absurd you sound? )
Carry on!
golem
(Two more things Alexandru...
-Put something like a 'shout out' to Alfa et al IN YOUR VB.PDF and we'll put this whole thing behind us... You dig?
-In the interest of fair play Alex, I will let you in on a couple of little secrets... golem doesn't need anything to recover source code from PCode, golem reads it. golems_Folly recovers RECOMPILABLE code up thru level 4 VB5/6 PCode projects. Do you have ANY idea what that means genius?
God you're an idiot! (Did I say that out loud? ))
|
|
Back to top |
|
|
|
Dr Memory Expert
Joined: 16 Aug 2004 Posts: 147 Location: Surrey, UK
|
Posted: Wed Sep 01, 2004 6:56 am
Post subject: The Soothsayer's Tale
|
|
The Cranberry Tales
42. The Soothsayer's Tale (extract)
Explain to me once again, soothsayer, how ram's bladders might be used to prevent earthquakes .....
It would be my sublime pleasure, Your Majesty!
Sire, let me say at once that this wondrous idea is purely a result of my own, humble invention. Nowhere else in the land, sire, has such a wonder been achieved, although many have i... (gulp) ...
Arrest this man! Soothsayer, thine own lips condemn thee as a liar and a charlatan .... We have in fact witnessed this very wonder before ....
Guards, take him away, we shall hang the miserable wretch along with all the others this Michaelmas!
But Sire, Your Majesty, I beg you, spare my life! In my defence, Sire, I have worked many seasons in isolation, perhaps I spoke in haste ... if you have seen another man demonstrate this, perhaps this other knave you refer to has stolen my scrolls .. these are indeed dangerous times, as Your Divine Mercy knows ..... and I ...
.... did you say "all the others", Your Majesty???
Indeeed, soothsayer, you will bring the total number of original inventors of this device to Twelve! A fitting number, one of pleasing Biblical proportions.
Our decree is that the twelve pretenders, these "Apostles of the Ram", shall be hanged on Michaelmas day, as a salutory warning to those who would deceive their King in order to gain from his Royal favour..
But one of you shall be spared! On Michaelmas mornng, you will each have 5 minutes to plead your case to the crowd.
Should any one man gain the peoples's support, they shall be installed at Court as Royal Inventor of the Ram's Bladder Method , and awarded estates in Snowdonia ... the rest will hang.
Take him away .....
Historical Notes:
This cautionary tale depicts actual events in the reign of King Actsalot II. The King, we suspect knew full well that, working in isolated monasteries, all twelve had, in all probability, "invented" the same method, and were not seriously intending to decieve him.
But, by publicly claiming primacy, they had put him in a difficult position, as he realised full well that there was only room in the general public's mind for one such champion (and only so much land to spare in Snowdonia).
Interestingly, Actsalot himself was a keen inventor, and is credited with a number of inventions, including Poetic Justice and the Penalty Shootout.
Extract from "An Axolotl's Guide to World History" reprinted with the kind permission of Mnemonic Press
|
|
Back to top |
|
|
|
ionescu007 Sometimes here
Joined: 21 Aug 2004 Posts: 33
|
Posted: Wed Sep 01, 2004 8:19 pm
Post subject:
|
|
You're either making fun of me for not remembering VB syntax by heart, which is the weakest attempt at an argument you've made yet, or you're actually unable to correct the syntax and make it work. However since I don't think you're stupid (just a PITA), I'll assume you were trying to make a point on how I don't know VB syntax by heart. Yes, I don't anymore, sue me. I code in ASM/C now.
The PDF for now is only known to _members of this site_. These members get the link from my post, where I mention a shoutout to alfa. I will add it in the PDF if that will make your day.
Do you have as much as a screenshot of your product? Because you know, in the industry where I come from, we call this "vaporware".
Dr:Memory: Thanks . Oh and I read your nice comments in my PSC project. It was very worthwhile.
Best regards,
Alex Ionescu
Kernel Developer, ReactOS
President, Relsoft Technologies
|
|
Back to top |
|
|
|
golem Often here
Joined: 18 Nov 2002 Posts: 73
|
Posted: Thu Sep 02, 2004 12:45 am
Post subject: Agent 007, I presume...
|
|
>No I won't waste my time replying anymore.
Oh really? So what is this I'm responding to... My more than vivid imagination?
>You're... making fun of me...
What on earth ever gave you that impression Sean Mockery Agent 007?
>you're...(just a PITA)
Flatterer. Pita? Not exactly. Just a keen observer Alexandru.
When you try to do things like serve up your 'vb' 'code snippet'... or say things like 'you were trying to make a point on how I don't know VB syntax by heart. Yes, I don't anymore..'. Now, I don't REALLY need to say anything do I... Alexandru?
>shoutout to alfa... if that will make your day.
What golem says or thinks is irrelevant. You add a 'shoutout' to anyone who had absolutely anything to do with your effort because you know it's the right thing to do and you respect them and their efforts as colloborators.
> you're actually unable to correct the syntax and make it work
>have... a screenshot... we call this "vaporware".
Ouch! You're so 'vicious'...
Carry on!
golem
|
|
Back to top |
|
|
|
Dr Memory Expert
Joined: 16 Aug 2004 Posts: 147 Location: Surrey, UK
|
Posted: Thu Sep 02, 2004 4:41 am
Post subject:
|
|
I have to admit you are 100% right there - it's true, and a matter of public record, that I am a genuine pain in the ass.
But I won't argue against a sound position, I'm sure I told somebody or other I agreed with you on copyright, theoretically anyway. It's hard to defend anybody with no sense of humour though ...
The "Ram's Bladder" references used in my little vignette may have caused some confusion - it's just a well-known Monty Python reference (cf Monty Python and the Holy Grail, the scene featuring the rabbit and the "Holy Hand Grenade of Antioch")
My only "product", Eureka , not even released yet, has nothing whatsoever to do with the subject of DLL's and GUI support. It's about VB6 runtime error diagnostics.
My interest in DLL's, GUI's and the modal/modeless issue is purely academic, my own DLL's are specifically for VB clients anyway, so I have nothing to gain.... except understanding!
In that PSC post I made, I mention my primary sources straight up - Schmidt and vbAdvance, and John Chamberlait. I point out that I am merely approaching the problem from a slightly different persepective, as a VB programmer. I even say in parting that I look forward to seeing the other solutions demonstrated!
To return to the case in question, the initialisation of the VB class library in a VB dll that is being called via API, not COM, can indeed be reduced to a stub routine in the case of exclusively VB callers, just as I said.
I only thought of this in the past few days, and I thought it was neat, and worth showing. I'm not going to be able to write a decent PSC article right this instant, but I can tell you that for VB clients, a DLLMAIN needs only to call UserDllMain and DllGetClassObject.
This in itself is nothing new, what's interesting is how far I've ben able to reduce the amount of code needed to engineer that DllGetClassObject call.
DllGetClassObject VarPtr(0), IClassFactory, VarPtr(0)
That's it! IClassFactory is a constant, so it can't really get much easier than that, can it...
If I learn enough about a method to understand its principles, I often do spot things that can be tidied up as a result ... 35 years as a systems programmer does tend to hone one's instincts for an easier way to do things .. I am hopeless at those "IQ" tests that involve coloured shapes and rotations and reflections, but give me a "black box" and ask "how does this work?" and I'm more in my element ....
For the same DLL also to be able to detect a nonVB caller and adjust accordingly is a bit harder. How to tell a nonVB caller from DLLMAIN without an API call is one tricky problem ... an api call at the wrong time for a nonVB caller is fatal ...
It will take some time to write a decent submission for PSC, but meanwhile I'll try and knock together some demo or screenshots and post that .. and answer any questions, should anybody else find this rarefied topic of any interest!
Cheers
|
|
Back to top |
|
|
|
Dr Memory Expert
Joined: 16 Aug 2004 Posts: 147 Location: Surrey, UK
|
Posted: Sun Sep 05, 2004 8:38 pm
Post subject:
|
|
I'm reporting back here because the PSC paper I'm writing, like all documentation, is an extraordinarily time-consuming process, and it has occurred to me that a reasonable person might be forgiven for (and disappointed by) any inference that I was, after all, having some trouble substantiating my claim, made on PSC, that a "50-lines-of-VB" general solution to the "Language-independent DLL self-initialisation" problem was available.
I can assure you it was, of course, however ....
To be perfectly frank, the number 50 turned out to be rubbish!
My technical report is slowly but steadily increasing in size, as these things do. But, by some strange witchcraft, so has my solution correspondingly reduced before my very eyes, until now, at just 5, it seems at serious risk of disappearing altogether!
Before they send the Inquisition to test for signs of alchemy and other heresies, I hasten to add that the only witchcraft here is essence of computer science ...
OK, with that, let's cut to the chase and review where we are!
Synopsis
As I stated above, the problem of "runtime initialisation" is essentially a problem of initialising a VB6 DLL's private class library, and this boils down to the engineering of a single call to the Dll's own DllGetClassObject function:
Code: | DllGetClassObject NullPtr, IClassFactory, NullPtr |
where IClassFactory is a constant GUID ({00000001-0000-0000-C000-000000000046})
If we include the TLS initialisation all VB6 dll's need to do, in order to initialise the non-COM objects such as Err and App, then a DLLMAIN function in the DLL needs to make just TWO critical function calls to completely self-initialise:
Code: | Call UserDllMain(vbHeader + 4, vbHeader, hModule, 1, 0)
Call DllGetClassObject(ByRef 0, IClassFactory, ByRef 0) |
The value of vbHeader, although very well-known around this forum, still must be identified at runtime, and this requires an additional call or two:
Code: | myGCO = GetProcAddress(hModule, "DllGetClassObject")
vbHeader = DerefMemory(myGCO + 7) |
This algorithm will work fine, regardless of the language of the caller. But there is a serious obstacle that make the calls themselves very difficult to make when the client is not also VB6!
You can't make normal VB6-style API calls (i.e. via "Declare Function") without first initialising the runtime environment. Catch 22!
But as any good systems programmer knows, there are no obstacles, just new things that have to be learned. The Declare Statement is not the only way to call a function in VB6.
There are TypeLib's, for example. Anybody who has ever become exasperated with endless copying and pasting of standard API declarations and has gone looking for an alternative, might already be familiar with the magic of this alternative method of API calls.
No Declare's are needed, which is the chief reason for its popularity!
But there is another, less widely known, advantage to this method ....
IT WORKS WITHOUT RUNTIME INITIALISATION!
Yes, by predefining your API interface at compile time through a simple Type Library, VB6 does not use its internal just-in-time dynamic thunking system to make those calls.
No, it just puts these guys in the normal IMPORT table of the DLL, like all the calls it wants to make itself. The system will fill in the Import table at runtime just BEFORE entering any DLLMAIN we might provide.
Ta dum ......... !!!
The process of building a TypeLib this way is essentially converting selected portions of Win32 HEADER files directly into public usable type declarations, which any COM client, such as the IDE, can use.
So each and every one of those API calls can be implemented more or less exactly as shown .... and here is my complete DllMain, as used in the demo whose screenshot I have shown in the VB section.
way round!
Code: |
Dim IIDCF(15) As Byte
Dim myGCO As Long, NullVar As Long
IIDCF(0) = 1: IIDCF(8) = &HC0: IIDCF(15) = &H46
myGCO = GetProcAddress(hInstance, "DllGetClassObject")
CopyMemory vbHeader, myGCO + 7, 4
UserDllMain vbHeader + 4, vbHeader, hInstance, 1, 0
DllGetClassObject NullVar, IIDCF, NullVar
|
It is seriously cute, we are forced to admit!
It's like, well, magic! MathImagic .....
PS: for modeless forms, you just add a simple message pump, the DLL can do it, and the client can run itself in a background thread, OR in most cases the client will have a pump running anyway ....
|
|
Back to top |
|
|
|
|
|
|
You can post new topics in this forum You can reply to topics in this forum You can edit your posts in this forum You can delete your posts in this forum You can vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|