Just read your piece on WizHook — great write‑up. I had no idea it could do all that. I’ve heard it mentioned a few times, but never really looked into it until now.
Looking at Win11 on curve it uses a fixed physical radius of about 8 pixels
The formula likely be logical radius x DPI 96 DPI (100% Scaling)
144 DPI 150% & 192 DPI 200%
Could build a DWM aware adjuster that matches the OS's current theme to be more precise maybe...
Using GetPixel() is an excellent idea, i cannot think of any other method that would work without complication. Could easily adopt the following code to sample 3x3 minimum or maybe 5x5 or 7x7 for robust detection which should reduce false negatives. There will be no minimal impact or UI response...
Hi Colin,
Yes, I had another quick look and I can also see the brief flashing/ghosting effect on movement that you identified. I’ll dig into this when I get a chance.
Interestingly, on my PC the original message actually shows with rounded edges. It shouldn’t be too difficult to apply that...
The code demo is impressively clean — you can tell how much skill and effort went into achieving that result. Really well done, and thanks for sharing it.
I can see you have gone to the trouble of maximising speed:
Avoids variant overhead, you were calling LEN twice & integer is slower than Long:
Private Function GetDynamicKey() As Byte()
Dim combined As String
Dim result() As Byte
Dim i As Long
Dim n As Long
' Build...
If you do wish to stay with XOR (Strongly suggest not)
Improvements included:
Avoids repeated UBound calls inside the loop, off‑by‑one indexing on the key & handle empty arrays safely:
' ========== simple enc (XOR) ==========
Public Function EncryptData(ByRef inputData() As Byte) As Byte()...
If the data matters at all, XOR even with a strong dynamic key is not sufficient.
Attack difficulty is easy……
I use the same approach which is good in principle but with AES in a secure mode.
Your current header:
8 bytes = MAGIC_SIGNATURE
4 bytes = data length
32 bytes = stream name
44...
FIPS186 DSA RNG has been deprecated since February 2023 for general random number generation and should not be used. Instead the ECDSA (Elliptic Curve Digital Signature Algorithm) should be used...
Just looked at the link and the code provided
Be careful here if using this in a real security environment.
BCryptGenerateSymmetricKey(Algorithm, Key, KeyObject(0), ...)
This means Enc and Dec may use different key object memory alignment and can cause intermittent failures thus undefined...
Using a DLL can simplify the implementation, but my solution deliberately avoids external dependencies. All encryption and hashing routines are implemented in native VBA, with no reliance on external DLLs, COM objects, or the .NET Framework. This makes the system fully self‑contained and...