R4ndom Posted August 6, 2012 Posted August 6, 2012 I have an idea for an app, but ultimately I would like to make it possible for people to add functionality to it by means of plugins. It would be like Olly in that respect, except not quite that ambitious. What I would like is for people to be able to add this functionality non-language specific, ie. Iif someone wants to use Delphi or .NET, but I want to program the skeleton in C++, that should be allowed.I have done a lot of thinking about this but I wanted to get another's optinion on the best way to structure the framework before I took the plunge and started coding. I would imagine that provding an API is probably the best bet, but I wanted to make sure I didn't miss something.Does anyone have any suggestions?
kao Posted August 6, 2012 Posted August 6, 2012 For a first version of program - don't make SDK or plugin support. You don't know if people will actually want to make plugins and what they will want to do with them, so you can't design APIs yet.Examples - CFF Explorer has support for extensions but I have yet to see one useful extension for it. Plugins for SAE (Simple Assembly Explorer) are being made only by SAE author..As for APIs and framework - either go for totally script-based plugins (eg. LUA, Python) or make SDK for MS C/C++ compiler. If people want, they'll be able to port that SDK to other languages.
delldell Posted August 12, 2012 Posted August 12, 2012 if you want to make a commercial program then I suggest considerwhat kao saidif not then try to make it with your main ideaif you want to build the program with plugins then do itthe most important thing here if you feel ok with your concepts and ideasthen proceed and do itjust consider thistime factorand a lot of codethe people are going to use the plugins and make plugins if theyhave easy examples like ollydbg the Olly_Plugin_Development_Kitinside have a source code how to make a plugin indifferent languages like visual basic, delphi,masm,net etc..
genuine_ Posted August 19, 2012 Posted August 19, 2012 I worked on a project with such capabilities, I can tell you this, you have to really know how you want your framework to be used..the bulk of the work will be how you implement the capabilities of your framework, know your plugin author audience, and follow a certain standard i.e Will you be providing functions to do certain string or other data manipulation? or should that be up to the plugin authors to implement? or can they choose both? If so, then you will have to write function or wrappers that internally call your own data manipulations. If you decide to provide scripting capabilities, you will have to be sure not to be prejudice and provide about the same amount of capabilities to both statically compiled and interpreted languages, and believe me, youll be tempted because you can pretty much do anything with the scripting languages which become alittle challenging with say C/C++.. anyways, its just important to understand how your framework can and will be used, set those limitations in the beginning so you dont end up having to make drastic changes in the future and end up having to break backward compatibility.. 1
atom0s Posted August 24, 2012 Posted August 24, 2012 (edited) Here is a great article covering plugins for C++http://www.drdobbs.c...-part/204202899The tutorial is in five parts.I also agree totally with Kao. The first version of your application should focus on being a working piece of software. Plugins and extensions should be something you extend into afterward. Edited August 24, 2012 by atom0s
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now