Add custom 2FA on Windows XP (after login) - c++

I would like to create a custom 2FA on Windows XP (and above) for personal computers.
I know Windows XP is discontinued, but I'm using an old program relying on Windows XP, so for now I'm stuck on it.
I can write C/C++ code, but I don't know C#. So I'm trying to figure out a way to suspend userinit to show my app, then my app will either let userinit do its thing, or logout the user.
I've tried changing userinit in the registry to put my app which would load userinit itself, but it's easily hackable: My app can be closed, leaving the computer in a lockdown state, or taskmgr can be used to launch userinit or explorer.
If there are better way, I'm opened to suggestions, but I'd like to avoid ready made solutions (Rohos Logon Key works but can sometimes be worked around)

As far as I know you can do it only on C++ to implement GINA (for Windows XP). For Vista (and above) you need to implement Credential Provider. It can be implemented in both C++ and C#.

Related

Unity3d application development on Amazon Web Services

I ask here because I've asked on the Unity3D forums (in July) and nobody has responded, and I still have the same issue.
I have an AWS EC2 instance and I am using it to develop with Unity3D.
The problem is that while the keyboard and mouse work perfectly fine in the editor, the mouse stops responding when in "play" mode.
I access my EC2 instance via Windows Remote Desktop, I have an Administrators account and I have all drivers up to date.
Any ideas?
Update
I am doing research, so cross-platform compatibility is not a concern. I'm using Windows because the tools I require, require Windows. Changing OS is not an option.
I've tried starting the editor with admin. I've also tried launching the remote desktop with admin. Nothing fixes it.
Even the standard Unity3D demo applications have this issue, so it is not something that I am doing.

VirtualBox XPCOM for different users

I'm using VirtualBox's XPCOM to interact with the VirtualBox information. So far everything works well. Now I'd like to interact with VirtualBox for different users. Is there any way to do this? It seems that the XPCOM only starts the VBoxSVC process for the current user. Is there any way to have it start it as a different user? I've looked into using vboxwebsrv as well, but the sdk says that it will only get the VirtualBox information as the user it is started as.
Also, assume I can run the XPCOM client program as root, so it has access to everything. Is there anything I can do to make this work?

Embed specific Web Browser in C++ application

my question might be crazy, I know it has to be something like COM, but I need to include and COM a specific version of Web browser in my application no matter what version of the browser the computer currently is using, say to include IE7(dll file or whatever) in the project and COM programming it as a window in C++ application to surf web pages on internet although the default browser in client machine is IE9. And deploy the compiled project with IE7 file(s) to client machines. If IE/COM won't work that way, any other browsers can do the tricks?
Many Thanks!
CanadaYong
No, you cannot "embed" a specific version of Internet Explorer in your application. But you probably don't need to: when you use the IE COM WebBrowser Control in your application, by default it runs in IE7 Compatibility mode. Later modes are only used if you explicitly set the FEATURE_BROWSER_EMULATION registry key listing your executable name.

Deploying a Firebreath plugin on a webpage without manual installation

Recently I have been experimenting with Firebreath and developed a plugin in order to showcase my c++ projects on my portfolio website. I would like to make it easy for users to look at the projects without downloading files if they are new on my website.
The only issue I have at this point is that when users visit my page, they will receive a message indicating the plugin is missing. I would like to have an option for the users to automatically install my plugin without having to manually download and run it.
The plugin is mainly targetted at Windows users, since the applications are as well. I intend to support Google Chrome, Firefox, Internet Explorer. Currently I am using a MSI installer to install the plugin.
I have found a question similar to this, but I still needed to save the MSI installer and run it.
My question is: What would be the best way to implement this?
There isn't any way to "automatically" do what you want to do. The closest that I have heard of would be to use a java applet that would download and install the plugin for them. This can be pretty reliable on Mac but far less reliable on windows (for a number of reasons, among which the fact that many windows users don't have java installed and that Chrome blocks java applets by default without intervention by the user).
Other options include:
Creating a CAB file installer (only works on IE)
Creating a XPI firefox extension that packages the plugin (requires restarting the browser, only works on firefox)
Creating a CRX chrome extension that packages the plugin (only works on Chrome)
Microsoft ClickOnce used to work pretty well for one click installs of MSI files from a web page, but recently I think it doesn't work on many (if any) browsers; haven't seen it used in awhile, anyway.
There is no "automatic" way to install plugins; that would be considered a severe security issue. This is probably the #1 reason that plugins are as uncommon as they are.
do what adobe does,
create a tiny activeX application downloader, sign the activeX from with cheap SSL
when a user, enters your site, he will automatically be downloading this tiny ActiveX, after installation complete, inside the tiny ActiveX, have some type of batch script to download the EXE from remote server and silently install it.
adobe does this, on every reboot in boot.ini or startups
very easy

Is it possible to run ATL service as user application

I have to develop ATL app that is meant to run as service most the time, however we need to deploy it as user application in few environments
I believe that the answer is no, but I could easily be wrong - in either case however this probably isn't the approach I would take. Personally in your situation I would either:
Develop 2 apps, a service and a user application, or
Develop a console application and use the Windows Server 2003 resource kit to run it as a service.
See here for instructions on how to run any Application as a Windows service (I'm sure there are better guides out there, but I'm struggling to find them at the moment)