Building UI applications with PowerShell in Windows
All started some years ago when I created some Windows Shell scripts such as vbs/batch etc. to automate computer tasks at home and at the company I worked for. After that period, I started to integrate them within some PowerShell scripts. Some of those batch files converted to executables. Short time after I thought, hmm is there a way to build a beautifully crafted UI and bring all those scripts into a single executable without the need to install it? Well, I accepted that challenge and looked around for options. I was looking for a product I can rely on for all my needs such as
• having a universal Scripting IDE for all my administrative as well as web-development tasks;
• having a Windows PowerShell integrated scripting and tool-making environment for x86/x64;
• In-house support or forum access to ask diverse tool making questions when struggling with any problems when using the software, the way I like;
• finally, not to be so expensive, to cover with one license two development machines and to be able to migrate easily the installation across devices when needed.
• PowerShell Studio is the premier editor and tool-making environment for Windows PowerShell.
• VersionRecall is the simplest way to manage multiple versions of files on your computer.
• WMI Explorer discover WMI - get a handle on WMI classes and their properties and methods.
• PrimalSQL makes database query development and testing a snap, regardless of your database type or vendor.
• PrimalXML provides you with the core set of functionality that you need to get your job done.
• PowerShell Module Manager is the essential tool for centrally managing all PowerShell modules installed on your machine.
• PowerShell HelpWriter the first professionally designed environment for writing and editing Windows PowerShell help files.
Since 2018, I usually work using Sapien PowerShell Studio/PrimalScript/WMI Explorer/Version Recall.
I am sharing below some screenshots about the happiness I have when using such powerful suite with tools at the fingertips. I am a happy user using the Dark Mode Template :).
So, the app I tried building consist of the below functionality:
• BASIC LOGS - SUMMARY
The Data is collected in csv/xls(x)/xml/txt/csv file formats. The exported data is set to be saved in the Current Directory where the App is run.
The file is set to look like: computername_x64/x86 Architecture. For example: MyPC-name__SUMMARY_WIN7_SP1_x64.txt .
• ADVANCED LOGS:
Windows OS activations;
Windows update log;
Proxy Configuration settings
Deployment, servicing logs [ still under development and testing ].
Archive collected logs [ still under development and testing ].
• Changelog tab – more information about the application. Information about the help files / documentation etc.
• About the project tab - why I wanted to give it a try to create it ?
I listed below some screenshots of the application – AdminLogsToolkit, created for the x86 and x64 Platform.
During the time I was trying to develop the application and gaining new precious experience I was thinking of a way to protect/license that program. So, between switching the diversity of hobbies ????, I did some digging and application trials testing. I know that most applications can be reverse engineered, or license activation bypassed. Well, I wanted to give it a try, have an additional challenge along the way. Therefore, I was looking for the below requirements I had back in time:
A professional software protection and licensing system as a cost effective and easy to implement, yet reliable and non-invasive way to protect x86 and x64-bit Windows software applications from reverse engineering, unauthorized modifications ("cracking") and redistribution ("software piracy") while providing a secure and flexible licensing/registration system. I wanted to have web licensing functionality as well, but this does not have the functionality, yet I was looking for. In the meantime, opened a ticket and this will be improved in the future ????.
In addition to the above I needed to have reliable support during presales, after purchase and during my adventure developing the idea. I found the below applications:
but I went using Obsidium Personal License Bundle (x86+x64) as my choice of preference.
When finalizing the created protected application, I also needed a code signing certificate. While checking for free options I looked also for such commercial ones as for a freelancer (in means of not being a company) to get one. Well, for my type of testing I decided to build my own Certificate Authority based on Windows Server 2016 and issue a self-signed one:
Currently it is used for testing only. If I decide to release it publicly available, then maybe the best choice is to use the below code signing vendors:
While looking for ways of protecting what I developed, I also installed several reverse engineering tools on the Windows box I currently run for tests on, as well as educated myself how people do such bypassing and to understand, widen my curiosity:
• IDA Pro 6.5
• .NET reflector Desktop 10
• PE Explorer
• SnowMan plg for IDA Pro
• PEBrowse64 Pro
• Resource Hacker
• Explorer Suite IV
All that software activation bypassing/code analysis is fun and very educational. For me as a hobby enthusiast it was actually very nice to see how it is done by professionals.
After completing version 1.0 of AdminLogsToolkit I decided to proceed with the software protection Obsidium.de application. Below are the listed reasons, some quoted from the website:
- Licensing SDK and a variety of programming language examples how to integrate the solution (C#, C++ Builder 6, C++ Builder 2009, C++ Wrapper, Delphi, ExeOutput for PHP, PureBasic, RealBasic, Visual Basic 6, Visual C++);
- A great software product should be always covered by professional, quick support responses during evaluation and afterwards too.
- Time trials
- Integrated licensing systems using strong public key cryptography
- Dongle support for SenseLock
- Counter-measures against disassembling, debugging, dumping and patching
- File integrity checks
- Hardware locking
- Full Unicode compatibility
- Network Licensing, cool feature if running within an RDS or Citrix environment farm
- Password protection
- Working with WPF apps - Please note that after analyzing the created portable executable built by Sapien PowerShell Studio it is a Windows Presentation Foundation App. Well, it might differ from the settings used but this is by now what I noticed.
I would be happy for receiving any feedback based on your experience. NOT many of the software protection suites I tested, could encrypt WPF or when encrypted run afterwards correctly without crashing :D or causing BSOD on the Windows box.
In an additional blog post there will be more information about Obsidium Software Protection System. I have purchased and use the Personal Full license for Windows x64/x86 for protecting apps.
When you like this blog post we will be very happy when you share it. Thank you for the support.