Skocz do zawartości

Oszukanie programów dedykowanych na nowsze systemy.


gabriel0

Rekomendowane odpowiedzi

wargaming.net zaprzestał wsparcia dla windows XP, i Vista, teraz wspierają Windows 7 w górę, w przypadku wot blitz zaprzestali wsparcia dla windows phone 7.5 7.8 8.0 8.1 i windows mobile 10 i android 5.1.1 i starszych a także windows 8.1 RT, gry już nie uruchomimy na starych wersjach androida . Przeszli na biblioteki DX 11 zaprzestając wsparcia 9.0c czy tam któregoś, obecnie pracują nad DX 12, Ray trackingiem, i ulepszeniem silnika core, wraz z ostatnią aktualizacją wprowadzili 64 bitową wersję klienta gry. Więc progres gigantyczny, niestety okupiony brakiem możliwości uruchamiania gier na starych systemach. 

Odnośnik do komentarza
Udostępnij na innych stronach

10 godzin temu, gabriel0 napisał:

Wczoraj jeszcze w to grałem a dziś weszła aktualizacja. Skoro w grze nic się nie zmieniło, to niby dlaczego miało by nie działać? Niestety nie mam pojęcia skąd program uruchamiający bierze informację odnośnie aktualnego systemu.

O z tym nie ma żadnego problemu w końcu Windows sam się chwali w jakiej wersji jest. A zresztą po co sprawdzać wersję systemu wystarczy narzucić iż konkretne biblioteki musza być w konkretnych wersjach (na przykład nie starszych niż np.3,5) a w tej wersji znajdują się od Win 7 i tyle. Biblioteka nie taka to znaczy iż system nie taki i koniec zabawy. A biblioteki nie podmienisz bo  ta z 7 nie zadziała w XP ani w Win VISTA.

Odnośnik do komentarza
Udostępnij na innych stronach

Dowiedziałem się tyle ze "GetSystemInfo" bierze informację z kernel32. Nie dałoby rady zmodyfikować na tyle oryginalnego jądra, żeby chociaż sprawiało wrażenie nowszego? Nie wydaje mi się żeby program potrzebował jakichś nowszych procedur niż ma obecnie kernel z XP. Spróbować nie zaszkodzi. Bo programu startowego nie udało mi się zmodyfikować. Jestem za bardzo głąb w tym temacie.

Odnośnik do komentarza
Udostępnij na innych stronach

W dniu 6.11.2019 o 20:53, gabriel0 napisał:

Wczoraj jeszcze w to grałem a dziś weszła aktualizacja. Skoro w grze nic się nie zmieniło, to niby dlaczego miało by nie działać? Niestety nie mam pojęcia skąd program uruchamiający bierze informację odnośnie aktualnego systemu.

Skoro grałeś, to odinstaluj tą aktualizację.

Odnośnik do komentarza
Udostępnij na innych stronach

W dniu 6.11.2019 o 20:53, gabriel0 napisał:

Skoro w grze nic się nie zmieniło, to niby dlaczego miało by nie działać?

Skoro w grze nic się nie zmieniło, to o jaką aktualizacje może chodzić.

4 minuty temu, Mr.Straight napisał:

@jarexpol Jak ma odinstalować aktualizacje w grze polegającej na zabawie MP?
Może zanim napiszesz coś głupiego to lepiej poczytać?

@[Zawartość widoczna tylko dla zalogowanych użytkowników]

Ty oczywiście inaczej napisać nie potrafisz.

Odnośnik do komentarza
Udostępnij na innych stronach

12 godzin temu, gabriel0 napisał:

Dowiedziałem się tyle ze "GetSystemInfo" bierze informację z kernel32. Nie dałoby rady zmodyfikować na tyle oryginalnego jądra, żeby chociaż sprawiało wrażenie nowszego? Nie wydaje mi się żeby program potrzebował jakichś nowszych procedur niż ma obecnie kernel z XP. Spróbować nie zaszkodzi. Bo programu startowego nie udało mi się zmodyfikować. Jestem za bardzo głąb w tym temacie.

A niby jak chcesz przerobić krenel win XP aby wyglądało iż jest to win 7? A zresztą  to skąd wiesz iż nawet gdyby Ci się to jakimś cudem udało  to tylko ta zmiana wystarczy? XP i 7 różnią się bardzo mocno. Już prędzej taki numer by się udał z VISTĄ tam różnice są zdecydowanie mniejsze. Zresztą wątpię by jakąś prostą sztuczka dało się oszukać program - bo to nie tylko chodzi o wersję sytemu lecz zapewne jeszcze i o inne rzeczy np. tak jak pisałem wczesnej wersje konkretnych bibliotek. Wystarczy iż gra zażąda procedury co ma nowsza a nie miała starsza i program Ci się zawiesi lub wysypie z niebieskim ekranem . Zresztą ta dyskusja jest bezcelowa przecież sam nie napiszesz od nowa jądra sytemu przerabiając go dla swych potrzeb. 

Odnośnik do komentarza
Udostępnij na innych stronach

Wina tego że się "nie da" to to że poddajecie się na starcie.
Osobiście wiem że w przypadku zażądania procedury wejścia której nie będzie w moim jądrze systemu nic nie zdziałam, tak z ciekawości chciałem wypróbować przeróbkę o której wspomniałem. Nie wydaje mi się by wargaming porzucił wsparcie 7-demki 32bit gdyż o tym nie widziałem żadnych wzmianek.
Tak samo wiem że różnica między 32 a 64 jest nie do przeskoczenia.

Odnośnik do komentarza
Udostępnij na innych stronach

On 11/10/2019 at 8:21 PM, xkx said:

A niby jak chcesz przerobić krenel win XP aby wyglądało iż jest to win 7? A zresztą  to skąd wiesz iż nawet gdyby Ci się to jakimś cudem udało  to tylko ta zmiana wystarczy? XP i 7 różnią się bardzo mocno. Już prędzej taki numer by się udał z VISTĄ tam różnice są zdecydowanie mniejsze. Zresztą wątpię by jakąś prostą sztuczka dało się oszukać program - bo to nie tylko chodzi o wersję sytemu lecz zapewne jeszcze i o inne rzeczy np. tak jak pisałem wczesnej wersje konkretnych bibliotek. Wystarczy iż gra zażąda procedury co ma nowsza a nie miała starsza i program Ci się zawiesi lub wysypie z niebieskim ekranem . Zresztą ta dyskusja jest bezcelowa przecież sam nie napiszesz od nowa jądra sytemu przerabiając go dla swych potrzeb. 

 

Da się przerobić, może się wydawać że to mało możliwe ale nie jest to aż takie trudne, czasochłonne raczej. WinXP od Visty dużo się nie różni ba od 7 też nie ma przepaści, mało tego, również w porównaniu do 8 czy 10 też ta różnica nie jest duża, nie jest duża na tyle że można kopiować kawałki kodu z bibliotek z tych windowsów i przenosić/wklejać je do bibliotek w winXP i to często bez żadnego zmieniania i modyfikowania kodu, tak kopiuj/wklej i działa xD

 

WinXP od Win7 nie różni się na tyle dużo że sprawdzając biblioteki w tych 2 windowsach widać że ludzie z microsoftu specjalnie "zrobili burdel" w bibliotekach Win7 żeby nie było ciągłości i kompatybilności z WinXP i Vista, procedury i funkcje w Win7 w bibliotekach dll zostały poprzenoszone do innych bibliotek, różne funkcje porozbijane na inne biblioteki, pozmieniane nazwy, dorzucone biblioteki do których odwołują się programy a które służą tylko i wyłącznie do przekierowania na inne biblioteki.

 

Często nawet nie trzeba bawić się z bibliotekami i ich kompatybilnością, bardzo często programy z nowszych wersji Windows nie działają na XP ponieważ... odpalanie ich na niższych wersjach systemu jest po chamsku zablokowane. Na przykład napisany program dla Win7 ma zapisane w sobie w postaci liczbowej, że je przeznaczony na Win7, odpalając taki program na WinXP, WinXP sprawdza na jaką wersję Win jest program i jeżeli jest to wersja wyżej niż XP to wywala informacje że program jest przeznaczony na nowszy system windows i go nie odpala, wystarczy w odpowiednim miejscu w pewnej bibliotece WinXP zmienić kod tak żeby przy sprawdzaniu tego, zawsze zwracał wartość "TRUE" i przepuszczał działanie dalszego kodu czyli uruchamianie aplikacji. W ten sposób omija się blokadę sprawdzania kompatybilności programów.

 

Swego czasu bawiłem się trochę w to, np. kopiowałem część kodu z bibliotek Win8 i Win10 do bibliotek WinXP żeby odpalić na XP pewien program z Win8.1, rezultat był taki że program napisany specjalnie na Win8.1 który nie działa i nie odpala się na Win7 czy Vista, bez problemu działał na moim WinXP :smokeing: :D

 

Często jest też tak że program woła o jakąś funkcje w bibliotece z której nawet nie korzysta, sprawdza tylko czy jest, wystarczy wtedy dodać do odpowiedniej biblioteki WinXP "pustą funkcję" która nic nie robi aby program zaczął działać, często jest też tak że są to jakieś funkcje podstawowe systemowe windowsa których nie ma WinXP, jak np. w Win7 jakieś dodatkowe sprawdzanie języka w systemie, sprawdzanie w jakiej zgodności odpalamy program, sprawdzanie czy odpalamy program w 32bit czy 64bit itp. funkcje które nie istnieją w WinXP a które łatwo dodać do bibliotek WinXP ponieważ są to funkcje "statyczne/sztywne" gdybyśmy chcieli przenieść je do WinXP, ponieważ WinXP nie ma takich funkcji bo nie ma takich możliwości, więc programowo mamy ułatwienie bo wystarczy dodać do bibliotek WinXP sztywne funkcje zwracające określone dane np. funkcja która za zadanie ma sprawdzić czy uruchamiany program jest w 32bit czy 64bit w win7, w WinXP miała by zwracać na sztywno przypisaną wartość że jest to 32bit, funkcja która sprawdza w jakiej zgodności odpalamy program na Win7, w WinXP będzie zwracać sztywno przypisaną wartość określającą zgodność z WinXP itp.

 

Podam jaśniejszy przykład, w Win7 jest dużo funkcji w bibliotekach, dotyczących języka, funkcji których nie ma w WinXP, np. funkcja sprawdzająca w jakiej wersji językowej mają się odpalać dane programy, taki program napisany dla Win7, odnosi się do tej funkcji w systemowych bibliotekach i uruchamia się sam w określonym języku zwracanym przez tą funkcję np. funkcja ta zwraca tekst = "PL" no i klops, ten że program już nie zadziała na XP bo w XP nie ma takiej funkcji, ale teraz wystarczy dodać tą funkcje do biblioteki w WinXP w "wersji statycznej" czyli funkcje która statycznie zwraca sam string czyli tekst = "PL" i gotowe program zacznie się odpalać na WinXP w wersji językowej określonej przez naszą funkcje, nie trzeba przepisywać całej funkcji całego kodu sprawdzającego w ustawieniach jaki mamy przypisany język i kombinować przepisywać znaczne ilości kodu z Win7 i dostosowywać to do WinXP, wystarczy że funkcja będzie zwracała na sztywno odpowiedni tekst określający nasz język = "PL".

 

Przykładowo jak taka statyczna funkcja by wyglądała na WinXP, nazwijmy ją Default_Language funkcja która jest w Win7 a nie ma jej w WinXP, funkcja która zwraca krótki tekst określający jaki mamy ustawiony podstawowy język w którym mają się uruchamiać programy w systemie windows:

 

Win7 (funkcja dynamiczna)

function Default_Language: string;
begin

//i tu długie linijki kodu

//które procesor musi wykonać aby

//sprawdzić w naszych ustawieniach

//podstawowy język

  result := język_wyciągnięty_z_naszych_ustawień_konfiguracyjnych //zwraca tekst określający podstawowy język, powiedzmy że jest to = PL= czyli język polski.

end;

 

a tak wyglądała by taka nowa funkcja statyczna dla WinXP

 

WinXP (funkcja statyczna)

function Default_Language: string;
begin

  result := 'PL'; //statycznie zwraca tylko sam tekst, na sztywno przypisany do funkcji = PL

end;

 

Mało tego, taki program będzie działał szybciej na naszym XP, ponieważ procesor będzie miał mniej do mielenia/roboty wykonując "puste funkcje" i funkcje które zwracają wyniki przypisane statycznie w formie tekstu czy liczb.

 

Można również nawet nie przepisywać funkcji z nowszych windowsów do WinXP, jeżeli jest to jakaś bardziej specyficzna funkcja, trudniejsza do skopiowania z nowszych wersji windows, wymagająca dużych zmian i poprawek żeby zaadaptować ją do WinXP, można taką funkcje napisać na nowo samemu, specjalnie pod WinXP, sprawa nie jest wcale taka trudna nie trzeba tego robić w assembler, wystarczy znać jakiś język programowania w którym możemy stworzyć własną bibliotekę dll, powiedzmy delphi, no i teraz potrzebujemy przepisać jakąś funkcję np. z Win10 do XP ale w Win10 ta funkcja jest tak specyficzna że trzeba by było przepisując kod w assembler dokonywać wielu poprawek i zmian żeby to funkcjonowało w WinXP, wystarczy więc sprawdzić w internecie za co odpowiada dana funkcja, co robi i jakie wartości zwraca i napisać samemu w delphi taką funkcję, tworząc swoją bibliotekę z tą jedną funkcją, potem odpalamy jakimś disassemblerem tą naszą stworzoną bibliotekę dll z napisaną przez nas funkcją i mamy tą naszą funkcje w pełni działającą w kodzie assembler , którą możemy teraz skopiować i wkleić/dodać do odpowiedniej biblioteki WinXP, albo możemy zrobić jeszcze prościej, czyli dodać do biblioteki systemowej WinXP odwołanie/przekierowanie do naszej biblioteki dll z naszą funkcją którą napisaliśmy, odchodzi zabawa z przepisywaniem kodu w assembler.

 

Bo można dodawać funkcje i procedury do bibliotek systemowych windows na 2 sposoby:

1. modyfikując i dodając nowe funkcje i procedury w standardowych systemowych bibliotekach dll w kodzie assembler (np. przy przepisywaniu ich z innych bibliotek dll, nowszych systemów windows)

2. dodawać do standardowych systemowych bibliotek dll wpisy/odniesienia/przekierowania do innych bibliotek dll i funkcji z których będzie owa biblioteka korzystać (np. przy tworzeniu swoich bibliotek dll czy korzystaniu z innych zewnętrznych bibliotek i ich funkcji, schematycznie wygląda to tak:

kernel32.dll -> mojabiblioteka.nowa_funkcja

Po dodaniu takiego odpowiedniego wpisu do biblioteki kernel32.dll program który będzie chciał wywołać funkcję nowa_funkcja z kernel32.dll będzie przekierowywany po tą funkcję (nowa_funkcja) z biblioteki kernel32.dll do mojabiblioteka.dll, minusem takiego rozwiązania jest ciut wolniejsze działanie niż w przypadku opcji pierwszej, nie jest to zauważalne ale taki jest fakt plus do tego za każdym razem przy wywoływaniu kernel32.dll przez program, będzie też ładowana biblioteka - mojabiblioteka.dll co zwiększa obciążenie ramu o wagę tej biblioteki

 

dbil lubi to
Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie