collecting UUIDs in 2021

I recently got some new energy to invest in that UUID collection project. Since I won't be scraping all the internet web pages forever (the below folder is already large enough), I wanted to give a go again to the idea of having a binary that would enumerate various UUID locations on a computer.

 user@debian:~$ ls git/uuid/data/
 a                         dsdt.unknown                                                             mstrust
 advanceduninstaller.py    dsdt.unknown.py                                                          mstrust.py
 alltclsid.txt             edk2                                                                     mstscax
 alltclsid.txt.py          EDK2_2015_GUIDs-2017-04-27.csv                                           mstscax.py
 android_effects           EDK2_2015_GUIDs-2017-04-27.csv.py                                        ms-vds-assign
 android_effects.py        efivar                                                                   ms-vds-assign.py
 apple-uid                 efivar-guids                                                             nmap_nse_msrpc
 apple-uid.py              efivar-guids.py                                                          nmap_nse_msrpc.py
 auditpol                  efivar-protocol-guids                                                    pset2
 auditpol.py               efivar-protocol-guids.py                                                 pset2.py
 baselinemgt               extended-rights-reference                                                psetid
 baselinemgt.py            extended-rights-reference.py                                             psetid.py
 bh-win-04-seki-up2        fdisk                                                                    rdp_h
 bh-win-04-seki-up2.py     fdisk.py                                                                 rdp_h.py
 biosbits                  flowerpower                                                              reactos
 biosbits.py               flowerpower.py                                                           reactos-acuuid
 bits                      folder_type_identifiers                                                  reactos-acuuid.py
 bluetooth-logs            folder_type_identifiers.py                                               reactos.py
 bluetooth-logs.py         gppref                                                                   schema_nt4.txt
 boot_bcd                  gppref.py                                                                shellbags_tln.pl
 boot_bcd.py               gptfdisk                                                                 shellbags_xp.pl
 bt                        gpt-guid                                                                 shellbags_xp.py
 bt.py                     gpt-guid.py                                                              sony_smartband
 btresponses               guid_uefi.txt                                                            sony_smartband.py
 btresponses.py            guid_uefi.txt.py                                                         updateGroupGUIDs
 canonical_names           hsc                                                                      updateGroupGUIDs.py
 canonical_names.py       'Identifying Existing Installs — Enterprise Administration Guide_files'   uuid-lookup
 clspush                  'Identifying Existing Installs — Enterprise Administration Guide.html'    uuid-lookup.tgz
 control_panel             idlparser.py                                                             vbox.py
 control_panel.py          ielist                                                                   vc-redist
 counter.py                ielist.py                                                                vc-redist-packages-and-related-registry-entries
 dce-sec-acl-manager       impacket-dcerpc-v5-epm                                                   vc-redist.py
 dce-sec-acl-manager.py    impacket-dcerpc-v5-epm-knownuuid                                         ves-sony-w64
 dcom                      impacket-dcerpc-v5-epm-knownuuid.py                                      ves-sony-w64.py
 dcomcnfg                  impacket-dcerpc-v5-epm.py                                                webroot
 dcomcnfg.py               ISMMC.html                                                               windows-azure-permissions
 dcom.py                   linux                                                                    windows-azure-permissions.py
 denish-1965               linux-uuid                                                               wine
 denish-1965.py            linux-uuid.py                                                            wine_
 dmde                      mimikatz                                                                 wine.py
 dmde.py                   ms_audit                                                                 winsdk
 dsdt.alaska.ami.intl      ms_audit.py                                                              wps.txt
 dsdt.alaska.ami.intl.py   ms-dcom-assign                                                           wps.txt.py
 dsdt.dsl.1                ms-dcom-assign.py                                                        yaho
 dsdt.dsl.1.old            msgpp                                                                    yaho.py
 dsdt.dsl.1.py             msgpp.py                                                                'Устройство и криптоанализ UUID-генератора в ОС Windows_files'
 dsdt.dsl.uuid             msi-guids-windows.html                                                  'Устройство и криптоанализ UUID-генератора в ОС Windows.html'
 dsdt.dsl.uuid.py          msi-guids-windows.html.py

Asking on the brand new libera.chat channels, including ##workingset which is about Tool chain support and discussion for Posix(tm)-like operating systems | We cover the range of development tools (compilers, assemblers, linkers, makefiles, debuggers, developer applications & utilities, etc.), I got hinted towards one of the most impressive website of the internets these days, https://justine.lol/. I wish I was able to produce such high quality content, but here we are, shipping JSON blobs with Python code.

Justine Tunney notably developed Cosmopolitan, a system that can run the same binary on different operating systems, how cool is that ? Basically, using the recent file polyglot tricks like how PKZIP is a permissive & nice file fromat that defines its header not at offset 0, and some other nifty tricks like a shell script that contains raw bytes which happen to be valid x86 opcodes, you end up with a PKZIP archive which is a shell script and a MZ executable and other things, and most importantly, that will run the same x86 code on different operating systems (answering a question I asked myself a long time ago, without the technical knowledge on the ABI differences).

While reading these pages, I stumbled on the following links that might be of interest to you (not related to our binary subject):

More on that later, but instead of following the trustable advices of fellow computer enthusiasts

<Xylitol> java x)

, I'll rather go down the route of writing C code and trusting a lib that had commits 20 days ago, and does things no one dared to do. (There was that x64/x86 shellcode poc that disappeared at some point, a nice piece of work if you ask me)

brb cooking