Protected frontend GUI

BlitzMax Forums/BlitzMax Programming/Protected frontend GUI

EOF(Posted 2006) [#1]
(EDIT - Maybe this should be in GUI programming??)


I am starting a project whereby I want to create a protected frontend GUI which restricts a user from tampering with the Windows installation.

For me, its far too easy for a casual user to accidently screw around with the setup. Renaming, deleting, moving icons, deleting stuff from folders, messing up the display, installing spyware freebie stuff, etc..

I really want to crack down hard and set major limitations in place.

My idea is to create a protected frontend display much like you see in a Kiosk. Something which still lets the user click icons, open utilities, and the likes but prevents them from tampering with the O/S itself. Basically, a sandboxed system.

So, I need to:

1) Stop the user Alt-Tabbing into the O/S
2) Kill all system keys such as Ctrl+Alt,Del, the Windows key, menu key, sticky keys.
3) Kill all popup alerts ("Updates ready", "Virus database out of date")
4) Allow only selected drives/folders to be viewable from applications like Notepad, MSPaint
5) Hide the windows taskbar (if 'Always on top' is selected)


Just to give you a taster here is a 'very basic' frontend GUI


My idea is to add a "Admin" mode which allows the complete control of what is accessible to the user, as well as a quit option to return back to Windows.

Task too big?


popcade(Posted 2006) [#2]
Didn't do any hook programming on Windows yet... but I heard that's a lot of work.. :|


Azathoth(Posted 2006) [#3]
So is this like a desktop environment?


Fabian.(Posted 2006) [#4]
You could use multiple desktops. Windows creates the most gui stuff on the Default desktop. So if you create another desktop and run your application on this desktop you could have a much more secure system than normal windows. Using a seperate desktop can solve all points in the list you made except number 4.

I wrote some code showing how this could work, if the app is started once the user can't switch back to the Default desktop manually. You need to click the application's button to close it and return to windows - however, you can easily change the application's source code to make the button invisible or disabled and then the user can't get back to the OS at all. I just tried out myself - even Ctrl-Alt-Del doesn't help. So here's the code:

The functions are extracted from my module, feel free to use them in your applications if you like.
I used code like this to create a winlock tool (source here), which can be used to protect the system if you are temorary away and leave the system alone. The application asks you for a password and as soon as you entered it the OS gets locked and you can't do anything if you don't enter the password again.

I'm quite sure that the user can't do anything on the secondary desktop; except the actions you explicitly allowed.


EOF(Posted 2006) [#5]
Great work Franz.
Thats the sort of thing I'm after.
I'll have a play. Many thanks!