Jak otworzyć kod aplikacji exe. Jak otworzyć plik .DLL lub .EXE w edytorze zasobów. Błąd: plik nie jest plikiem EXE ani DLL. W ogóle

Z pomocą Tuner zasobów możesz otwierać pliki wykonywalne, takie jak .EXE, .DLL, .OCX, wygaszacze ekranu (.SCR) i wiele innych. Otwierając plik, uzyskujesz dostęp do zasobów pliku i możesz zastępować ikony, kursory i grafiki w różnych formatach, zmieniać linie w menu, oknach dialogowych i innych elementach interfejsu użytkownika.

Warto jednak pamiętać, że zasoby zawarte w pliku wykonywalnym są oddzielone od kodu programu i zmieniając interfejs programu nie uzyskuje się dostępu do kodu programu. Za pomocą edytora zasobów możesz zmieniać kontrolki programu. Kodu programu nie można zmienić za pomocą edytora zasobów.

W przypadku poważniejszych zmian (które jednak nie wprowadzą do niczego dobrego bez wystarczającego doświadczenia w programowaniu aplikacji dla Windows) zalecamy skorzystanie z PE Explorer (edytor struktury plików PE) lub FlexHex (edytor szesnastkowy dla plików binarnych).

Otwieranie pliku EXE lub DLL w Resource Tuner

Obsługuje wiele sposobów otwierania plików. Aby otworzyć plik do przeglądania i edycji, kliknij przycisk Otwórz plik na pasku narzędzi lub wybierz polecenie Plik > otwarty z menu. Rozwijane menu znajdujące się obok przycisku na pasku narzędzi umożliwia szybki dostęp do listy ostatnio otwieranych plików. Tę samą listę można uzyskać za pomocą polecenia Plik > Ostatnie pliki z menu programu. Liczbę plików na liście konfiguruje się w oknie dialogowym Dostosuj.


Możesz także otworzyć plik za pomocą narzędzia Resource Tuner bezpośrednio z Eksploratora Windows, klikając plik prawym przyciskiem myszy i wybierając Otwórz za pomocą narzędzia Resource Tuner z menu kontekstowego.

Możesz też po prostu przeciągnąć i upuścić ikonę pliku z Eksploratora Windows na ikonę narzędzia Resource Tuner na pulpicie lub do okna uruchomionego narzędzia Resource Tuner.

Możesz także otworzyć plik z wiersza poleceń.
Na przykład: restuner.exe nazwa pliku.exe

Otwierając plik, Resource Tuner wykonuje kilka automatycznych operacji: rozpakowuje plik w przypadku wykrycia, że ​​został spakowany przy użyciu UPX, następnie sprawdza strukturę i zasoby pliku pod kątem ewentualnych błędów, a na koniec odbudowuje uszkodzone zasoby zgodnie z plikiem wykonywalnym specyfikacja formatu.

Błędy podczas otwierania pliku

Jeśli podczas otwierania pliku wystąpi błąd, jest to najprawdopodobniej z trzech powodów: plik jest chroniony, plik jest 16-bitowy lub w ogóle nie jest plikiem wykonywalnym.

1. Błąd: plik jest uszkodzony, skompresowany przez program pakujący lub chroniony przez zabezpieczenie.

Istnieje bardzo duże prawdopodobieństwo, że plik został skompresowany w celu zmniejszenia jego rozmiaru. Istnieją dziesiątki programów pakujących i zabezpieczających pliki wykonywalne i cały czas pojawiają się nowe. Resource Tuner obsługuje rozpakowywanie tylko jednego, ale najpopularniejszego pakera - UPX. Inne programy pakujące nie są obsługiwane i przed otwarciem pliku do przeglądania lub edycji konieczne będzie samodzielne rozpakowanie pliku.

Ta sytuacja nie jest uważana za błąd programu. Nie będziemy walczyć z próbami innych autorów programów, aby chronić swoje dzieła przed hakerami, ani wspierać rozpakowywania kilkudziesięciu różnych pakerów, zarówno produktów komercyjnych, jak i produktów domowych.

