Wczoraj j00ru dał mi znać że mój add-on do cmd.exe, dodający jakże to ważną funkcjonalność (tj kolorki), nie funkcjonuje poprawnie na Windows 7 RC - w związku z czym rzuciłem okiem, i tak oto powstała wersja 0.004d!
Zainteresowanych detalami działania mojego ansi hacku odsyłam tutaj, w tym poście skupie się jedynie na tych drobnych różnicach między cmd.exe z poprzednich Windowsów, a cmd.exe z W7RC, które to uniemożliwiły działanie wersji 0.004c.
Tak na prawdę różnica była jedna - brak w IAT cmd.exe funkcji LoadLibraryA z której korzysta loader (wykonywany przed EP cmd.exe) do załadowania AnsiSupport.dll. Do tego doszedł bug w moim patcherze - niezainicjowana zmienna - który uniemożliwił wypisanie konkretnego komunikatu o błędzie podczas patchowania - zamiast tego wrzucał "losowy" adres LoadLibraryA w loader, a spatchowane cmd.exe po odpaleniu się wysypywało.
Rozwiązanie problemu polegało na napisaniu wersji patcha która korzystała by z LoadLibraryW (ta funkcja występuje w IAT cmd.exe z W7RC) - oraz poprawy patchera tak aby wrzucał odpowiedni patch, w zależności od potrzeby.
Na koniec download:
cmd_ansihack_004d.zip (31kb, SRC+BIN)
I tyle...
2009-05-12:
Comments:
(Microsoft Windows 2000 [Version 5.00.2195])
Przyznaje, że nie testowałem na Windows 2000 :)
Czy poprzednie wersje działały na 2000?
System nie może znaleźć komunikatu dla numeru komunikatu 0x2350 w pliku komunika
tów dla Application.
Copyright (c) 2009 Microsoft Corporation. Wszelkie prawa zastrzeżone.
System nie może znaleźć komunikatu dla numeru komunikatu 0x8 w pliku komunikatów
dla System.
Add a comment: