![cara mengedit file exe visual basic cara mengedit file exe visual basic](https://i.ytimg.com/vi/ubJkawZ4yVM/maxresdefault.jpg)
Hence you need to repack the whole structure just to add a new property for a control! That is, you first decompile the structure, then make modifications to it, and then recompile it (VB does the same, only automatically). Why packed? Simply to get the information on the form's last control, you need to parse all the previous controls one by one. frm files in Notepad (or another text editor), it may be hard to imagine that the same forms may be saved as a packed binary. When VB 1.0 for DOS was popular, all forms were stored in the binary format by default at that time, that didn't sound odd at all.
![cara mengedit file exe visual basic cara mengedit file exe visual basic](http://wellsupernal.weebly.com/uploads/1/2/3/8/123807820/232108830.png)
Now it's time to learn more about the binary format of VB forms and controls. The form length is followed by the description of the form and of its controls. If the dword contains the &H80000000 flag, then the form length data takes 4 bytes, otherwise it takes 2 bytes. Read a dword, then AND it with &H80000000, and you'll get the number of bytes the data takes.
![cara mengedit file exe visual basic cara mengedit file exe visual basic](https://i.ytimg.com/vi/UYOWuwKSYvA/maxresdefault.jpg)
There's a catch, though: It takes either 2 or 4 bytes.
![cara mengedit file exe visual basic cara mengedit file exe visual basic](https://www.cronyos.com/wp-content/uploads/2016/12/exe-file-icon.png)
This address indicates how many bytes the form length data takes. To get the address of the beginning of a form's code, add 93 to aFormPointer. There are as many such structures as project forms, and all of them go one after another. SectionHeader LongĚddress of section headerįormSize Longělock size, describing the form and its controlsĪFormPointer Long Pointer to the block describing the form and its controls OProjectName Long Pointer to the string containing project's nameĪ huge structure, isn't it? Actually, everything is very simple: We only need FormCount, which holds the number of forms, and aGUITable, the pointer to the form-defining structures. OHelpFile Long Pointer to the string containing name of the Help file OProjectTitle Long Pointer to the string containing project's title OProjectExename Long Pointer to the string containing EXE filename (the meaning of this field is unclear as VBĭoesn't let you make multithreaded application)įormCount Integer Number of forms in this applicationĮxternalComponentCount Integer Number of external OCX componentsĪExternalComponentTable Long Pointer to ExternalComponentTableĪComRegisterData Long Pointer to ComRegisterData RuntimeDLLVersion Integer Version of the runtime DLLīackupLanguageID Long Used with backup language DLLĪSubMain Long Procedure to start after the application is launched It may sound funny but all we need for our little research is this VBHeader.īackupLanguageDLL String * 14ěackup language DLL Now we'll read the VBHeader structure at the 0004042E8 address.
#CARA MENGEDIT FILE EXE VISUAL BASIC HOW TO#
(Experienced users probably know how to do the same via the command console, but never mind.) Here's what you'll see after doing that: Let's consider the original entry point - all you need to go to it in the HIEW hex editor is to load the EXE file in that editor, and then to press the following keys in succession: Enter, Enter, F8, F5. First, we need to know how to find those resources in a VB program. Therefore, we have to learn the format ourselves. It is not that the VB format is very complicated - I guess, the reason for the lack of good third-party resource editors capable of handling VB files is that nobody wants that much to spend a lot of time on making such a dedicated tool. Alas, those tools don't recognize VB resources at all.
#CARA MENGEDIT FILE EXE VISUAL BASIC SOFTWARE#
(Actually, I wrote it in early 2007, and all the time since then it had been waiting to be published.)Īs a matter of fact, software localizers and even advanced users have no problem whatsoever with using tools like Restorator or Resource Hacker to edit program interfaces. Doesn't it surprise you that there is almost no information on how to edit VB forms and controls? In this article, I'm going to fill this gap as best as I can. If you are experienced in analyzing software applications and in localization, then you have surely encountered some programs written in Visual Basic™. The Art of Editing Visual Basic™ Forms and Controls