Compare commits
23 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
83dcd53a3d | ||
![]() |
2336024cb8 | ||
![]() |
d5d83acef2 | ||
![]() |
83617ac0ea | ||
![]() |
653698943e | ||
![]() |
4e5cf59fb8 | ||
![]() |
abdcf32656 | ||
![]() |
2ee94cd1f7 | ||
![]() |
e958ac9fda | ||
![]() |
5b6d8d64ce | ||
![]() |
9d67915a21 | ||
![]() |
201ecefc97 | ||
![]() |
27d8100820 | ||
![]() |
9f1fd16d1f | ||
![]() |
6ae52846a3 | ||
![]() |
0200470e6b | ||
![]() |
0a18a3e8a7 | ||
![]() |
75c6a2bdfe | ||
![]() |
94af7a602b | ||
![]() |
6ab47c3cc9 | ||
![]() |
0a88d027f8 | ||
![]() |
8b6083915c | ||
![]() |
0930d67c99 |
22
CONTRIBUTING.de-DE.md
Normal file
22
CONTRIBUTING.de-DE.md
Normal file
@@ -0,0 +1,22 @@
|
||||
# Richtlinien für die Fehlermeldung
|
||||
|
||||
[English](CONTRIBUTING.md) | [русский](CONTRIBUTING.ru-RU.md) | [Français](CONTRIBUTING.fr-FR.md) | **Deutsch** | [Magyar](CONTRIBUTING.hu-HU.md) | [Portuguese (Brazil)](CONTRIBUTING.pt-BR.md)
|
||||
|
||||
## Fehler melden [](https://isitmaintained.com/project/zeffy/wufuc)
|
||||
|
||||
#### Bevor du eine Fehlermeldung aufsetzt, beachte bitte die folgenden Punkte:
|
||||
|
||||
- Benutzt du die [neueste stabile Version](../../releases/latest)?
|
||||
- Hast du versucht den Rechner neu zu starten?
|
||||
|
||||
#### Nachdem du das überprüft hast, erstelle ein Fehlerbericht mit folgenden Informationen:
|
||||
|
||||
- Navigiere zum Ordner wo du wufuc installiert hast, und hänge der Fehlermeldung alle `*.log` Files an.
|
||||
- Welche build-version benutzt du? Ein stabiles Release oder instabile AppVeyor builds?
|
||||
- Was ist die File Version und/oder der SHA-1 hash von `C:\Windows\System32\wuaueng.dll`?
|
||||
- Alles was du noch als relevant betrachtest.
|
||||
|
||||
## Richtlinie zur Schließung der Fehlermeldungen
|
||||
|
||||
- Fehlermeldungen die diese Informationen nicht haben (falls zutreffend) werden sofort geschlossen und der Ersteller wir auf diese Richtlinie verwiesen.
|
||||
- Fehlermeldungen nach einer Woche ohne Reaktion vom Ersteller werden nach meinem Ermessen geschlossen.
|
@@ -1,6 +1,6 @@
|
||||
# Directives de contribution
|
||||
|
||||
[English](CONTRIBUTING.md) | [русский](CONTRIBUTING.ru-RU.md) | **Français**
|
||||
[English](CONTRIBUTING.md) | [русский](CONTRIBUTING.ru-RU.md) | **Français** | [Deutsch](CONTRIBUTING.de-DE.md) | [Magyar](CONTRIBUTING.hu-HU.md) | [Portuguese (Brazil)](CONTRIBUTING.pt-BR.md)
|
||||
|
||||
## Reporter un problème [](https://isitmaintained.com/project/zeffy/wufuc)
|
||||
|
||||
|
23
CONTRIBUTING.hu-HU.md
Normal file
23
CONTRIBUTING.hu-HU.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# Hozzájárulási irányelvek
|
||||
|
||||
[English](CONTRIBUTING.md) | [русский](CONTRIBUTING.ru-RU.md) | [Français](CONTRIBUTING.fr-FR.md) | [Deutsch](CONTRIBUTING.de-DE.md) | **Magyar** | [Portuguese (Brazil)](CONTRIBUTING.pt-BR.md)
|
||||
|
||||
## Hiba jelentése [](https://isitmaintained.com/project/zeffy/wufuc)
|
||||
|
||||
#### Mielőtt jeleznél egy hibát, kérem ellenőrizd hogy:
|
||||
|
||||
- A [legújabb stabil verzió](../../releases/latest)t használod?
|
||||
- Megpróbáltad újraindítani a számítógépet?
|
||||
|
||||
#### Miután ezeket ellenőrizted, hozz létre egy hibajelentést ezekkel az információkkal:
|
||||
|
||||
- Csatold a `*.log` fájlokat a könyvtárból, ahova a wufuc-ot telepítetted.
|
||||
- Melyik build-et használtad? Stabil release vagy instabil AppVeyor build?
|
||||
- Mi a `C:\Windows\System32\wuaueng.dll` fájl verziója és/vagy SHA-1 hash kódja?
|
||||
- Bármi más információ amit hasznosnak látsz a hiba elhárításához
|
||||
- Kérlek angolul jelentsed be a hibát.
|
||||
|
||||
## Hibazárási eljárás
|
||||
|
||||
- A hibajelentések amik nem tartalmazzák a fent kért adatokat be lesznek zárva és a hibajelentő figyelmét felhívjuk erre a dokumentumra.
|
||||
- A hibajelentések amikben egy hét után nem reagál a hibajelentő, be lesznek zárva ha ezt így látom megfelelőnek.
|
@@ -1,6 +1,6 @@
|
||||
# Contributing guidelines
|
||||
|
||||
**English** | [русский](CONTRIBUTING.ru-RU.md) | [Français](CONTRIBUTING.fr-FR.md)
|
||||
**English** | [русский](CONTRIBUTING.ru-RU.md) | [Français](CONTRIBUTING.fr-FR.md) | [Deutsch](CONTRIBUTING.de-DE.md) | [Magyar](CONTRIBUTING.de-HU.md) | [Portuguese (Brazil)](CONTRIBUTING.pt-BR.md)
|
||||
|
||||
## Reporting an issue [](https://isitmaintained.com/project/zeffy/wufuc)
|
||||
|
||||
|
22
CONTRIBUTING.pt-BR.md
Normal file
22
CONTRIBUTING.pt-BR.md
Normal file
@@ -0,0 +1,22 @@
|
||||
# Contributing guidelines
|
||||
|
||||
[English](CONTRIBUTING.md) | [русский](CONTRIBUTING.ru-RU.md) | [Français](CONTRIBUTING.fr-FR.md) | [Deutsch](CONTRIBUTING.de-DE.md) | [Magyar](CONTRIBUTING.de-HU.md) | **Portuguese (Brazil)**
|
||||
|
||||
## Reportando problemas [](https://isitmaintained.com/project/zeffy/wufuc)
|
||||
|
||||
#### Antes de criar um tópico de dúvidas, por favor verifique se:
|
||||
|
||||
- você está utilizando a última versão [latest stable version](../../releases/latest)?
|
||||
- você já tentou reiniciar o seu PC?
|
||||
|
||||
#### Depois de confirmar os dois passos acima, por favor crie um tópico de dúvidas incluindo as seguintes informações:
|
||||
|
||||
- Acesse a pasta onde você instalou o wufuc, e anexe todos os arquivos `*.log` no seu tópico.
|
||||
- Que versão você está utilizando? A versão estável ou instável?
|
||||
- Qual a versão do arquivo e/ou SHA-1 hash do `C:\Windows\System32\wuaueng.dll`?
|
||||
- Qualquer outra informação relevante que você acha que deve incluir.
|
||||
|
||||
## Política de encerramento
|
||||
|
||||
- Os tópicos de dúvidas que não tem as informações requisitadas acima (quando aplicável) será fechado imediatamente e o autor será direcionado para as normas de contribuição.
|
||||
- Os tópicos que ficarem 1 semana sem responsta do autor original, será fechado a meu critério.
|
@@ -1,6 +1,6 @@
|
||||
# Инструкция для тех, кто желает помочь, внести вклад
|
||||
|
||||
[English](CONTRIBUTING.md) | **русский** | [Français](CONTRIBUTING.fr-FR.md)
|
||||
[English](CONTRIBUTING.md) | **русский** | [Français](CONTRIBUTING.fr-FR.md) | [Deutsch](CONTRIBUTING.de-DE.md) | [Magyar](CONTRIBUTING.de-HU.md) | [Portuguese (Brazil)](CONTRIBUTING.pt-BR.md)
|
||||
|
||||
## Сообщайте об ошибках [](https://isitmaintained.com/project/zeffy/wufuc)
|
||||
|
||||
|
56
README.de-DE.md
Normal file
56
README.de-DE.md
Normal file
@@ -0,0 +1,56 @@
|
||||
# wufuc [](https://ci.appveyor.com/project/zeffy/wufuc) [](https://gratipay.com/wufuc/)
|
||||
|
||||
[English](README.md) | [русский](README.ru-RU.md) | [Français](README.fr-FR.md) | **Deutsch** | [Magyar](README.hu-HU.md) | [Portuguese (Brazil)](README.pt-BR.md)
|
||||
|
||||
[](https://pledgie.com/campaigns/34055)
|
||||
|
||||
Das Tool schaltet die "Unsupported Hardware" Nachricht in Windows Update ab, und erlaub dir auf Windows 7 und 8.1 Systemen mit Intel Kaby Lake, AMD Ryzen, oder anderen nicht unterstützten Processoren weiter updates zu installieren.
|
||||
|
||||
## Downloads [](../../releases)
|
||||
|
||||
### Die neueste stabile version kannst du [hier](../../releases/latest) herunterladen!
|
||||
|
||||
Wenn du dich traust, kannst du von [hier](https://ci.appveyor.com/project/zeffy/wufuc) die letzten instabilen builds herunterladen. **Auf eingene Verantwortung!**
|
||||
|
||||
## Sponsoren
|
||||
|
||||
### [Advanced Installer](http://www.advancedinstaller.com/)
|
||||
Die Installer-pakete wurden mit Advanced Installer unter einer open source licenz erstellt. Die intuitive und freundliche benutzeroberfläche von Advanced Installer hat mir erlaubt einenvollwertigen installer mit minimalem Aufwand zu erstellen. [Schaue es dir an!](http://www.advancedinstaller.com/)
|
||||
|
||||
## Fehler melden [](https://isitmaintained.com/project/zeffy/wufuc)
|
||||
|
||||
Siehe [CONTRIBUTING.de-DE.md](CONTRIBUTING.de-DE.md).
|
||||
|
||||
## Vorwort
|
||||
|
||||
Der changelog für die Windows updates KB4012218 und KB4012219 enthielt das folgende:
|
||||
|
||||
> Enabled detection of processor generation and hardware support when PC tries to scan or download updates through Windows Update.
|
||||
|
||||
Damit wurde ein [verfahrenswechel](https://blogs.windows.com/windowsexperience/2016/01/15/windows-10-embracing-silicon-innovation/) eingeleitet, den sie vor einiger Zeit verkündeten. Microsoft hatte verkündet, dass sie Windows 7 oder 8.1 auf next-gen Intel, AMD und Qualcomm processoren nicht mehr unterstützen.
|
||||
|
||||
Wer also nicht auf Window 10 "upgraded" ist gea*****, obwohl der extended support für Windows 7 und 8.1 bis zum 4. Januar 2020, respektive zum 10. Januar 2023 läuft.
|
||||
|
||||
Dies betrifft sogar leute mit älteren Intel und AMD processoren!
|
||||
|
||||
## Böser Microsoft!
|
||||
|
||||
Wenn du interessiert bist, kannst du meinen Artikel lesen wie ich den CPU check gefunden habe -> [hier klicken](../../tree/old-kb4012218-19).
|
||||
|
||||
## Wie funktioniert es?
|
||||
|
||||
Im library file `wuaueng.dll` gibt es zwei funktionen: [`IsDeviceServiceable(void)`](https://gist.github.com/zeffy/e5ec266952932bc905eb0cbc6ed72185) und [`IsCPUSupported(void)`](https://gist.github.com/zeffy/1a8f8984d2bec97ae24af63a76278694). `IsDeviceServiceable(void)` ist ein wrapper um `IsCPUSupported(void)` welche die empfangenen ergebnisse zwischenspeichert und bei neuen aufrufen wiederverwendet.
|
||||
|
||||
Mein patch nutzt dieses Verhalten aus und setzt die "first run" variable auf `FALSE` und den cached result auf `TRUE`.
|
||||
|
||||
- Beim booten wird vom `NT AUTHORITY\SYSTEM` Benutzer ein wufuc scheduled task gestartet.
|
||||
- `wufuc` erkundet in welchem service host group Prozess der Windows Update service läuft (typischerweise `netsvcs`), und injiziert sich in den Prozess.
|
||||
- Jetzt wird ein hook in `LoadLibraryEx` gesetzt, welche `wuaueng.dll` automatisch patcht wenn es geladen wird.
|
||||
- Vorher geladene `wuaueng.dll` instanzen werden auch gepatcht.
|
||||
|
||||
### Diverse verbesserungen seit meiner batchfile Methode:
|
||||
|
||||
- **Es werden keine Systemfiles verändert!**
|
||||
- Heuristisches patchen, wodurch der patch auch nach updates funktionieren sollte.
|
||||
- Es wird C benutzt!
|
||||
- Keine externen Abhängigkeiten.
|
@@ -1,6 +1,6 @@
|
||||
# wufuc [](https://ci.appveyor.com/project/zeffy/wufuc) [](https://gratipay.com/wufuc/)
|
||||
|
||||
[English](README.md) | [русский](README.ru-RU.md) | **Français**
|
||||
[English](README.md) | [русский](README.ru-RU.md) | **Français** | [Deutsch](README.de-DE.md) | [Magyar](README.hu-HU.md) | [Portuguese (Brazil)](README.pt-BR.md)
|
||||
|
||||
[](https://pledgie.com/campaigns/34055)
|
||||
|
||||
@@ -32,7 +32,7 @@ Ces updates ont marqué l'implémentation d'un [changement de politique](https:/
|
||||
|
||||
C'est un majestueux doigt d'honneur à tous ceux qui ont décidé de ne pas "upgrader" vers la bouse connue sous le nom de Windows 10, en particulier en considérant que le support étendu de Windows 7 et Windows 8.1 ne se terminera pas avant le 4 janvier 2020 et 10 janvier 2023 respectivement.
|
||||
|
||||
Cela affecte également des gens avec des processeurs Intel et AMD plus vieux ! J'ai reçu des rapports d'utilisateurs pour [Intel Atom Z530](../../issues/7), [Intel Core i5-M 560](../../issues/23), [Intel Core i5-4300M](../../issues/24), [Intel Atom D525](../../issues/34), [Intel Pentium B940](../../issues/63), et [AMD FX-8350](../../issues/32), tous empêchés de recevoir des updates.
|
||||
Cela affecte également des gens avec des processeurs Intel et AMD plus vieux ! J'ai reçu des rapports d'utilisateurs pour [Intel Atom Z530](../../issues/7), [Intel Core i5-M 560](../../issues/23), [Intel Core i5-4300M](../../issues/24), [Intel Atom D525](../../issues/34), [Intel Pentium B940](../../issues/63), [AMD FX-8350](../../issues/32), et [AMD Turion 64 Mobile Technology ML-34](../../issues/80), tous empêchés de recevoir des updates.
|
||||
|
||||
## Méchant Microsoft !
|
||||
|
||||
|
54
README.hu-HU.md
Normal file
54
README.hu-HU.md
Normal file
@@ -0,0 +1,54 @@
|
||||
# wufuc [](https://ci.appveyor.com/project/zeffy/wufuc) [](https://gratipay.com/wufuc/)
|
||||
|
||||
[English](README.md) | [русский](README.ru-RU.md) | [Français](README.fr-FR.md) | [Deutsch](README.de-DE.md) | **Magyar** | [Portuguese (Brazil)](README.pt-BR.md)
|
||||
|
||||
[](https://pledgie.com/campaigns/34055)
|
||||
|
||||
Kikapcsolja az "Windows Update Unsupported Hardware/Nem támogatott hardver" jelentését, és lehetővé teszi a frissítések telepítését Intel Kaby Lake, AMD Ryzen, vagy más nem támogatott processzoros Windows 7 és 8.1 rendszereken.
|
||||
|
||||
## Letöltések [](../../releases)
|
||||
|
||||
### A legfrissebb stabil verziót [itt](../../releases/latest) találod!
|
||||
|
||||
Ha bátornak érzed magad, itt próbálhatod ki a legfrissebb build-eket [here](https://ci.appveyor.com/project/zeffy/wufuc). **Saját felelősségre!**
|
||||
|
||||
## Szponzorok
|
||||
|
||||
### [Advanced Installer](http://www.advancedinstaller.com/)
|
||||
A telepítő csomagok Advanced Installerel lettek elkészítve, open source licenc alatt. Az Advanced Installer program intuitív és barátságos UI-jával gyorsan és kényelmesen el tudtam készíteni a telepítőt. [Nézd meg!](http://www.advancedinstaller.com/)
|
||||
|
||||
## Hibajelentés [](https://isitmaintained.com/project/zeffy/wufuc)
|
||||
|
||||
Lásd [CONTRIBUTING.hu-HU.md](CONTRIBUTING.hu-HU.md).
|
||||
|
||||
## Előszó
|
||||
|
||||
Az KB4012218 és KB4012219 kódszámú Windows frissítések leírása ezeket az információkat tartalmazta:
|
||||
|
||||
> Enabled detection of processor generation and hardware support when PC tries to scan or download updates through Windows Update.
|
||||
|
||||
Ez a frissítés lényegében egy [filozófiavĺtást](https://blogs.windows.com/windowsexperience/2016/01/15/windows-10-embracing-silicon-innovation/) jelentett, hogy a Microsoft nem fogja támogatni a Windows 7 vagy 8.1 következő generációs Intel, AMD és Qualcomm processzoron.
|
||||
|
||||
A szerző véleményéről evvel kapcsolatban legjobban az angol verzióból informálódhattok.
|
||||
|
||||
## Rossz Microsoft!
|
||||
|
||||
Ha érdekelnek a részletek, [itt](../../tree/old-kb4012218-19) olvashatsz tovább.
|
||||
|
||||
## Hogy működik?
|
||||
|
||||
A `wuaueng.dll` fájl két függvényt tartalmaz: [`IsDeviceServiceable(void)`](https://gist.github.com/zeffy/e5ec266952932bc905eb0cbc6ed72185) és [`IsCPUSupported(void)`](https://gist.github.com/zeffy/1a8f8984d2bec97ae24af63a76278694). `IsDeviceServiceable(void)` egy egyszerű wrapper a `IsCPUSupported(void)` függvény körül, ami eltárolja amit olvas és új felhíváskor újra felhasználja ezeket.
|
||||
|
||||
A patch ezt a tárolást használja ki, és átállítja a "first run" értéket `FALSE`-ra és a cached result-t `TRUE`-ra.
|
||||
|
||||
- A rendszer bootolásakor a wufuc munkacsomag elindul az `NT AUTHORITY\SYSTEM` felhasználó alatt.
|
||||
- `wufuc` megkeresi melyik service process-ben fut a Windows Update service (tipikusan `netsvcs`), és belekapcsolódik.
|
||||
- Miután ez megtörtént, a `LoadLibraryEx` segítségével automatikusan módosítja a `wuaueng.dll`-t ha az be lesz töltve.
|
||||
- Egy előzőlegesen betöltött `wuaueng.dll` is meg lesz patchelve.
|
||||
|
||||
### Fejlesztések a régi batchfájl módszerhez képest:
|
||||
|
||||
- **Rendszerfájlok nem lesznek módosítva**
|
||||
- Heurisztikusan dolgozó patchelés, ami segítségével a program frissítések után is működik.
|
||||
- C nyelv használata skriptelés helyett!
|
||||
- Nincs külső függőség.
|
@@ -1,6 +1,6 @@
|
||||
# wufuc [](https://ci.appveyor.com/project/zeffy/wufuc) [](https://gratipay.com/wufuc/)
|
||||
|
||||
**English** | [русский](README.ru-RU.md) | [Français](README.fr-FR.md)
|
||||
**English** | [русский](README.ru-RU.md) | [Français](README.fr-FR.md) | [Deutsch](README.de-DE.md) | [Magyar](README.hu-HU.md) | [Portuguese (Brazil)](README.pt-BR.md)
|
||||
|
||||
[](https://pledgie.com/campaigns/34055)
|
||||
|
||||
@@ -31,7 +31,7 @@ These updates marked the implementation of a [policy change](https://blogs.windo
|
||||
|
||||
It is essentially a big middle finger to anyone who decides to not "upgrade" to the steaming pile of :shit: known as Windows 10, especially considering the extended support periods for Windows 7 and 8.1 won't be ending until January 4, 2020 and January 10, 2023 respectively.
|
||||
|
||||
This has even affected people with older Intel and AMD processors! I've received user reports of the [Intel Atom Z530](../../issues/7), [Intel Core i5-M 560](../../issues/23), [Intel Core i5-4300M](../../issues/24), [Intel Atom D525](../../issues/34), [Intel Pentium B940](../../issues/63), and [AMD FX-8350](../../issues/32) all being blocked from receiving updates.
|
||||
This has even affected people with older Intel and AMD processors! I've received user reports of the [Intel Atom Z530](../../issues/7), [Intel Core i5-M 560](../../issues/23), [Intel Core i5-4300M](../../issues/24), [Intel Atom D525](../../issues/34), [Intel Pentium B940](../../issues/63), [AMD FX-8350](../../issues/32), and [AMD Turion 64 Mobile Technology ML-34](../../issues/80) all being blocked from receiving updates.
|
||||
|
||||
## Bad Microsoft!
|
||||
|
||||
|
56
README.pt-BR.md
Normal file
56
README.pt-BR.md
Normal file
@@ -0,0 +1,56 @@
|
||||
# wufuc [](https://ci.appveyor.com/project/zeffy/wufuc) [](https://gratipay.com/wufuc/)
|
||||
|
||||
[English](README.md) | [русский](README.ru-RU.md) | [Français](README.fr-FR.md) | [Deutsch](README.de-DE.md) | [Magyar](README.hu-HU.md) | **Portuguese (Brazil)**
|
||||
|
||||
[](https://pledgie.com/campaigns/34055)
|
||||
|
||||
Desabilita a mensagem “Seu PC utiliza um processador que não é suportado por esta versão do Windows e você não receberá atualizações” do Windows Update, e permite que você continue instalando atualizações nos sistemas Windows 7 and 8.1 com os novos processadores Intel Kaby Lake, AMD Ryzen, ou outros processadores.
|
||||
|
||||
## Downloads [](../../releases)
|
||||
|
||||
### Você pode baixar a última versão estável [aqui](../../releases/latest)!
|
||||
|
||||
Se você é corajoso, você pode testar a último versão instável [aqui](https://ci.appveyor.com/project/zeffy/wufuc). **Utilize-o por risco próprio**
|
||||
|
||||
## Patrocinadores
|
||||
|
||||
### [Advanced Installer](http://www.advancedinstaller.com/)
|
||||
O instalador dos pacotes foram criados com Advanced Installer com a licença de cógido aberto. O Advanced Installer tem uma interface intuitiva e amigável que me permitiu a criar rapidamente um instalador completo com facilidade. [Dê uma olhada nisso](http://www.advancedinstaller.com/)
|
||||
|
||||
## Reportando problemas [](https://isitmaintained.com/project/zeffy/wufuc)
|
||||
|
||||
Leia [CONTRIBUTING.pt-BR.md](CONTRIBUTING.pt-BR.md).
|
||||
|
||||
## Prefácio
|
||||
|
||||
O changelog para atualizações do Windows KB4012218 e KB4012219 incluindo o:
|
||||
|
||||
> Habilita detecção de geração de processador e suporte de hardware quando PC procura ou baixa atualizações pelo Windows Update.
|
||||
|
||||
Essas atualizações marcaram a implementação da [policy change](https://blogs.windows.com/windowsexperience/2016/01/15/windows-10-embracing-silicon-innovation/) que foi anunciado há um tempo atrás, onde a Microsoft declara que não irá fornecer suporte do Windows 7 ou 8.1 on na próxima geração de processadores Intel, AMD and Qualcomm.
|
||||
|
||||
Esse anúncio foi basicamente um foda-se para aqueles que decidiram não fazer upgrade para a grande "merda" conhecida por windows 10, especialmente considerando que o período de suporte para o Windows 7 e 8.1 só irá terminar em 4 de Janeiro de 2020 e 10 de Janeiro de 2023, respectivamente.
|
||||
|
||||
Essa atualização afetou até as pessoas que possuem processadores antigos da Intel e AMD! Alguns usuários já me relataram que tiveram o mesmo problema [Intel Atom Z530](../../issues/7), [Intel Core i5-M 560](../../issues/23), [Intel Core i5-4300M](../../issues/24), [Intel Atom D525](../../issues/34), [Intel Pentium B940](../../issues/63), [AMD FX-8350](../../issues/32), and [AMD Turion 64 Mobile Technology ML-34](../../issues/80) sendo todos bloqueados no Windows Update.
|
||||
|
||||
## Microsoft sacana!
|
||||
|
||||
Se você estiver interessado, você pode ler você pode ler as minhas primeiras anotações de como descrobri o CPU check [aqui](../../tree/old-kb4012218-19).
|
||||
|
||||
## Como funciona
|
||||
|
||||
Basicamente, dentro do arquivo chamado `wuaueng.dll` existem 2 funções: [`IsDeviceServiceable(void)`](https://gist.github.com/zeffy/e5ec266952932bc905eb0cbc6ed72185) and [`IsCPUSupported(void)`](https://gist.github.com/zeffy/1a8f8984d2bec97ae24af63a76278694). `IsDeviceServiceable(void)` é basicamente um desvio `IsCPUSupported(void)` que captura o resultado que ele recebe e a recicla nas próximas chamadas.
|
||||
|
||||
Meu patch altera o resultado do valor da "first run" de `FALSE` e transforma o resultado em `TRUE`.
|
||||
|
||||
- No boot do sistema a tarefa agendada do wufuc roda como usuário `NT AUTHORITY\SYSTEM`.
|
||||
- `wufuc` determina que serviço host group processa o Windows Update roda (normalmente `netsvcs`), e se introduz nele.
|
||||
- Uma vez introduzido, ele aplica o hook para `LoadLibraryEx` que automaticamente roda `wuaueng.dll` quando está carregado.
|
||||
- Qualquer carregamento prévio do `wuaueng.dll` também é rodado.
|
||||
|
||||
### Muitas melhorias no meu método batchfile:
|
||||
|
||||
- **Nenhum arquivo do sistema é alterado!**
|
||||
- Heuristic-based patching, isso significa que ele funcionará mesmo com novas atualizações do Windows.
|
||||
- C é a melhor linguagem!
|
||||
- Não depende de nada externo.
|
@@ -1,6 +1,6 @@
|
||||
# wufuc [](https://ci.appveyor.com/project/zeffy/wufuc) [](https://gratipay.com/wufuc/)
|
||||
|
||||
[English](README.md) | **русский** | [Français](README.fr-FR.md)
|
||||
[English](README.md) | **русский** | [Français](README.fr-FR.md) | [Deutsch](README.de-DE.md) | [Magyar](README.hu-HU.md) | [Portuguese (Brazil)](README.pt-BR.md)
|
||||
|
||||
[](https://pledgie.com/campaigns/34055)
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
По существу, это то же, что показать средний палец всем, кто решит не "обновляться" до вонючей кучи :shit: , известной как Windows 10, особенно учитывая то, что расширенный период поддержки для Windows 7 не закончится до 4 января 2020 и для Windows 8.1 - до 10 января 2023.
|
||||
|
||||
Это затронуло даже людей с более старыми процессорами Intel и AMD! Я видел сообщения от пользователей [Intel Atom Z530](../../issues/7), [Intel Core i5-M 560](../../issues/23), [Intel Core i5-4300M](../../issues/24), [Intel Atom D525](../../issues/34), [Intel Pentium B940](../../issues/63), и [AMD FX-8350](../../issues/32) - на всех них было заблокировано получение обновлений.
|
||||
Это затронуло даже людей с более старыми процессорами Intel и AMD! Я видел сообщения от пользователей [Intel Atom Z530](../../issues/7), [Intel Core i5-M 560](../../issues/23), [Intel Core i5-4300M](../../issues/24), [Intel Atom D525](../../issues/34), [Intel Pentium B940](../../issues/63), [AMD FX-8350](../../issues/32), и [AMD Turion 64 Mobile Technology ML-34](../../issues/80) - на всех них было заблокировано получение обновлений.
|
||||
|
||||
## Плохая Microsoft!
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
version: 0.7.0.{build}
|
||||
version: 0.7.1.{build}
|
||||
skip_commits:
|
||||
files:
|
||||
- README.md
|
||||
|
@@ -17,10 +17,10 @@
|
||||
<ROW Property="ARPURLINFOABOUT" Value="https://github.com/zeffy/wufuc"/>
|
||||
<ROW Property="ARPURLUPDATEINFO" Value="https://github.com/zeffy/wufuc/releases"/>
|
||||
<ROW Property="Manufacturer" Value="zeffy"/>
|
||||
<ROW Property="ProductCode" Value="1028:{B7F26089-5C8E-4DE8-A356-067770635396} 1031:{D8CE187D-F692-494F-8456-9A3F9D547477} 1033:{8739556C-AC5C-4384-889C-BCB102BA186F} 1035:{BE9A37E3-83BD-4C32-A4DE-9B292FD55596} 1036:{7A3E194D-D7EA-404F-AAE8-B2818AA73492} 1040:{2924EB49-DF9A-4B7D-917A-5547026E91F2} 1041:{D3B280FA-562F-4AD0-A974-E11BD2E4D623} 1042:{BBC862ED-A70C-43FE-B35B-3FD2CEC4604C} 1043:{441DF8E7-B329-4CE9-ADC5-DE4613368B7F} 1045:{93C6F7E2-D92C-42B0-A162-3A972FDCEBF6} 1049:{E20AD331-486C-439D-B061-2DA0D0B8C62F} 2052:{EDFDA57E-ADF7-402D-AAE0-AA167FD4322C} 3082:{C874AEC9-CEFE-4534-A160-A9B132011C56} " Type="16"/>
|
||||
<ROW Property="ProductCode" Value="1028:{B7F26089-5C8E-4DE8-A356-067770635396} 1030:{6028AE21-CE9D-4280-B66C-C3D8A9AB8359} 1031:{D8CE187D-F692-494F-8456-9A3F9D547477} 1033:{8739556C-AC5C-4384-889C-BCB102BA186F} 1035:{BE9A37E3-83BD-4C32-A4DE-9B292FD55596} 1036:{7A3E194D-D7EA-404F-AAE8-B2818AA73492} 1038:{9ABBEAB4-182C-4B3A-8BF7-82C0D39F530B} 1040:{2924EB49-DF9A-4B7D-917A-5547026E91F2} 1041:{D3B280FA-562F-4AD0-A974-E11BD2E4D623} 1042:{BBC862ED-A70C-43FE-B35B-3FD2CEC4604C} 1043:{441DF8E7-B329-4CE9-ADC5-DE4613368B7F} 1045:{93C6F7E2-D92C-42B0-A162-3A972FDCEBF6} 1046:{B8F6F881-5F3F-44EC-8C7A-F23309068F74} 1049:{E20AD331-486C-439D-B061-2DA0D0B8C62F} 1060:{7E4E1C6A-EC43-457E-8517-70219F42F73B} 2052:{EDFDA57E-ADF7-402D-AAE0-AA167FD4322C} 3082:{C874AEC9-CEFE-4534-A160-A9B132011C56} " Type="16"/>
|
||||
<ROW Property="ProductLanguage" Value="1033"/>
|
||||
<ROW Property="ProductName" Value="wufuc"/>
|
||||
<ROW Property="ProductVersion" Value="0.7.0.60" Type="32" TargetFile="wufuc.dll"/>
|
||||
<ROW Property="ProductVersion" Value="0.7.0.62" Type="32" TargetFile="wufuc.dll"/>
|
||||
<ROW Property="SecureCustomProperties" Value="OLDPRODUCTS;AI_NEWERPRODUCTFOUND"/>
|
||||
<ROW Property="SysnativeFolder" Value=" "/>
|
||||
<ROW Property="UpgradeCode" Value="{4C52972C-251E-4D1B-AD09-EAA765719DCC}"/>
|
||||
@@ -71,8 +71,8 @@
|
||||
<ROW Name="AI_APPPATH_PERBUILD_wufuc.dll" Path="[|AI_PROPPATH_PERBUILD_wufuc.dll]" Type="2" Content="0"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.BuildComponent">
|
||||
<ROW BuildKey="DefaultBuild" BuildName="x64" BuildOrder="1" BuildType="1" PackageFileName="wufuc_setup_x64" Languages="en;zh;zh_TW;fr;ja;ko;pl;ru;es;it;de;fi;nl" LangOpt="1" InstallationType="4" UseLargeSchema="true" MsiPackageType="x64"/>
|
||||
<ROW BuildKey="MsiBuild" BuildName="x86" BuildOrder="2" BuildType="1" PackageFileName="wufuc_setup_x86" Languages="en;zh;zh_TW;fr;ja;ko;pl;ru;it;nl;fi;es;de" LangOpt="1" InstallationType="4" UseLargeSchema="true"/>
|
||||
<ROW BuildKey="DefaultBuild" BuildName="x64" BuildOrder="1" BuildType="1" PackageFileName="wufuc_setup_x64" Languages="en;zh;zh_TW;fr;ja;ko;pl;ru;es;it;de;fi;nl;hu;da;sl;pt_BR" LangOpt="1" InstallationType="4" UseLargeSchema="true" MsiPackageType="x64"/>
|
||||
<ROW BuildKey="MsiBuild" BuildName="x86" BuildOrder="2" BuildType="1" PackageFileName="wufuc_setup_x86" Languages="en;zh;zh_TW;fr;ja;ko;pl;ru;es;it;de;fi;nl;hu;da;sl;pt_BR" LangOpt="1" InstallationType="4" UseLargeSchema="true"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.DictionaryComponent">
|
||||
<ROW Path="<AI_DICTS>ui.ail"/>
|
||||
@@ -89,6 +89,10 @@
|
||||
<ROW Path="<AI_DICTS>ui_fi.ail"/>
|
||||
<ROW Path="<AI_DICTS>ui_es.ail"/>
|
||||
<ROW Path="<AI_DICTS>ui_de.ail"/>
|
||||
<ROW Path="<AI_DICTS>ui_hu.ail"/>
|
||||
<ROW Path="<AI_DICTS>ui_da.ail"/>
|
||||
<ROW Path="<AI_DICTS>ui_sl.ail"/>
|
||||
<ROW Path="<AI_DICTS>ui_pt_BR.ail"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.FragmentComponent">
|
||||
<ROW Fragment="CommonUI.aip" Path="<AI_FRAGS>CommonUI.aip"/>
|
||||
|
@@ -69,7 +69,7 @@ echo in which case, you will need to make an exception and restore it.
|
||||
goto :die
|
||||
|
||||
:get_ver
|
||||
for /f "tokens=*" %%i in ('wmic /output:stdout datafile where "name='%wufuc_dll:\=\\%'" get Version /value ^| find "="') do set "%%i"
|
||||
call :get_filever "%wufuc_dll%"
|
||||
title wufuc installer - v%Version%
|
||||
|
||||
set "wufuc_xml=%~dp0wufuc.xml"
|
||||
@@ -88,15 +88,15 @@ goto :die
|
||||
:check_ver
|
||||
ver | findstr " 6\.1\." >nul && (
|
||||
set "WINDOWS_VER=6.1"
|
||||
set "SUPPORTED_HOTFIXES=KB4022168 KB4022722 KB4022719 KB4019265 KB4019264 KB4015552 KB4015549 KB4015546 KB4012218"
|
||||
set "WUAUENG_DLL_MIN_VER=7.6.7601.23714"
|
||||
echo Detected supported operating system: Windows 7 %WINDOWS_ARCHITECTURE%
|
||||
goto :check_hotfix
|
||||
goto :check_wuaueng_ver
|
||||
)
|
||||
ver | findstr " 6\.3\." >nul && (
|
||||
set "WINDOWS_VER=8.1"
|
||||
set "SUPPORTED_HOTFIXES=KB4022720 KB4022726 KB4022717 KB4019217 KB4019215 KB4015553 KB4015550 KB4015547 KB4012219"
|
||||
set "WUAUENG_DLL_MIN_VER=7.9.9600.18621"
|
||||
echo Detected supported operating system: Windows 8.1 %WINDOWS_ARCHITECTURE%
|
||||
goto :check_hotfix
|
||||
goto :check_wuaueng_ver
|
||||
)
|
||||
|
||||
:unsupported_os
|
||||
@@ -117,26 +117,16 @@ echo and that this warning is a mistake, you may continue with the patching proc
|
||||
echo at your own peril.
|
||||
goto :confirmation
|
||||
|
||||
:check_hotfix
|
||||
echo Checking installed updates, please wait...
|
||||
for %%a in (%SUPPORTED_HOTFIXES%) do (
|
||||
wmic /output:stdout qfe get hotfixid | find "%%a" >nul && (
|
||||
set "INSTALLED_HOTFIX=%%a"
|
||||
echo Detected supported installed update: %%a
|
||||
goto :confirmation
|
||||
)
|
||||
)
|
||||
wmic /output:stdout qfe get /value 2>&1 | find "No Instance(s) Available" >nul && (
|
||||
echo WARNING - wmic qfe is broken, can't check installed updates...
|
||||
goto :confirmation
|
||||
)
|
||||
:check_wuaueng_ver
|
||||
call :get_filever "%systemroot%\System32\wuaueng.dll"
|
||||
call :compareversion "%WUAUENG_DLL_MIN_VER%" "%Version%"
|
||||
if errorlevel 1 (
|
||||
echo.
|
||||
echo WARNING - Detected that no supported updates are installed.
|
||||
echo ERROR - Detected that wuaueng.dll is below the minimum supported version.
|
||||
echo.
|
||||
echo This warning could also mean that a new update came out and the
|
||||
echo wufuc installer script's list of updates hasn't been updated yet.
|
||||
echo If this is definitely the case and you know which update it is,
|
||||
echo feel free to create an issue. https://github.com/zeffy/wufuc/issues
|
||||
goto :die
|
||||
)
|
||||
echo Detected supported Windows Update agent version: %Version%
|
||||
|
||||
:confirmation
|
||||
echo.
|
||||
@@ -144,17 +134,18 @@ echo wufuc disables the "Unsupported Hardware" message in Windows Update,
|
||||
echo and allows you to continue installing updates on Windows 7 and 8.1
|
||||
echo systems with Intel Kaby Lake, AMD Ryzen, or other unsupported processors.
|
||||
echo.
|
||||
echo Please be absolutely sure you really need wufuc before continuing.
|
||||
echo Please be absolutely sure you really need wufuc before proceeding.
|
||||
echo.
|
||||
set /p CONTINUE=Enter 'Y' if you want to install wufuc:
|
||||
if /I not "%CONTINUE%"=="Y" goto :cancel
|
||||
echo.
|
||||
|
||||
:install
|
||||
set "wufuc_task=wufuc.{72EEE38B-9997-42BD-85D3-2DD96DA17307}"
|
||||
sfc /SCANFILE="%systemroot%\System32\wuaueng.dll"
|
||||
net start Schedule
|
||||
set "wufuc_task=wufuc.{72EEE38B-9997-42BD-85D3-2DD96DA17307}"
|
||||
schtasks /Create /XML "%wufuc_xml%" /TN "%wufuc_task%" /F
|
||||
schtasks /Change /TN "%wufuc_task%" /TR "'%systemroot%\system32\rundll32.exe' """%wufuc_dll%""",Rundll32Entry"
|
||||
schtasks /Change /TN "%wufuc_task%" /TR "'%systemroot%\System32\rundll32.exe' """%wufuc_dll%""",Rundll32Entry"
|
||||
schtasks /Change /TN "%wufuc_task%" /ENABLE
|
||||
rundll32 "%wufuc_dll%",Rundll32Unload
|
||||
net stop wuauserv
|
||||
@@ -180,3 +171,48 @@ echo.
|
||||
echo Canceled by user, press any key to exit...
|
||||
pause >nul
|
||||
exit
|
||||
|
||||
:get_filever file
|
||||
set "file=%~1"
|
||||
for /f "tokens=*" %%i in ('wmic /output:stdout datafile where "name='%file:\=\\%'" get Version /value ^| find "="') do set "%%i"
|
||||
exit /b
|
||||
|
||||
:compareversion version1 version2
|
||||
:: https://stackoverflow.com/a/15809139
|
||||
:: Compares two version numbers and returns the result in the ERRORLEVEL
|
||||
::
|
||||
:: Returns 1 if version1 > version2
|
||||
:: 0 if version1 = version2
|
||||
:: -1 if version1 < version2
|
||||
::
|
||||
:: The nodes must be delimited by . or , or -
|
||||
::
|
||||
:: Nodes are normally strictly numeric, without a 0 prefix. A letter suffix
|
||||
:: is treated as a separate node
|
||||
setlocal enableDelayedExpansion
|
||||
set "v1=%~1"
|
||||
set "v2=%~2"
|
||||
call :divideLetters v1
|
||||
call :divideLetters v2
|
||||
:loop
|
||||
call :parseNode "%v1%" n1 v1
|
||||
call :parseNode "%v2%" n2 v2
|
||||
if %n1% gtr %n2% exit /b 1
|
||||
if %n1% lss %n2% exit /b -1
|
||||
if not defined v1 (
|
||||
if not defined v2 ( exit /b 0 )
|
||||
)
|
||||
if not defined v1 ( exit /b -1 )
|
||||
if not defined v2 ( exit /b 1 )
|
||||
goto :loop
|
||||
|
||||
:parseNode version nodeVar remainderVar
|
||||
for /f "tokens=1* delims=.,-" %%A in ("%~1") do (
|
||||
set "%~2=%%A"
|
||||
set "%~3=%%B"
|
||||
)
|
||||
exit /b
|
||||
|
||||
:divideLetters versionVar
|
||||
for %%C in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do set "%~1=!%~1:%%C=.%%C!"
|
||||
exit /b
|
||||
|
@@ -1,51 +0,0 @@
|
||||
@echo off
|
||||
title wufuc utility - repair wuaueng.dll
|
||||
:: Copyright (C) 2017 zeffy
|
||||
|
||||
:: This program is free software: you can redistribute it and/or modify
|
||||
:: it under the terms of the GNU General Public License as published by
|
||||
:: the Free Software Foundation, either version 3 of the License, or
|
||||
:: (at your option) any later version.
|
||||
|
||||
:: This program is distributed in the hope that it will be useful,
|
||||
:: but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
:: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
:: GNU General Public License for more details.
|
||||
|
||||
:: You should have received a copy of the GNU General Public License
|
||||
:: along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
echo Copyright ^(C^) 2017 zeffy
|
||||
echo This program comes with ABSOLUTELY NO WARRANTY.
|
||||
echo This is free software, and you are welcome to redistribute it
|
||||
echo under certain conditions; see COPYING.txt for details.
|
||||
echo.
|
||||
|
||||
fltmc >nul 2>&1 || (
|
||||
echo This batch script requires administrator privileges. Right-click on
|
||||
echo %~nx0 and select "Run as administrator".
|
||||
goto :die
|
||||
)
|
||||
|
||||
echo You may want to use this script if you previously modified wuaueng.dll
|
||||
echo with "aio-wuaueng.dll-patch.bat" or by other means.
|
||||
echo.
|
||||
echo This will run the sfc utility and it will restore any changes that were made.
|
||||
echo.
|
||||
|
||||
set /p CONTINUE=Enter 'Y' if you want to repair wuaueng.dll:
|
||||
if /I not "%CONTINUE%"=="Y" goto :cancel
|
||||
|
||||
sfc /SCANFILE="%systemroot%\System32\wuaueng.dll"
|
||||
|
||||
:die
|
||||
echo.
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit
|
||||
|
||||
:cancel
|
||||
echo.
|
||||
echo Canceled by user, press any key to exit...
|
||||
pause >nul
|
||||
exit
|
23
wufuc/core.c
23
wufuc/core.c
@@ -13,9 +13,9 @@ DWORD WINAPI NewThreadProc(LPVOID lpParam) {
|
||||
|
||||
TCHAR lpBinaryPathName[0x8000];
|
||||
get_svcpath(hSCManager, _T("wuauserv"), lpBinaryPathName, _countof(lpBinaryPathName));
|
||||
CloseServiceHandle(hSCManager);
|
||||
|
||||
BOOL result = _tcsicmp(GetCommandLine(), lpBinaryPathName);
|
||||
CloseServiceHandle(hSCManager);
|
||||
|
||||
if (result) {
|
||||
return 0;
|
||||
@@ -44,11 +44,8 @@ DWORD WINAPI NewThreadProc(LPVOID lpParam) {
|
||||
DETOUR_IAT(hm, LoadLibraryExA);
|
||||
DETOUR_IAT(hm, LoadLibraryExW);
|
||||
|
||||
TCHAR lpServiceDll[MAX_PATH];
|
||||
get_svcdll(_T("wuauserv"), lpServiceDll, _countof(lpServiceDll));
|
||||
|
||||
HMODULE hwu = GetModuleHandle(lpServiceDll);
|
||||
if (hwu && PatchWUAgentHMODULE(hwu)) {
|
||||
HMODULE hwu = GetModuleHandle(get_wuauservdll());
|
||||
if (hwu && PatchWU(hwu)) {
|
||||
dwprintf(L"Patched previously loaded Windows Update module!");
|
||||
}
|
||||
ResumeAndCloseThreads(lphThreads, cb);
|
||||
@@ -68,7 +65,7 @@ DWORD WINAPI NewThreadProc(LPVOID lpParam) {
|
||||
FreeLibraryAndExitThread(HINST_THISCOMPONENT, 0);
|
||||
}
|
||||
|
||||
BOOL PatchWUAgentHMODULE(HMODULE hModule) {
|
||||
BOOL PatchWU(HMODULE hModule) {
|
||||
LPSTR pattern;
|
||||
SIZE_T offset00, offset01;
|
||||
#ifdef _AMD64_
|
||||
@@ -131,11 +128,7 @@ HMODULE WINAPI _LoadLibraryExA(
|
||||
HMODULE result = LoadLibraryExA(lpFileName, hFile, dwFlags);
|
||||
if (result) {
|
||||
dwprintf(L"Loaded library: %S", lpFileName);
|
||||
CHAR path[MAX_PATH];
|
||||
if (!get_svcdllA("wuauserv", path, _countof(path))) {
|
||||
return result;
|
||||
}
|
||||
if (!_stricmp(lpFileName, path) && PatchWUAgentHMODULE(result)) {
|
||||
if (!_stricmp(lpFileName, get_wuauservdllA()) && PatchWU(result)) {
|
||||
dwprintf(L"Patched Windows Update module!");
|
||||
}
|
||||
}
|
||||
@@ -150,11 +143,7 @@ HMODULE WINAPI _LoadLibraryExW(
|
||||
HMODULE result = LoadLibraryExW(lpFileName, hFile, dwFlags);
|
||||
if (result) {
|
||||
dwprintf(L"Loaded library: %s", lpFileName);
|
||||
WCHAR path[MAX_PATH];
|
||||
if (!get_svcdllW(L"wuauserv", path, _countof(path))) {
|
||||
return result;
|
||||
}
|
||||
if (!_wcsicmp(lpFileName, path) && PatchWUAgentHMODULE(result)) {
|
||||
if (!_wcsicmp(lpFileName, get_wuauservdllW()) && PatchWU(result)) {
|
||||
dwprintf(L"Patched Windows Update module!");
|
||||
}
|
||||
}
|
||||
|
@@ -1,7 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
DWORD WINAPI NewThreadProc(LPVOID lpParam);
|
||||
BOOL PatchWUAgentHMODULE(HMODULE hModule);
|
||||
BOOL PatchWU(HMODULE hModule);
|
||||
|
||||
HMODULE WINAPI _LoadLibraryExA(
|
||||
_In_ LPCSTR lpFileName,
|
||||
|
@@ -7,7 +7,7 @@
|
||||
x64dbg license (GPL-3.0):
|
||||
<https://github.com/x64dbg/x64dbg/blob/development/LICENSE> */
|
||||
|
||||
int hexchtoint(CHAR c) {
|
||||
static int hexchtoint(CHAR c) {
|
||||
int result = -1;
|
||||
if (c >= '0' && c <= '9') {
|
||||
result = c - '0';
|
||||
@@ -19,7 +19,7 @@ int hexchtoint(CHAR c) {
|
||||
return result;
|
||||
}
|
||||
|
||||
SIZE_T formathexpattern(LPCSTR patterntext, LPSTR formattext, SIZE_T formattextsize) {
|
||||
static SIZE_T formathexpattern(LPCSTR patterntext, LPSTR formattext, SIZE_T formattextsize) {
|
||||
SIZE_T len = strlen(patterntext);
|
||||
SIZE_T result = 0;
|
||||
for (SIZE_T i = 0; i < len && (!formattext || result < formattextsize); i++) {
|
||||
|
@@ -5,6 +5,9 @@
|
||||
#include "shellapihelper.h"
|
||||
#include "service.h"
|
||||
|
||||
static CHAR wuauservdllA[MAX_PATH];
|
||||
static WCHAR wuauservdllW[MAX_PATH];
|
||||
|
||||
BOOL get_svcdllA(LPCSTR lpServiceName, LPSTR lpServiceDll, DWORD dwSize) {
|
||||
CHAR lpSubKey[257];
|
||||
sprintf_s(lpSubKey, _countof(lpSubKey), "SYSTEM\\CurrentControlSet\\services\\%s\\Parameters", lpServiceName);
|
||||
@@ -27,6 +30,20 @@ BOOL get_svcdllW(LPCWSTR lpServiceName, LPWSTR lpServiceDll, DWORD dwSize) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
LPSTR get_wuauservdllA(void) {
|
||||
if (wuauservdllA[0] == '\0') {
|
||||
get_svcdllA("wuauserv", wuauservdllA, _countof(wuauservdllA));
|
||||
}
|
||||
return wuauservdllA;
|
||||
}
|
||||
|
||||
LPWSTR get_wuauservdllW(void) {
|
||||
if (wuauservdllW[0] == L'\0') {
|
||||
get_svcdllW(L"wuauserv", wuauservdllW, _countof(wuauservdllW));
|
||||
}
|
||||
return wuauservdllW;
|
||||
}
|
||||
|
||||
BOOL get_svcpid(SC_HANDLE hSCManager, LPCTSTR lpServiceName, DWORD *lpdwProcessId) {
|
||||
SC_HANDLE hService = OpenService(hSCManager, lpServiceName, SERVICE_QUERY_STATUS);
|
||||
if (!hService) {
|
||||
|
@@ -6,9 +6,13 @@ BOOL get_svcpid(SC_HANDLE hSCManager, LPCTSTR lpServiceName, DWORD *lpdwProcessI
|
||||
BOOL get_svcgname(SC_HANDLE hSCManager, LPCTSTR lpServiceName, LPTSTR lpGroupName, SIZE_T dwSize);
|
||||
BOOL get_svcpath(SC_HANDLE hSCManager, LPCTSTR lpServiceName, LPTSTR lpBinaryPathName, SIZE_T dwSize);
|
||||
BOOL get_svcgpid(SC_HANDLE hSCManager, LPTSTR lpServiceGroupName, DWORD *lpdwProcessId);
|
||||
LPSTR get_wuauservdllA(void);
|
||||
LPWSTR get_wuauservdllW(void);
|
||||
|
||||
#ifdef UNICODE
|
||||
#define get_svcdll get_svcdllW
|
||||
#define get_wuauservdll get_wuauservdllW
|
||||
#else
|
||||
#define get_svcdll get_svcdllA
|
||||
#define get_wuauservdll get_wuauservdllA
|
||||
#endif
|
||||
|
BIN
wufuc/version.rc
BIN
wufuc/version.rc
Binary file not shown.
Reference in New Issue
Block a user