2. Błąd: plik jest zdefiniowany jako 16-bitowy plik wykonywalny NE. Ten format nie jest obsługiwany!

Nasze programy działają tylko z 32- i 64-bitowymi plikami PE. Format NE (skrót od „New Executable”) to 16-bitowy format aplikacji, będący pozostałością po starszych wersjach systemu Windows 3.xx. Wraz z pojawieniem się systemu Windows 95 format ten jest uważany za przestarzały i nie jest używany, chociaż można go wykonać na nowoczesnych platformach firmy Microsoft. Nie obsługujemy plików 16-bitowych i nie mamy zamiaru ich wspierać.

3. Błąd: plik nie jest plikiem EXE ani DLL. W ogóle!

Resource Tuner nie wykrywa pliku według rozszerzenia. Jeśli zmienisz nazwę rozszerzenia pliku wykonywalnego, powiedzmy, poprawisz .EXE na .TXT lub całkowicie usuniesz rozszerzenie, Resource Tuner nie da się nabrać: podczas otwierania pliku program analizuje nagłówek pliku wewnątrz pliku i w ogóle nie patrzy na rozszerzenie.

Dlatego też, jeśli Resource Tuner poinformuje Cię, że plik nie jest wykonywalny, oznacza to, że tak jest. Jeśli z jakiegoś powodu ktoś dodał rozszerzenie .DLL do pliku tekstowego w pakiecie gry, wówczas plik ten nie przestaje być tekstem i nie staje się biblioteką dynamiczną. Nie daj się zwieść rozszerzeniu pliku.

Które pliki nie mają sensu otwierać w edytorze zasobów?

Pomimo faktu, że Resource Tuner jest przeznaczony do otwierania i edytowania dowolnych 32/64-bitowych plików wykonywalnych, istnieją pewne typy plików EXE, które praktycznie nie mają żadnych zasobów.

1. Pliki utworzone przy użyciu Visual Basic.

W takich plikach w sekcji zasobów nie ma nic poza ikoną i informacją o wersji. Linie i dialogi w programach napisanych w Visual BASIC są przechowywane w ich własnym, zastrzeżonym formacie i nie korzystają ze standardowej sekcji zasobów.

2. Pliki EXE o rozmiarze gigabajtów lub większym.

Ponieważ Resource Tuner jest programem 32-bitowym, istnieją naturalne ograniczenia dotyczące umieszczania obrazu otwieranego pliku w pamięci wirtualnej w obrębie pierwszego gigabajta. Plik o rozmiarze gigabajta lub większym po prostu się tam nie zmieści.

3. Samorozpakowujące się archiwa w formie plików EXE.

W takich plikach w zasobach nie ma nic poza ikoną i informacją o wersji, a może nawet i tym. Zasadniczo są to dane archiwalne wyposażone w podprogram rozpakowywania.

4. Instalatory innych programów.

W takich plikach nie ma nic w zasobach poza ikoną i informacją o wersji. Bardzo podobnie jak w punkcie 3. Plik instalatora można traktować jako kontener zawierający inny plik .EXE w postaci skompresowanej oraz procedurę jego wyodrębnienia. Ponadto programy do tworzenia instalatorów wykorzystują różne algorytmy do przechowywania w sobie zarchiwizowanych danych.

Pobierz bezpłatną wersję próbną!


Tuner zasobów działa wszystkie wersje Windowsa
od 2000 i XP do 8 i 10.

Minimalne wymagania systemowe:
Procesor Intel Pentium® lub AMD K5 166 MHz
16MB RAM


Niekiedy błędy systemowe związane z plikiem CODE.EXE i innymi plikami EXE mogą wynikać z problemów w rejestrze systemu Windows. Kilka programów może korzystać z pliku CODE.EXE, jednak w momencie ich odinstalowania lub modyfikacji pozostawiane są niekiedy „osierocone” (nieprawidłowe) wpisy rejestru związane z EXE.

Zasadniczo oznacza to, że chociaż rzeczywista ścieżka pliku mogła się zmienić, jego poprzednia niepoprawna lokalizacja jest nadal rejestrowana w rejestrze systemu Windows. Gdy system Windows próbuje wyszukać nieprawidłowe odniesienia do plików (lokalizacje plików na komputerze), mogą wystąpić błędy CODE.EXE. Ponadto infekcja złośliwym oprogramowaniem może spowodować uszkodzenie wpisów rejestru związanych z Game Cracker. Dlatego należy naprawić te uszkodzone wpisy rejestru EXE, aby rozwiązać problem u źródła.

Ręczna edycja rejestru systemu Windows w celu usunięcia nieprawidłowych kluczy CODE.EXE nie jest zalecana, chyba że jesteś profesjonalistą w serwisie komputerów. Błędy popełnione podczas edycji rejestru mogą spowodować, że komputer przestanie działać i spowodować nieodwracalne uszkodzenie systemu operacyjnego. W rzeczywistości nawet jeden przecinek umieszczony w niewłaściwym miejscu może uniemożliwić uruchomienie komputera!

Ze względu na to ryzyko zdecydowanie zalecamy korzystanie z zaufanego narzędzia do czyszczenia rejestru, takiego jak %%product%% (opracowanego przez partnera z certyfikatem Microsoft Gold Certified), do skanowania i naprawiania wszelkich problemów w rejestrze związanych z CODE.EXE. Za pomocą narzędzia do czyszczenia rejestru można zautomatyzować proces znajdowania uszkodzonych wpisów rejestru, brakujących odniesień do plików (np. tych powodujących błąd CODE.EXE) oraz uszkodzonych łączy w rejestrze. Przed każdym skanowaniem automatycznie tworzona jest kopia zapasowa, która pozwala cofnąć zmiany jednym kliknięciem i chroni Cię przed możliwym uszkodzeniem komputera. Najlepsze jest to, że wyeliminowanie błędów rejestru może radykalnie poprawić szybkość i wydajność systemu.


Ostrzeżenie: Jeśli nie jesteś doświadczonym użytkownikiem komputera, NIE zalecamy ręcznej edycji rejestru systemu Windows. Nieprawidłowe użycie Edytora rejestru może być przyczyną poważnych problemów, które spowodują, że konieczna będzie ponowna instalacja systemu Windows. Nie gwarantujemy, że problemy wynikające z nieprawidłowego użycia Edytora rejestru będą mogły zostać naprawione. Korzystasz z Edytora rejestru na własne ryzyko.

Przed ręczną naprawą rejestru systemu Windows należy utworzyć kopię zapasową, eksportując część rejestru powiązaną z plikiem CODE.EXE (np. Game Cracker):

  1. Kliknij przycisk Zaczynać.
  2. Wchodzić " Komenda„W pasek wyszukiwania... NIE KLIKAJ JESZCZE WCHODZIĆ!
  3. Przytrzymując klawisze CTRL-Shift na klawiaturze naciśnij WCHODZIĆ.
  4. Wyświetlone zostanie okno dialogowe umożliwiające dostęp.
  5. Kliknij Tak.
  6. Otwiera się czarna skrzynka z migającym kursorem.
  7. Wchodzić " regedit" i naciśnij WCHODZIĆ.
  8. W Edytorze rejestru wybierz klucz związany z plikiem CODE.EXE (np. Game Cracker), dla którego chcesz utworzyć kopię zapasową.
  9. W menu Plik wybierać Eksport.
  10. Na liście Zapisz do wybierz folder, w którym chcesz zapisać kopię zapasową klucza Game Cracker.
  11. W polu Nazwa pliku Wprowadź nazwę pliku kopii zapasowej, na przykład „kopia zapasowa Game Cracker”.
  12. Upewnij się, że pole Zakres eksportu wybrana wartość Wybrany oddział.
  13. Kliknij Ratować.
  14. Plik zostanie zapisany z rozszerzeniem .reg.
  15. Utworzono kopię zapasową wpisu rejestru związanego z plikiem CODE.EXE.

