• yetAnotherUser@discuss.tchncs.de
    link
    fedilink
    arrow-up
    3
    ·
    edit-2
    18 hours ago

    I meant the old .exe would check the signatures before initializing the official Windows way to update. Effectively have this run whenever you start the application:

    main() {
        if (update_available()) {
            exe_path = download_update()
            if (signature(exe_path) == SIGNATURE) {
                install_update(exe_path)
                restart()
            } else {
                put_up_a_warning_or_something()
                delete(exe_path)
            }
        }
    # Rest of the application
    # ...
    }
    

    The only thing I have no idea how to implement would be the install_update(path) function. But surely this is one way to install updates without signatures recognized by Microsoft, right?

    And if for some reason you aren’t allowed to sign the .exe because this breaks something, then place an unsigned .exe in a signed zip folder.

      • yetAnotherUser@discuss.tchncs.de
        link
        fedilink
        arrow-up
        2
        ·
        15 hours ago

        I don’t know enough about Windows app development to answer this. Maybe it replaces the old .exe and the now replaced .exe is just continuing to run from RAM? Maybe there is some restarter.exe program in the same folder that does all the work. In any case, this depends far too much on the Windows update process and how to launch applications.

        I just know when I used Windows applications in the past, they were able to restart themselves after updating somehow.

        • 9tr6gyp3@lemmy.world
          link
          fedilink
          English
          arrow-up
          2
          arrow-down
          1
          ·
          15 hours ago

          After an update on Windows, you must close the application to clear the RAM before launching the updated exe.

          Upon launching the new binary exe, Microsoft will check the code signing certificate and make sure its valid before letting it execute. If its not signed, you will be met with a warning that the binary publisher is unknown, and I believe that Microsoft won’t even let it launch nowadays

          • Pup Biru@aussie.zone
            link
            fedilink
            English
            arrow-up
            2
            ·
            14 hours ago

            that’s all completely irrelevant…, there is already an update mechanism built into NPP: that’s the entire point of the attack… it’s this update mechanism that got hijacked

            • 9tr6gyp3@lemmy.world
              link
              fedilink
              English
              arrow-up
              1
              arrow-down
              1
              ·
              14 hours ago

              If Notepad++ had a valid signing certificate, you wouldn’t be able to run the malicious binary in the update. How is that not relevant?

              • Pup Biru@aussie.zone
                link
                fedilink
                English
                arrow-up
                2
                ·
                edit-2
                14 hours ago

                there are more ways to do signing than paying microsoft boat loads of money… just check a gpg sig file ffs (probably using detached signatures: again, it’s already built into existing tools and it’s a well-known, easily solved problem)

                what’s irrelevant is the argument about how the auto update mechanism would work because it already exists

                • 9tr6gyp3@lemmy.world
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  arrow-down
                  1
                  ·
                  edit-2
                  14 hours ago

                  The gpg sig method works great on other operating systems that aren’t Windows or MacOS, but Windows and MacOS do not use that method to verify the authenticity of developer’s certificates.

                  The update mechanism works fine, but you will not be able to execute the binary on a Windows or MacOS system. The OS will not allow it to run without it being signed.

                  The malicious actor would not be able to drag and drop their malware in without the Notepad++ certificate. The signature wouldn’t match.

                  The certificate is not only doing authentication of the developer, but it is also doubling as an integrity check to make sure the code hasn’t been modified.

                  • Pup Biru@aussie.zone
                    link
                    fedilink
                    English
                    arrow-up
                    2
                    ·
                    14 hours ago

                    Windows and MacOS do not use that method to verify the authenticity of developer’s certificates.

                    completely irrelevant… software authenticity doesn’t have to be provided by your OS… this is an update mechanism that’s built into the software itself. a GPG signature like this would have prevented the hack

                    The update mechanism works fine, but you will not be able to execute the binary on a Windows or MacOS system

                    that’s what we’re saying: this update mechanism already exists, and seems to install unsigned software. that’s the entire point of this hack… the technical how it works is irrelevant