Jeffrey Snover and the Making of PowerShell
https://corecursive.com/building-powershell-with-jeffrey-snover/ [corecursive.com]
2024-07-04 23:31
tags:
admin
development
sh
swtools
windows
What if you had to fight against your company’s culture to bring a revolutionary tool to life? Meet Jeffrey Snover, the Microsoft architect behind PowerShell, a command tool that transformed Windows system administration. Initially met with skepticism, Snover’s idea faced resistance from a company that favored graphical interfaces.
source: HN
The history of Alt+number sequences, and why Alt+9731 sometimes gives you a heart and sometimes a snowman
https://devblogs.microsoft.com/oldnewthing/20240702-00/?p=109951 [devblogs.microsoft.com]
2024-07-02 16:56
tags:
text
ux
windows
A customer reported that a recent Windows update broke their ability to type a snowman by using Alt+9731. We explained that the update was not at fault; rather, Alt+9731 was never supposed to produce a snowman at all! But the customer insisted that it used to work.
source: HN
How Not To Release Historic Source Code
https://www.os2museum.com/wp/how-not-to-release-historic-source-code/ [www.os2museum.com]
2024-04-28 02:30
tags:
development
format
retro
text
windows
For practical purposes, old source files are not text files. They are binary files, and must be preserved without modification. It is not OK to take an old source file and convert it to UTF-8. For one thing, UTF-8 didn’t even exist in the times of MASM 5.10 and Microsoft C 5.1, of course old tools can’t deal with it!
source: L
The case of the application that used thread local storage it never allocated
https://devblogs.microsoft.com/oldnewthing/20221128-00/?p=107456 [devblogs.microsoft.com]
2024-03-15 22:42
tags:
bugfix
concurrency
development
malloc
programming
windows
Upon closer inspection, the real problem was not that the application’s TLS was being corrupted. The problem was that the application was using TLS slots it never allocated, so it was inadvertently using somebody else’s TLS slots as its own. And of course, when the true owner updated the TLS value, the application interpreted that as corruption.
An improved chkstk function on Windows
https://nullprogram.com/blog/2024/02/05/ [nullprogram.com]
2024-02-06 23:47
tags:
compiler
cpu
programming
windows
If you’ve spent much time developing with Mingw-w64 you’ve likely seen the symbol ___chkstk_ms, perhaps in an error message. It’s a little piece of runtime provided by GCC via libgcc which ensures enough of the stack is committed for the caller’s stack frame. The “function” uses a custom ABI and is implemented in assembly. So is the subject of this article, a slightly improved implementation soon to be included in w64devkit as libchkstk (-lchkstk).
source: L
The case of the failed exchange of the vtable slot
https://devblogs.microsoft.com/oldnewthing/20220429-00/?p=106543 [devblogs.microsoft.com]
2022-05-04 20:24
tags:
bugfix
cxx
malloc
programming
windows
This shell extension is trying to detour the operating system, and it failed. (Note that Windows does not support apps detouring the operating system. This shell extension has exited into unsupported territory.)
How I cut GTA Online loading times by 70%
https://nee.lv/2021/02/28/How-I-cut-GTA-Online-loading-times-by-70/ [nee.lv]
2021-02-28 22:40
tags:
gaming
investigation
perf
programming
windows
Some debug-stepping later it turns out it’s… JSON!
Of course it is. But a really solid reversing effort. And a nice fix.
source: HN
In-depth dive into the security features of the Intel/Windows platform secure boot process
https://igor-blue.github.io/2021/02/04/secure-boot.html [igor-blue.github.io]
2021-02-15 18:19
tags:
bios
cpu
hardware
security
systems
windows
This blog post is an in-depth dive into the security features of the Intel/Windows platform boot process. In this post I’ll explain the startup process through security focused lenses, next post we’ll dive into several known attacks and how there were handled by Intel and Microsoft. My wish is to explain to technology professionals not deep into platform security why Microsoft’s SecureCore is so important and necessary.
Not exclusive to Windows systems, lots of PC platform details.
source: grugq
BitLocker Lockscreen bypass
https://secret.club/2021/01/15/bitlocker-bypass.html [secret.club]
2021-01-18 00:41
tags:
auth
exploit
security
turtles
windows
BitLocker is a modern data protection feature that is deeply integrated in the Windows kernel. It is used by many corporations as a means of protecting company secrets in case of theft. Microsoft recommends that you have a Trusted Platform Module which can do some of the heavy cryptographic lifting for you.
If we smash shift 5 times in quick succession, a link to open the Settings app appears, and the link actually works. We cannot see the launched Settings app. Giving the launched app focus is slightly tricky; you have to click the link and then click a place where the launched app would be visible with the correct timing. The easiest way to learn to do it is, keep clicking the link roughly 2 times a second. The sticky keys windows will disappear. Keep clicking! You will now see a focus box is drawn in the middle of the screen. That was the Settings app, and you have to stop clicking when it gets focus.
Accessibility UX wins again.
source: HN
How did I find the old Windows binaries and compilers for the processor retrospective series?
https://devblogs.microsoft.com/oldnewthing/20210111-00/?p=104699 [devblogs.microsoft.com]
2021-01-14 06:49
tags:
investigation
windows
I start by downloading the processor documentation from the manufacturer and reading through the entire instruction set. That teaches me about the processor architecture in general. The next step is seeing how Windows uses it.
That part usually starts with digging out the Windows NT installation CD for the relevant architecture and extracting the NOTEPAD.EXE program. I choose Notepad because it’s relatively small, or at least it was relatively small at the time. Furthermore, I have an old copy of the source code, which makes the reverse-compiling easier. The source code I have doesn’t always perfectly match the build of Windows that the CD was created from, but it’s usually close enough.
Introducing the In-the-Wild Series
https://googleprojectzero.blogspot.com/2021/01/introducing-in-wild-series.html [googleprojectzero.blogspot.com]
2021-01-13 07:29
tags:
admin
android
browser
exploit
malware
programming
security
series
windows
windows
Fixing a 3+ year old bug in NVIDIA GeForce Experience
https://details-of-note.blogspot.com/2020/12/nvidia-3-year-old-bug.html [details-of-note.blogspot.com]
2020-12-06 18:47
tags:
bugfix
gaming
investigation
programming
windows
So the issue is such: If you have a joystick plugged in, and the GeForce Experience overlay enabled, your display will not sleep. If you unplug the joystick, the display sleeps. If you disable the overlay, the display sleeps. You can have one or the other - but not both. People hadn’t just tracked the issue down - people tracked it down 3 years ago!
But now for the deep dive disassembly to find and fix the bug. Solid work.
source: HN
Windows Timer Resolution: The Great Rule Change
https://randomascii.wordpress.com/2020/10/04/windows-timer-resolution-the-great-rule-change/ [randomascii.wordpress.com]
2020-10-11 22:01
tags:
concurrency
systems
update
windows
The behavior of the Windows scheduler changed significantly in Windows 10 2004, in a way that will break a few applications, and there appears to have been no announcement, and the documentation has not been updated. This isn’t the first time this has happened, but this change seems bigger than last time.
The short version is that calls to timeBeginPeriod from one process now affect other processes less than they used to, but there is still an effect.
How can CharUpper and CharLower guarantee that the uppercase version of a string is the same length as the lowercase version?
https://devblogs.microsoft.com/oldnewthing/20200804-00/?p=104040 [devblogs.microsoft.com]
2020-08-05 00:49
tags:
c
intro-programming
text
text
windows
Blaming the operating system for allowing people to create files with unusual characters in their names
https://devblogs.microsoft.com/oldnewthing/20200617-00/?p=103870 [devblogs.microsoft.com]
2020-06-18 01:09
tags:
fs
security
sh
windows
What we have here is a case of creating an insecure system and then being surprised that the system is insecure.
This is all too common, but the fix is equally shortsighted. Always too much focus on narrow aspect of the problem.
They claimed that the issue could be fixed by simply adding the ampersand to the list of illegal file name characters. They forgot about the percent sign (for injecting environment variables), the caret (for escaping), and possibly even the apostrophe.
Ray Tracing In Notepad.exe At 30 FPS
http://kylehalladay.com/blog/2020/05/20/Rendering-With-Notepad.html [kylehalladay.com]
2020-05-21 02:04
tags:
c
graphics
investigation
programming
windows
A few months back, there was a post on Reddit (link), which described a game that used an open source clone of Notepad to handle all its input and rendering. While reading about it, I had the thought that it would be really cool to see something similar that worked with stock Windows Notepad. Then I spent way too much of my free time doing exactly that.
I ended up making a Snake game and a small ray tracer that use stock Notepad for all input and rendering tasks, and got to learn about DLL Injection, API Hooking and Memory Scanning along the way. It seemed like writing up the stuff I learned might make for an interesting read, and give me a chance to show off the dumb stuff I built at the same time, so that’s what these next couple blog posts will be about.
source: HN
Avast Antivirus Is Shutting Down Its Data Collection Arm
https://www.vice.com/en_us/article/wxejbb/avast-antivirus-is-shutting-down-jumpshot-data-collection-arm-effective-immediately [www.vice.com]
2020-05-17 03:36
tags:
malware
windows
Avast will no longer collect or sell its users’ internet browsing data
...after getting caught.
Somewhat old, but deserves a spot in the archive of malfeasance.
source: cox
In Praise of AutoHotKey
https://www.hillelwayne.com/post/ahk/ [www.hillelwayne.com]
2020-05-13 00:20
tags:
programming
swtools
ux
windows
People think it’s weird that I do all my development on a Windows machine. It’s definitely a second-class citizen experience in the wider development world, and Windows has a lot of really frustrating issues, but it’s still my favorite operating system. This is for exactly one reason: AutoHotKey.
AHK is an engine for mapping keystrokes to scripts. I wouldn’t call it particularly elegant, and it’s filled with tons of redundancy and quirks. Even its fans admit how nasty the language can be. But it hooks into the whole Windows system and makes it easy to augment my workflow. It’s given me a far greater degree of control over my computer than I ever managed to achieve with another OS.
source: L
What Outranks Thread Priority?
https://randomascii.wordpress.com/2020/04/14/what-outranks-thread-priority/ [randomascii.wordpress.com]
2020-04-15 11:45
tags:
concurrency
investigation
perf
systems
turtles
ux
windows
This investigation started, as so many of mine do, with me minding my own business, not looking for trouble. In this case all I was doing was opening my laptop lid and trying to log on. The first few times that this resulted in a twenty-second delay I ignored the problem, hoping that it would go away. The next few times I thought about investigating, but performance problems that occur before you have even logged on are trickier to solve, and I was feeling lazy. When I noticed that I was avoiding closing my laptop because I dreaded the all-too-frequent delays when opening it I realized it was time to get serious.
A lot of effort for a rather unsatisfactory conclusion, but I won’t spoil the surprise.
Pulling sleight of hand tricks in a security vulnerability report, or maybe it was a prank
https://devblogs.microsoft.com/oldnewthing/20200401-00/?p=103623 [devblogs.microsoft.com]
2020-04-01 23:32
tags:
development
security
windows
So you tell me: Was this somebody carrying out an elaborate prank or somebody who simply didn’t understand what they were doing?
Whether it was intended as such or not, this ended up being an effective denial-of-service attack against me personally, since I ended up spending quite a bit of time watching the videos closely, then reverse-engineering what the finder believed the vulnerability to be, and then studying the videos again to find out where they went wrong.
I was feeling frustrated just reading the story.