Poniższe kroki dotyczące ręcznej edycji rejestru nie zostaną opisane w tym artykule, ponieważ mogą spowodować uszkodzenie systemu. Jeśli chcesz uzyskać więcej informacji na temat ręcznej edycji rejestru, skorzystaj z poniższych łączy.

*** WSZYSTKO NAPISANE POWINNO BYĆ WYKORZYSTANE WYŁĄCZNIE DO CELÓW EDUKACYJNYCH! ***

-Narzędzia-
OLLYDBG
Aplikacja, do której wstawimy nasz kod.
To będzie NOTATNIK.EXE.
Wskazane jest wykonanie kopii pliku.
To wszystko

-Początek-
Naszym celem jest wklejenie naszego kodu do Notepad.EXE.
Wkleimy proste Skrzynka pocztowa do uruchomienia Notatnik.
Uruchommy Zeszyt i upewnij się, że uruchamia się normalnie.

Jeśli jesteś pewien, że to oryginał Notatnik.exe, otwórz go Olly.
Pojawi się następujące okno:

Aby wstawić nasz kod potrzebujemy na to miejsca w kodzie programu.
W plikach exe znajduje się wiele rzeczy KodJaskinie. Są to bajty ( DB 00).
Wystarczy przewinąć kod programu nieco poniżej początku i zobaczysz KodJaskinia:


Czerwony prostokąt podkreśla element z KodJaskinia"Jestem?
Możesz wstawić tutaj dowolny kod, a Twój program nie ulegnie awarii.
Jeśli znasz funkcję API, którą możesz wywołać Skrzynka pocztowa po prostu pomiń te linie.

***** ZACZNIJ CYTAT OD PODRĘCZNIKA PROGRAMATORA WIN32

Funkcja MessageBox tworzy, wyświetla i obsługuje okno komunikatu.
Okno komunikatu zawiera komunikat i tytuł zdefiniowany przez aplikację,
plus dowolna kombinacja predefiniowanych ikon i przycisków.

Int MessageBox(
HWND hWnd, // uchwyt okna właściciela
LPCTSTR lpText, // adres tekstu w oknie komunikatu
LPCTSTR lpCaption, // adres tytułu okna wiadomości
UINT uType // styl okna wiadomości
);

***** KOŃCOWY CYTAT Z PODRĘCZNIKA PROGRAMATORA WIN32

Kliknij aby rozszerzyć...

To wszystko, co musisz wiedzieć Skrzynka pocztowa.
Zróbmy coś z KodJaskinie.
W celu wykorzystania Skrzynka pocztowa, musimy utworzyć tekst, w którym będziemy wyświetlać
Skrzynka pocztowa. Na następnym zdjęciu podkreśliłem kilka linii za pomocą KodJaskinie I
pokazał menu BinarnyEdytuj dla Ciebie (będziemy tego potrzebować).


Jeśli naciśniesz Binarny=>Edytuj lub (CTRL+E) zobaczysz następujące okno.
Po prostu wypełnij górne pole w ten sam sposób, co ja.
Kliknij OK, a zobaczysz zmodyfikowany kod (podświetlony na czerwono):
Teraz naciśnij CTRL+A, aby ponownie przeanalizować kod.
OK! Teraz, jeśli chcesz zmienić tytuł wiadomości, zduplikuj tę linię
(to jest jak drugi parametr wywołania procedury).

-Mały asembler-

Nadszedł czas JAKO M. A
Oto dobry przykład!

NACIŚNIJ 0 ; PRZYCISKI =<ТОЛЬКО КНОПКА OK>
NACIŚNIJ 1008751 ; NAPIS = NASZ ADRES „WTRYSKOWY NOTATNIK”
NACIŚNIJ 1008751 ; WIADOMOŚĆ = TO SAMO.
NACIŚNIJ 0 ; IKONA =<БЕЗ ИКОНКИ>
ZADZWOŃ MessageBoxA; Wywołaj MessageBoxA z określonymi parametrami.

Kliknij aby rozszerzyć...

Linie te weszły Ollie będzie wyglądać tak:

Widzisz strzałkę?! TO JEST BARDZO WAŻNE!
Przecież jeśli po prostu uruchomimy program, nic się nie stanie. Dlaczego?
Bo nasza mała procedura nie została jeszcze nigdzie wywołana!
Należy zapisać adres jego początku, tj. adres " NACIŚNIJ 0„, bo musimy wykonać skok
do naszej procedury i wróć
Świetnie. Teraz wróć do początku programu ( przycisk C na pasku narzędzi Ollie lub jak na rysunku).

Teraz jesteśmy w pierwszej linii, która zostanie wykonana.
Pamiętasz jeszcze, że naszym celem jest wstawienie Twojego kodu?
Wtedy będziemy kontynuować!
Wybierz kilka linii od początku i skopiuj je do schowka.


Wklej je do dowolnego reaktora tekstowego - przydadzą się nam później.
Wróć ponownie do początku programu.
(Powyższe zdjęcie jest Pchnij 70).
Dwukrotne kliknięcie tej linii wyświetli nam następujące okno.
Musisz wpisać " JMP<адрес PUSH 0, который мы записывали ранее> "
Kliknij przycisk Asembluj, a kod programu zmieni się ponownie, tj. zmiany zostaną podświetlone na czerwono.

Spójrz na czerwony prostokąt! Jest to adres, pod który musimy przejść, gdy nasz kod będzie gotowy.
Ale jeśli skoczymy tutaj po wstrzyknięciu, program wykona się tak, jakby bez niego
Jest więc jeszcze jedna rzecz do zrobienia!
Porównaj nowy początek programu ze starym, który skopiowaliśmy do edytora tekstu.
Zobaczysz, że dwie linijki zostały przepisane! Ale potrzebujemy ich do normalnej pracy.
programy bez błędów. Znajdź linie, które zostały nadpisane.
W moim przypadku był to następujący kod:

Pchnij 70
PUSH NOTATNIK.01001898

Kliknij aby rozszerzyć...

Kliknij pierwszą linijkę kodu (nasz JMP) i naciśnij WCHODZIĆ.
Zostaniesz przeniesiony do wstawionego kodu wywołującego MessageBox!
Po ZADZWOŃ MessageBoxA będziemy musieli wstawić te dwie linie ORAZ cofnąć się!


TO WSZYSTKO!
(Łatwo sprawdzić, czy skok działa poprawnie - kliknij na niego WCHODZIĆ!)
Aby zapisać nasz „zmodyfikowany” Notatnik postępuj zgodnie z instrukcjami jak na obrazku:
Następnie naciśnij Skopiuj wszystko. W wyświetlonym oknie kliknij prawym przyciskiem myszy
wybierz pozycję menu Zapisz plik i zapisz pod nową nazwą. Uruchom plik:

Dodanej funkcji nie należy wywoływać bezpośrednio, jak napisano w artykule, ale w nieco inny sposób.

Najpierw po dodaniu procedury do importu trzeba ją poznać FT (FirstThunk „IAT”). Jest wyświetlany tutaj:

Pamiętam!(Zadzwonię do niego Prawdziwy adres)​


Przejdźmy teraz do miejsca, w którym napiszemy nasz kod ( Jaskinie Kodowe).
Dodajmy teraz poprawne wywołanie naszej funkcji MessageBoxA. W tym celu piszemy:

JMP [[B]TrueAdres]

Jeśli Olly automatycznie zidentyfikował nowy kod jako wywołanie procedury - to jest bardzo, bardzo dobre! Więc dalej będzie łatwiej. Jeśli nie, oznacza to, że błędnie obliczyłeś adres importu. Podwójne sprawdzenie!
Zapisz adres tego JMP(Zadzwonię do niego Prawdziwe połączenie).

Teraz robimy wszystko jak w artykule (wstawianie linii, PUSH itp.), ale zamiast:

Zadzwoń do MessageBoxA

musisz napisać:

Zadzwoń[B]TrueCall

Reszta pozostaje taka sama.

Kliknij aby rozszerzyć...

Niemożliwe jest ujawnienie kodu źródłowego, jeśli starano się zapewnić bezpieczeństwo (zwłaszcza jeśli jest to przedmiot zastrzeżony).

Istnieją jednak sposoby na pełne lub częściowe ujawnienie kodu.

  • IDA Pro to najlepszy darmowy cracker, niektóre makra mogą pozwolić na ponowną konwersję kodu. Ale nie zawsze. Produkty Borland są szczególnie dobre.
  • Hiew.Exe to darmowe narzędzie, bardzo małe, które pozwala na edycję kodu języka asemblerowego. Można edytować stałe tekstowe i całkowite. Można go nawet użyć do „przetłumaczenia” programu na inny język, usunięcia nazwy firmy itp.
  • Jeśli istnieje plik PDB lub do pliku dołączone są informacje o debugowaniu, to kod można uzyskać w środowisku programistycznym (jeśli informacje o debugowaniu są kompletne) można go rzadko używać. Uzyskanie kodu źródłowego jest niemożliwe, ale można uzyskać „numery linii i nazwy źródeł”, a także nazwy/wartości wszystkich stałych, zmiennych lokalnych, uniknąć „fragmentacji funkcji”, a także uzyskać klasy z wypełnianiem klas (prawie wszystkie struktury z wyjątkiem tekstu programu), które znacznie uproszczą zrozumienie działania programu. W przypadku niektórych bibliotek (dll) pliki pdb można pobrać osobno. Jest mało prawdopodobne, aby szanująca się firma pozwoliła na wyciek WPB swojego cennego produktu.
  • Informacje o debugowaniu, w pliku exe znajdują się informacje DebugInfo. Jeśli istnieją takie informacje i odpowiednie narzędzie (na przykład Delphi jest skompilowany na Borlandzie i jest dostępny), możesz zrobić coś podobnego do poprzedniego punktu. Ale jest mało prawdopodobne, aby szanująca się firma popełniła tak „głupi” błąd (podobny do pdb).
  • Jeżeli plik jest napisany w C#, to można go niemal w całości obejrzeć w kodzie przy pomocy disSharp (takie programy „wprowadzają” do tabeli importu tylko mscorlib i tyle). DisSharp słabo radzi sobie z demontażem niektórych części programu, ale być może jego płatna wersja lub płatne wersje podobnych narzędzi lepiej ujawniają kod.
  • Jeśli plik jest napisany w FoxPro, Clipper i innych podobnych językach z kodem bajtowym, otwierają go specjalne narzędzia (na przykład Refox).
  • Narzędzie exescope.exe ResourceHacker.exe i podobne narzędzia umożliwiają przeglądanie nagłówka, podłączonych bibliotek (za ich pomocą można zrozumieć w jakim napisany jest program) i edytować zasoby programu (formularze zasobów, w tym Delphi, ikony, obrazy, tabele ciągów zasobów).
  • Jeśli wiadomo, jak powstał kod, myślę, że istnieją specjalne narzędzia, które mogą go otworzyć (są płatne i niedostępne).

Ponownie pod warunkiem, że nie ma programu pakującego kod (wtedy trzeba najpierw zastosować depakator), szyfrującego/samomodyfikującego się kodu. Jeśli nie zostanie uszkodzony przez zaciemniacz, nie można go rozwikłać. Im większy kod, tym trudniej go zrozumieć.

P.S. Osobiście uważam, że wszystko zostaje ujawnione i zhakowane, ale zajmuje to dużo, dużo czasu. Być może rok lub dłużej (w zależności od doświadczenia i narzędzi, nie ma ogólnie dostępnych dobrych narzędzi).