-
Notifications
You must be signed in to change notification settings - Fork 569
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
VBA compressed source injection? #555
Comments
It is technically doable of course, but there are two issues to solve:
Now if you're not constrained to use Python, people have aleady done it (overwriting VBA) in C#, for example in EvilClippy: https://github.com/outflanknl/EvilClippy And there's also http://rubberduckvba.com/ to improve the VBE but using a different approach, by extending it instead of trying to replace it. |
@decalage2 - Thanks for the links to As for RubberDuck, yes, I follow its development. I believe they are currently looking into making a language server from the rubber duck codebase. If they do manage that, this will be the another step closer for VBA IDE in VSCode 👍 . Feel free to close this issue if you won't be improving oletools in this regard. |
I believe this suggestion has been tossed around here several times. Personally, I would love to be able to manage VBA code with git, and configure a CI tool to automatically package it up into an excel addin when tagged for release. I have a python project with the goal of creating the addin given a .bin (https://github.com/Beakerboy/Excel-Addin-Generator). If there were a tool to generate the bin file, I think we could see a lot more VBA code on GitHub. |
@Beakerboy and any other visitors. FYI, I did start this project over at VBAPackager. Currently re-working and modularising EvilClippy's code... Not totally sure when it'll be finished but just a heads up :) |
@sancarn Could you open up the “issues” section on that project? I’d love to test things out and be able to offer feedback. |
@Beakerboy This is where DMs would be nice lol... Managing expectations, currently the the module simply loads the VBAProject into memory and not much else, will be focussing on |
A note, before writing VBA code is actually useful, PCode should also be written: https://github.com/bontchev/pcodedmp |
I don't think this is strictly required because if the pcode is missing the application will auto-generate it from the source code as long as the pcode isn't present in the file. |
That is true, but then the p-code should still be removed or overwritten. |
Yes, either that or you just always start with a template which has no P-Code 😛 Depends on your use case of course. EvilClippy isn't even close to being there, although it is part of the way there. |
This project implements the VBA compression algorithm in python: https://github.com/coldfusion39/excel-press |
Does that mean the last piece of the process is combining the compressed project files (*.cls, *.bas) into one file (vbaProject.bin)? |
Hi Decalage
For a long while I've been looking to make a VBA IDE outside of the VBE (because the VBE is rubbish) and I personally feel VBA macros should be writable outside Microsoft Office, even if they do have to be run within Microsoft Office.
Related to our conversation here, how easy would it be to convert something like olevba into a writer for VBA macros?
**Pseudocode: **
In theory DidierStevens described how to do this
However I'm not exactly sure how to do this within your code? (In fairness my unfamiliarity with python likely doesn't help here...)
The text was updated successfully, but these errors were encountered: