Problem z sumą kontrolną MD5

Witajcie. Na samym początku pragnę się przywitać, gdyż jest to mój pierwszy post na tym forum.

Mam problem - posiadam oryginalną wersję mojej ulubionej gry strategicznej - Empire Earth II.

Ostatnio bawiłem się w edytowanie pliku .exe uruchamiającego grę, tak że udało mi się zmienić rozdzielczość ekranu na 1600x900 (wcześniej gra wyglądała beznadziejnie, nie dostosowana do laptopów w ogóle). No więc jak już zmieniłem, po zalogowaniu się na serwer Multiplayer nie mogę dołączać do gier, ze względu na “Różnice w pliku wykonywalnym”. Trochę się dowiadywałem od czego to może być - wyszło na to, że po logowaniu po prostu gra sprawdza “sumę kontrolną”. Z początku myślałem, że chodzi o CRC32, więc potraktowałem plik programem BruteCRC32.exe i wpisałem sumę crc32 z oryginalnego pliku (bez edycji) - niestety - gra nie sprawdza tej sumy i grać dalej nie można.

Postanowiłem więc znaleźć program podobny do brutecrc32, tak abym do mojego zmodyfikowanego pliku mógł przypisać sumę kontrolną MD5, z oryginalnego.

Dużo szukałem w google, jednak znajduję same programy do sprawdzania MD5. Jeżeli ktoś się orientuje jakim sposobem mogę “oszukać” tę sumę kontrolną jeszcze - bardzo proszę o pomoc.

Hmm, a czy takie modyfikacje w pliku wykonywalnym są w ogóle legalne? :wink:

Myślę, że tak. Nie mam zamiaru edytować pliku po to, aby moje jednostki miały po 10000 punktów ataku. Po prostu gra na rozciągniętym ekranie, z małej, kwadratowej rozdzielczości zbrzydła mi. W tej grze wystarczy jeden zmieniony bajt w pliku, i już w Multiplayerze nie można grać z innymi.

Bardzo więc proszę o pomoc

Spróbuj MD5 Hasher,wygląda na to,że można nim zmieniać sumy kontrolne.Nie wiem,czy akurat w Twoim wypadku to pomoże.

http://www.softpedia.com/get/Security/S … sher.shtml

Oczywiście,robisz to na własne ryzyko…

Dziękuję za propozycję.

Zmieniać hash, to ten program zmienia. Niestety - tworzy on inny, losowy hash :frowning: Ja potrzebuje ściśle określonego, dzięki któremu mógłbym mieć identyczną sumę kontrolną jak w oryginalnym pliku.

Trochę szukałem na ten temat i jest to możliwe (konflikt sumy kontrolnej się to nazywa, czy jakoś tak), jednak nie mam żadnego narzędzia które by to zrobiło. Sam oczywiście programów pisać nie umiem :frowning:

Bardzo proszę o dalsze propozycje.

Możesz spakować i wstawić ten plik który chcesz modyfikować tu http://www.zippyshare.com ,i napisz jaka to ma być suma kontrolna (ja nic nie obiecuje ,pokombinuję)

Powinno być: 768f452cdfa39d1514e0f55422dcfc01

A tu jest plik po modyfikacji: http://www59.zippyshare.com/v/43392315/file.html

(nie pakowałem, żeby mu się nic nie zmieniło :slight_smile: )

Wielkie dzięki za zainteresowanie się sprawą oraz chęci pomocy :slight_smile:

Dodane 12.01.2011 (Śr) 21:19

Witajcie. Czy zmieniło się może coś w sprawie tego MD5? Może jednak ktoś wie jaki program pozwoli dopisać wartość, aby otrzymać wymaganą przezemnie sumę kontrolną?

Myślałem że za pomocą programu Cheat Engine ,będę w stanie pogrzebać w pamięci procesu MD5 Hasher ,i wyłapię w min sumę kontrolną i wpiszę na sztywno odpowiednią .Jednak coś nie chce wyjść…

Ale jak byś chciał to zrobić? Programy nie odczytują sum kontrolnych plików, tylko je obliczają.

Jak to do mnie ,to tak:

Odpalam MD5 Hasher ,odpalam Cheat Engine i wskazuje proces MD5 Hasher’a > robimy skan First skanem > zmieniam sumę kontrolną w MD5 Hasher który daje taką możliwość i skanujemy Cheat Enginem pamięć w poszukiwaniu zmian ,próbowałem w przeróżnych kombinacjach skanu 4byte, 2byte, byte, text itd itp…wydaję mi się że w CE powinno się to udać, tylko trzeba by było odpowiednio pogrzebać i ustawić Cheat Engine.

Okej, dzięki za pomoc. A te CE co oznacza? I jakich programów oprócz MD5 Hasher’a i Cheat Enigme potrzebuję?

CE= Cheat Engine (skrót) :wink:

Że też się nie domyśliłem :slight_smile:

No dobra, Łukash, ale co to może dać? Jak już wykryje jakieś zmiany? Bo ten plik ma inną sumę kontrolą, a musi być w 100% dokładnie: 768f452cdfa39d1514e0f55422dcfc01.

Coś mi się wydaje, że tu potrzeba dopisać jakieś wartości do kodu w Hex edytorze, tak żeby powstał właśnie wymagany kod.

Dokładnie się na tym nie znam, ale słyszałem, że MD5 jakoś “dziwnie” ten kod oblicza i nie wystarczy tak jak w CRC32 dopisanie kilku bitów :frowning:

No ale w końcu nie ma rzeczy nie możliwych, musi się to jakoś udać. Może by napisać jakiś program co dopisywałby wartości hex na końcu pliku, np. 00 00, i po każdym dodaniu sprawdzał, czy suma kontrolna nie jest taka jaką chciałem? Co o tym myślicie? Jak piszę bez sensu to mnie upomnijcie, ja nie chodzę do technikum informatycznego więc nie wiem :confused:

Jeżeli dało by się namierzyć sumę kontrolną ,to w CE jest możliwość (nie wiem na ile skuteczna) podania na sztywno konkretnej sumy - bo ten program umie zapisać do pamięci (DEP tylko dla istotnych systemowych) a znowu gdzieś w pamięci musi być ślad po zmianie…

A w tym problem ,że np ja nie za bardzo mogłem dojść do tego w jaki sposób jest przechowywana suma kontrolna ,czy to w hex czy też inaczej…Jeżeli w hex to trzeba by było “przekonwertować” ten cyferkowo-literkowy zapis na hex i bawić się w CE > skan > wpisanie sumy i szukanie (next scan) > zmiana sumy > wpisanie sumy i szukanie …,aż przefiltrujesz wyniki i będzie czarno na białym gdzie jest suma.Tyle teorii :slight_smile:

Tez nie jestem informatykiem ,ale znam za to jednego dyplomowanego. greh , :wink:

Dodane niedziela, 13 lut 2011, 23:27

Znalazłem też coś takiego : http://www.hackchina.com/en/cont/95740 ,tyle że do pobrania są źródła ,i chyba trzeba by było to skompilować ,czy coś w tym stylu…(?)

I jeszcze takie coś : http://crppit.epfl.ch/documentation/Has … e_Project/ ,“Md5Clone.zip” i ogólnie parę rzeczy w temacie(nie wiem na ile to będzie przydatne)

Oraz : http://crppit.epfl.ch/documentation/Has … tcoll_MD5/ <=to jest interesujące (http://crppit.epfl.ch/documentation/Has … 0.0.5.exe/)

Oraz: http://crppit.epfl.ch/documentation/Has … CRC_Faker/

I : http://packetstorm.unixteacher.org/crypt/md/md5coll.zip

Także coś mamy ,ale jak to użyć …

Super, dzięki za te linki. W wolnej chwili to wszystko przeanalizuje i dam znać!

Wiekszość z tych programów działa w trybie wiersza polecenia ,kolizje uzyskuje się pewnie przez komendę w stylu=

zrób kolizje z ee.exe(oryginał) do ee2.exe(Twój) ,oczywiście bzdurna komenda ale pewnie jakoś tak to będzie.

Czekam z niecierpliwością na wyniki/efekty :slight_smile:

Dzięki za programy. Próbowałem przez pewien czas bawić się tym - jednak jest to jakaś czarna magia… Ta suma kontrolna jest jakoś dziwnie obliczana i nie wystarczy tak jak w Crc dopisać 3 bajtów i się kod zmieni. To oblicza jakoś… ze wszystkich linijek inny kod, a potem jeszcze to kumuluje… Jeśli chciałbym utworzyć kolizyjny plik, to nie odpaliłby się on jak pierwotny, ze względu na zmianę zbyt dużej ilości danych. Masakra. Mówiąc szczerze jeśli chodzi o kolizję md5 - poddałem się. Jaki jeszcze może być sposób na ominięcie takiego zabezpieczenia? :frowning:

Kurcze nie dobrze…Nie poddajemy się :wink:

Widziałeś ten temat http://www.widescreengamingforum.com/fo … php?t=1025

W ostatnim poście jest coś z plikiem .ini ,może dało by się zmajstrować tak żeby sprawdzał oryginał:

ale żeby chodziło na Twoim .exe #-o ,albo w tym .ini wklepać rozdzielczość czy coś #-o

Znasz program Universal Widescreen (UniWS) Patcher ?

http://www.widescreengamingforum.com/do … /uniws.zip

Może rescharger ? http://forums.ngemu.com/software-discus … -game.html

http://www.12noon.com/displaychanger.htm

Sprawdź też rejestr Windows czy aby w jakimś kluczu do EE2 nie siedzi rozdzielczość…

To tak.

Uniws właśnie zmienia tę wartość w pliku .exe i wtedy pojawia się nowa opcja rozdzielczości (Ale nie 1600x900 tylko jakaś inna, jednak po wybraniu jest 16:9). Więc ten Uniws działa, jednak modyfikuje on malutką wartość w EXE, przez co nie można grać ze względu na inną sumę kontrolną.

W folderze, gdzie jest zainstalowana gra jest takie coś jak plik: myconfig.cfg

W nim np. ustawiłem sobie, żeby nie było limitu oddalania kamery, poprzez dopisanie opcji:

s_skipIntro=1 // 1 on - 0 off

MAINCAM:   

MAXDIST 80

MINPITCH 5

KNEEPITCH 38

Te wartościowości znalazłem w necie. Działa bez problemu w MultiPlayerze. Nie sądzę jednak, żeby jakaś konfiguracja mogła mieć wpływ na rozdzielczość w tej grze. Rejestr przejrzałem. Komendy do myconfig.cfg prawdopodobnie są opisanie w pliku config.cfg: http://przmus.republika.pl/config.cfg (otworzyć Notatnikiem). Jednak z tego co ja przejrzałem - żadnej komendy nie ma zmieniającej rozdzielczość. W folderze: C:\Users\Przemek\AppData\Roaming\Sierra\Empire Earth II\settings jest plik settings.cfg - prawdopodobnie właśnie z rozdzielczością, gdyż jest takie coś:

displayMode = Res1152x864x32

Niestety po zmianie przywraca się do stanu poprzedniego po uruchomieniu gry. Próbowałem zaznaczać opcje “tylko do odczytu”, jednak rozdzielczość wtedy była najmniejsza z możliwych 800x600.

Tak więc doszedłem do wniosku, że tylko zmiana w tym .exe-ku pomaga. Jednak dla czego? Czy nie powinno to zależeć od jakiegoś innego pliku?

Dzięki za program rescharger. Niestety taka sama sytuacja. Pomimo iż dobrze uruchomiłem (dopisałem odpowiednią ścieżkę do pliku), to niestety po włączeniu skrótu od tego programu - gra się włącza - bez zmiany rozdzielczości (z taką jaką miałem wcześniej).

Cały problem jest w tym, że gra nie wygląda najlepiej gdyż jest po prostu przystosowana do 4:3. Rozciąganie bardzo irytuje, aczkolwiek da się grać.

Doszedłem do wniosku, że jedynym rozwiązaniem jest tylko edycja w tym pliku .exe

Zmienia ona dosłownie cztery zera (porównałem pierwotny plik z wyedytowanym w HEX edytorze), zmiana je na jakieś liczby (w zależności jaką rozdzielczość ustawiamy w Uniws).

W rejestrze nie ma żadnych zapisanych informacji na temat rozdzielczości w tej grze.

Jednak gra JEST PRZYSTOSOWANA do 1600x900, gdyż po zmianie w EE2.exe gra wyglądała normalnie. Większe okno, większy widok na mapę, nierozciągnięte budynki, ładniejsze menu itd. Dlatego właśnie większość czasu skupiałem się na tym MD5. Niestety do końca pewien nie jestem, czy ta gra właśnie sprawdza MD5. Próbowałem z crc32, znalazłem program, który dopisał coś, aby uzyskać pierwotną sumę. Niestety na grze dalej wykrywało “Różnice w pliku wykonywalnym”. A może ktoś orientuje się jak takie gry Multiplayer oparte na Game Spy sprawdzają te różnice? Może biorą pod uwagę inną sumę kontrolą?

Myślałem także, aby jak już się wczyta gra - zmienić rozdzielczość zmieniając wartości HEX w pamięci RAM. Niestety nie mogłem znaleźć gdzie takie coś jest zapisane, a każda próba zmiany czegokolwiek - po zapisaniu kończyła się samoczynnym zamknięciem gry :frowning:

Jeśli ktoś ma jeszcze jakieś pomysły, jest w stanie pomóc - bardzo proszę o rady.

Wielkie podziękowania kieruję dla Łukash’a który zainteresował się moim problemem :slight_smile:

Ciężka sprawa :frowning: Może by pasowało napisać do działu obsługi klienta/support gamespy ,opisać problem ,przecież jest Was więcej z takim problemem ,może coś z tym zrobią…