The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,860 other subscribers

Posts Tagged ‘1’

Fix a “Automatic Repair couldn’t repair your PC” on an UEFI system: when Windows cannot be located

Posted by jpluimers on 2025/08/22

I got the below error when booting a Dell Optiplex 7060 Micro, a machine not just supporting supporting UEFI but preferring it, on which I had copied a backed-up disk image, then moved the hidden Recovery partition to the end of the physical disk (to make room to extend either the OS or DATA partitions).

Fixing it lead me to a trip that was on the boundary of software archaeology, so this blog post has a truckload of archived links to information that is still relevant, but for which the original links have long vanished due to link rot or (often worse) part of the historic information got lost because of migration to new tooling forgot to cover important additions (especially in comments).

One thing that I had to unlearn was MBR disk basics, for instance the fact that on GPT disks a partition can be active (they can only be on MBR disks, but despite UEFI supporting both MBT and GPT, GPT disks are way more common and required). The same holds for partitions having a boot flag: that too only applies to MBR disks. For the same reason, bootrec is only useful for MBR disks. More details towards the end of this blog post. CSM (Compatibility Support Module) booting is the UEFI way to simulate BIOS boot for operating systems that do no support UEFI.

Back to the error at hand:

Read the rest of this entry »

Posted in Development, History, link rot, Power User, Software Archeology, Software Development, Windows, Windows 10, Windows 11, Windows Server 2003, Windows Server 2008, Windows Vista, Windows XP, WWW - the World Wide Web of information | Tagged: | Leave a Comment »

GitHub: finding the oldest commit on large repositories

Posted by jpluimers on 2025/06/25

The manual process of getting back to the earliest commit of a GitHub repository is easy for small repositories, but for a large one it is very tedious.

TL;DR: there are various ways, but the easiest was the INIT Bookmarklet below.

Note: 2 weeks before the scheduled post made it to the front of the queue, I got a report¹ that it started to fail. Here it still works.

It’s hard to debug because of the functional programming approach taken.

Read the rest of this entry »

Posted in Bookmarklet, C, Conference Topics, Conferences, Development, DVCS - Distributed Version Control, Event, git, GitHub, Go (golang), JavaScript/ECMAScript, Power User, Scripting, Software Development, Source Code Management, Web Browsers | Tagged: , , | Leave a Comment »

0x00 – Introduction to Windows Kernel Exploitation //

Posted by jpluimers on 2025/05/27

On my reading list (plus read/watch the links it mentions): [Wayback/Archive] 0x00 – Introduction to Windows Kernel Exploitation // by [Wayback/Archive] wetw0rk (@wetw0rk_bot) / X ([Wayback/Archive] wetw0rk.github.io).

Hopefully by now, more episodes have been published.

Links from this one, including archived versions split in the same sections as the above article:



Via [WaybackSave/Archive] Alex Plaskett on X: “0x00 – Introduction to Windows Kernel Exploitation by @wetw0rk_bot …”.

--jeroen

Posted in Development, Infosec (Information Security), Red team, Security, Software Development | Tagged: | Leave a Comment »

Victron battery management status codes

Posted by jpluimers on 2025/05/12

From [Wayback/Archive] ESS design and installation manual: 6. Controlling depth of discharge:

Read the rest of this entry »

Posted in LifeHacker, Power User, Solar Power | Tagged: , , , , , , | Leave a Comment »

More early Pascal history (way before Delphi; before Turbo Pascal and Quick Pascal)

Posted by jpluimers on 2025/05/07

The people knowing about the really early Pascal history are a dying breed. So before I pass away (see the posts on my rectum cancer), let me post a few more links here that based on yesterday’s Trip down memory lane: book on p-Code based UCSD Pascal which I ended with:

I learned a few more things from [Wayback/Archive] What do you think about something like Pascal bytecode? (Page 2)

Here we go:

Read the rest of this entry »

Posted in archive.is / archive.today, Conference Topics, Conferences, Development, DVCS - Distributed Version Control, Event, gist, GitHub, Internet, InternetArchive, LISP, Pascal, Power User, Software Development, Source Code Management, Standard Pascal, UCSD Pascal, WayBack machine | Tagged: , , , , , , , , , , , , , , , , , , , , , , , , , | Leave a Comment »

Windows Installer is transactional, but combined with NTFS and installer processes is not fully: do more C:\Config.msi vulnerabilities exist? (plus a truckload of information on Windows SIDs)

Posted by jpluimers on 2025/04/10

Over the last years a few C:\Windows.msi vulnerabilities have been discovered (and fixed), of which some are linked below.

The core is that the Windows Installer tries to be transactional, and NTFS is, but the combination with installer processes isn’t.

That leads into vulnerabilities where you can insert malicious Roll Back Scripts (.rbs files) and Roll Back Files (.rbf files), and I wonder if by now more have been discovered.

So this post is a kind of reminder to myself (:

Oh, and I learned much more about whoami on Windows, as there  whoami /groups shows very detailed SID information. From that, I learned more on the internals of SIDs too!

Read the rest of this entry »

Posted in Blue team, C++, Development, Power User, Red team, Security, Software Development, Visual Studio C++, Windows, Windows Development | Tagged: , , , | Leave a Comment »

Windows: extracting CD-audio for a funeral: CDex, MP3Gain (a replaygain like implementation which modifies MP3 metadata) plus UI wrapper and audacity (for combining tracks)

Posted by jpluimers on 2025/03/27

It has been a very long time since I played around with ripping audio from audio CDs and wrote software for audio handling. I lost access to that source code some 20 years ago, so part of this post is from memory. Hopefully that is still good memory (:

Yes, I am one of those old farts that still has computing equipment with optical drives (:

Much has improved since then, so one needs to write far less code nowadays as a of tooling is now open source or has been open source for quite some time. The hardest part was finding back CDex (which I think is still very useful especially as it handles not-so-well-handled audio CDs quite OK).

Anyway: I didn’t document much of my audio history. The only post I mentioned CDex in was Streaming your mp3 collection through an Icecast server using ezstream, which does not does it justice as back then it had been reliable for such a long time.

Funeral web-site

That web-site was horrible, especially as it was picky on audio formats. In the end, it handled 128-bit fixed bit-rate MP3 files best.

CDEX

Read the rest of this entry »

Posted in Audacity, Audio, Development, Media, Normalisation of audio, Power User, Software Development | Tagged: | Leave a Comment »

Old programming books had cool little “puns” in their references, modern lack them in their indices. On the why, and history of them.

Posted by jpluimers on 2025/01/01

I wrote a two earlier blog posts around puns in programming book indices before:

  1. the 1992 Turbo Pascal 7.0 Language Guide having both entry in the manual about Recursion (“recursive loop, see recursive loop”) which of course is similar to “infinite loop” and entries for “infinite loop See loop, infinite” and “loop, infinite See infinite loop”.
  2. infinite loop in “LaTeX: A Document Preparation System” by Leslie Lamport, printed in 1994.

In the last one, I promised to list more occurrences which I now finally had time for to do.

But let me first elaborate more on the observation that modern computer books (like for instance on C# and Delphi beyond version 1) lack these kinds of index pun.

On the Delphi side, the index entry joke for recursion got removed no later than Delphi 3 (I am still looking for a Delphi 2 version of the Object Pascal Language Guide, see further below) even before the book being fully redone electronically and the index pages generation being automated in

I think I even understand why that is: the process of creating of indices. By the start of this century, more and more indices were automatically being generated and for the last 2 decades or so, all of them are. Back in the days however, indices were mostly done by hand. Nowadays, with everything automated, it is actually pretty tricky in most environments to add such an “infinite loop” index entry like in the Turbo Pascal book, as it would require two things at once:

Read the rest of this entry »

Posted in .NET, C, C#, C++, Conference Topics, Conferences, Delphi, Delphi 1, Delphi 2, Development, EKON, Event, History, LaTeX, LifeHacker, LISP, Mathematics, Pascal, Perl, PL/I (a.k.a. PL/1), Power User, science, Software Development, Turbo Pascal, Typesetting | Tagged: , | 4 Comments »

What’s inside the QR code menu at this cafe? – by peabee

Posted by jpluimers on 2024/09/27

This is why I do not trust ordering via QR-code: you never know how good (or usually bad, often even non-existent) their security is.

[Wayback/Archive] What’s inside the QR code menu at this cafe? – by peabee is a really bad example about Google backed DotPe: they have zero-auth and by now have rated limited API access by IP address.

I went to a cafe near my home. I sat down and scanned the QR code on the table. It took me to a website displaying the cafe’s menu. It asked me for my name and Whatsapp mobile number. I entered the details and placed the order.

In 5 mins my order arrived at the table. There was no OTP verification, and no one came to confirm the order. Is this what the peak ordering experience looks like?

It was a slow workday, and I thought I might as well open this QR code website on my laptop and have a quick look under the hood. Maybe I should’ve just made my own coffee and stayed home because I didn’t realize I was opening a can of worms.

This kind of zero-auth is not infrequent: the Panels API and CDN were wide-open too: [Wayback/Archive] https://storage.googleapis.com/panels-api/data/20240916/media-1a-i-p~s

Read the rest of this entry »

Posted in Authentication, Development, Infosec (Information Security), LifeHacker, Phishing, Power User, Security, Software Development | Tagged: | Leave a Comment »

Delphi XE8 things I learned from the first week of G+ reading

Posted by jpluimers on 2015/04/15

Components and tools that work with XE8:

Appmethod

--jeroen

Posted in Castalia, Delphi, Delphi XE8, Development, Software Development | Tagged: , , , | 3 Comments »