Menu
Jest wolny
rejestracja
Dom  /  Rada/ Otwórz kod programu exe. Jak otworzyć plik .dll lub .EXE w edytorze zasobów?

Otwórz kod programu exe. Jak otworzyć plik .dll lub .EXE w edytorze zasobów?

*** WSZYSTKIE PISEMNE WYKORZYSTANIE WYŁĄCZNIE DO CELÓW EDUKACYJNYCH! ***

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

-Początek-
Naszym celem jest wklejenie naszego kodu do Notepad.EXE.
Wkleimy prosty Skrzynka pocztowa Wystrzelić Notatnik.
Biegnijmy Zeszyt i upewnij się, że zaczyna się dobrze.

Jeśli masz pewność, że to jest oryginalne Notepad.exe, otwórz to za Olly.
Pojawi się następujące okno:

Aby wstawić nasz kod potrzebujemy na to miejsca w kodzie programu.
W plikach exe jest ich wiele CodeCaves... To są bajty ( DB 00).
Wystarczy przewinąć kod programu nieco poniżej początku, a zobaczysz CodeCave:


Element z czerwonym prostokątem jest podświetlony. CodeCave"Amy?
Tutaj możesz wstawić dowolny kod, a Twój program nie zostanie wyleczony.
Jeśli znasz funkcję API do wywołania Skrzynka pocztowa po prostu pomiń te wiersze.

***** ROZPOCZNIJ CYTAT Z INSTRUKCJI PROGRAMATORA WIN32

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

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

***** KONIEC CYTATU Z INSTRUKCJI PROGRAMATORA WIN32

Kliknij aby rozszerzyć ...

To wszystko, o czym trzeba wiedzieć Skrzynka pocztowa.
Zróbmy coś z CodeCaves.
W celu wykorzystania Skrzynka pocztowa, musimy utworzyć tekst, do którego wypiszemy
Skrzynka pocztowa... Na następnym obrazku zaznaczyłem kilka linii za pomocą CodeCaves oraz
pokazałem menu BinarnyEdytuj dla Ciebie (przyda się nam).


Jeśli nacisnąłeś Binarny => Edytuj lub (CTRL + E) zobaczysz następujące okno.
Po prostu wypełnij górne pole w taki sam sposób, jak 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ę
(jest to jak drugi parametr wywołania procedury).

-Trochę asemblera-

Czas na JAKO M a
Oto dobry przykład!

NACIŚNIJ 0; PRZYCISKI =<ТОЛЬКО КНОПКА OK>
WCIŚNIJ 1008751; PODPIS = NASZ ADRES "NOTNIK WTRYSKU"
WCIŚNIJ 1008751; KOMUNIKAT = TO SAMO.
NACIŚNIJ 0; IKONA =<БЕЗ ИКОНКИ>
CALL MessageBoxA; Wywołanie MessageBoxA z określonymi parametrami.

Kliknij aby rozszerzyć ...

Te wiersze wprowadzone w Ollie będzie wyglądać tak:

Czy widzisz strzałkę?! TO JEST BARDZO WAŻNE!
W końcu, jeśli po prostu uruchomimy program, nic się nie stanie. Czemu?
Ponieważ nasza mała procedura nie została jeszcze nigdzie wywołana!
Musisz wpisać adres jego początku, czyli adres " NACIŚNIJ 0", bo musimy zrobić skok
do naszej procedury i wróć
W porządku. Teraz wróć do początku programu ( Przycisk C na pasku narzędzi Ollie lub jak na zdjęciu).

Teraz jesteśmy w pierwszej linii do wykonania.
Pamiętasz jeszcze, że naszym celem jest wstawienie własnego kodu?
Wtedy będziemy kontynuować!
Wybierz kilka wierszy od początku i skopiuj je do schowka.


Wklej je do dowolnego reaktora tekstowego - przydadzą się nam ponownie.
Wróć do początku programu.
(Na powyższym obrazku jest WCIŚNIJ 70).
Dwukrotne kliknięcie tej linii otworzy nam następujące okno.
Musisz do niego wejść ” JMP<адрес PUSH 0, который мы записывали ранее> "
Naciśnij przycisk Złóż, a kod programu zmieni się ponownie, tj. zmiany są podświetlone na czerwono.

Spójrz na czerwony prostokąt! Musimy przejść do tego adresu po zakończeniu naszego kodu.
Ale jeśli wskoczymy tutaj po wstrzyknięciu, program zostanie wykonany jakby bez niego.
Więc jest 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ź wiersze, które zostały nadpisane.
W moim przypadku był to kod:

WCIŚNIJ 70
NOTATNIK PRZYCISKOWY.01001898

Kliknij aby rozszerzyć ...

Kliknij pierwszy wiersz kodu (nasz JMP) i naciśnij WEJŚĆ.
Zostaniesz przeniesiony do wprowadzonego kodu połączenia MessageBox!
Później CALL MessageBox A będziemy musieli wstawić te dwie linie I skoczyć z powrotem!


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

Dodaną funkcję należy wywołać nie bezpośrednio, jak napisano w artykule, ale w nieco inny sposób.

Po pierwsze, po dodaniu procedury do importów, musisz ją znać FT (FirstThunk „IAT”)... Jest wyświetlany tutaj:

Pamiętam!(nazwę to) TrueAdres)​


Przejdźmy teraz do miejsca, w którym napiszemy nasz kod ( Jaskinie kodu).
Dodajmy teraz poprawne wywołanie do naszej funkcji Pole wiadomości A... Aby to zrobić, napisz:

JMP [[B] Rzeczywisty adres]

Gdyby Olly automatycznie wykrywa nowy kod jako wywołanie procedury - bardzo, bardzo dobrze! Oznacza to, że dalej będzie łatwiej. Jeśli nie, to błędnie obliczyłeś adres importu. Sprawdź ponownie!
Zapisz adres tego JMP(nazwę to) TrueCall).

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

Zadzwoń do skrzynki wiadomości A

musisz napisać:

Zadzwoń [B] TrueCall

Reszta pozostaje taka sama.

Kliknij aby rozszerzyć ...


Niekiedy błędy systemowe związane z plikiem CODE.EXE i innymi plikami EXE mogą wynikać z problemów występujących w rejestrze systemu Windows. Kilka programów może współdzielić ten sam plik CODE.EXE, ale po odinstalowaniu lub zmianie tych programów czasami pozostają osierocone (nieprawidłowe) wpisy rejestru EXE.

Zasadniczo oznacza to, że chociaż rzeczywista ścieżka do pliku mogła ulec zmianie, jego niepoprawna poprzednia lokalizacja jest nadal rejestrowana w rejestrze systemu Windows. Gdy system Windows próbuje odszukać nieprawidłowe odwołania do tych plików (lokalizacje pliku na komputerze), występują błędy związane z plikiem CODE.EXE. Ponadto zainfekowanie złośliwym oprogramowaniem może spowodować uszkodzenie wpisów rejestru związanych z Game Cracker. Dlatego te nieprawidłowe wpisy rejestru EXE należy naprawić, aby naprawić źródło problemu.

Ręczne edytowanie rejestru systemu Windows w celu usunięcia nieprawidłowych kluczy CODE.EXE nie jest zalecane, chyba że jesteś profesjonalistą w zakresie obsługi komputera. Błędy popełnione podczas edycji rejestru mogą spowodować nieprawidłowe działanie komputera i nieodwracalne uszkodzenie systemu operacyjnego. W rzeczywistości nawet pojedynczy przecinek 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 Microsoft Gold Certified Partner), w celu skanowania i naprawy wszelkich problemów w rejestrze związanych z plikiem CODE.EXE. Korzystanie z narzędzia do czyszczenia rejestru automatyzuje proces wyszukiwania nieprawidłowych wpisów rejestru, brakujących odniesień do plików (np. powodujących błąd CODE.EXE) i uszkodzonych linków w rejestrze. Przed każdym skanowaniem automatycznie tworzona jest kopia zapasowa, umożliwiająca cofnięcie wszelkich zmian jednym kliknięciem i chroniąca przed możliwym uszkodzeniem komputera. Najlepsze jest to, że naprawienie błędów rejestru może znacznie 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 korzystanie z Edytora rejestru może prowadzić do poważnych problemów i wymagać ponownej instalacji systemu Windows. Nie gwarantujemy rozwiązania problemów wynikających z niewłaściwego korzystania z Edytora rejestru. Korzystanie z Edytora rejestru odbywa się na własne ryzyko.

Aby ręcznie naprawić rejestr systemu Windows, musisz najpierw utworzyć kopię zapasową, eksportując część rejestru związaną z plikiem CODE.EXE (np.Game Cracker):

  1. Kliknij przycisk Rozpocząć.
  2. Wejść " Komenda" v pasek wyszukiwania ... NIE NACISKAJ JESZCZE WEJŚĆ!
  3. Trzymanie klawiszy CTRL+Shift na klawiaturze naciśnij WEJŚĆ.
  4. Wyświetlone zostanie okno dialogowe dostępu.
  5. Kliknij tak.
  6. Czarna ramka otwiera się z migającym kursorem.
  7. Wejść " regedit" i naciśnij WEJŚĆ.
  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ć klucz zapasowy Game Cracker.
  11. W terenie Nazwa pliku wpisz nazwę pliku kopii zapasowej, np. „Game Cracker Backup”.
  12. Upewnij się, że w pudełku Zakres eksportu wybrana wartość Wybrany oddział.
  13. Kliknij Zapisać.
  14. Plik zostanie zapisany z rozszerzeniem .reg.
  15. Utworzono kopię zapasową wpisu rejestru związanego z plikiem CODE.EXE.

Kolejne kroki ręcznego edytowania rejestru nie zostaną opisane w tym artykule, ponieważ najprawdopodobniej mogą uszkodzić system. Jeśli chcesz uzyskać więcej informacji na temat ręcznej edycji rejestru, skorzystaj z poniższych łączy.

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

Należy jednak pamiętać, że zasoby w pliku wykonywalnym są odseparowane od kodu programu, a zmieniając interfejs programu nie uzyskuje się dostępu do kodu programu. Za pomocą edytora zasobów możesz zmieniać elementy sterujące programu. Za pomocą edytora zasobów nie można zmienić kodu programu.

W przypadku poważniejszych zmian (które jednak nie doprowadzą do niczego dobrego bez odpowiedniego doświadczenia w programowaniu aplikacji dla systemu Windows) zalecamy użycie PE Explorera (edytor struktury plików PE) lub FlexHex (edytor hex dla plików binarnych).

Otwieranie pliku EXE lub DLL w Resource Tuner

Obsługuje kilka 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 obok przycisku na pasku narzędzi zapewnia szybki dostęp do listy ostatnio otwieranych plików. Tę samą listę można uzyskać za pomocą polecenia Plik > Ostatnie pliki z menu programu. Liczba plików na liście jest konfigurowana 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ą dostrajania zasobów z menu kontekstowego.

Możesz też po prostu przeciągnąć i upuścić ikonę pliku z Eksploratora Windows na ikonę dostrajania zasobów na pulpicie lub do okna dostrajania zasobów.

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

Podczas otwierania pliku Resource Tuner wykonuje kilka automatycznych operacji: rozpakowuje plik, jeśli wykryje, że został spakowany przy użyciu UPX, następnie sprawdza strukturę i zasoby pliku pod kątem ewentualnych błędów, a na końcu odbudowuje uszkodzone zasoby zgodnie z specyfikacja formatu pliku wykonywalnego.

Błędy podczas otwierania pliku

Jeśli podczas otwierania pliku wystąpi błąd, 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 ochraniacz.

Istnieje duże prawdopodobieństwo, że plik zostanie skompresowany w celu zmniejszenia jego rozmiaru. Istnieją dziesiątki programów pakujących i zabezpieczających pliki wykonywalne, a cały czas pojawiają się nowe. Resource Tuner obsługuje rozpakowywanie tylko jednego, ale najpopularniejszego packera - UPX. Pozostałe programy do pakowania nie są obsługiwane i będziesz musiał samodzielnie rozpakować plik, zanim będziesz mógł otworzyć plik do przeglądania lub edycji.

Ta sytuacja nie jest uważana za błąd programu. Nie będziemy walczyć z próbami innych autorów programów chroniących ich twory przed włamaniami, ani wspierać rozpakowywania kilkudziesięciu różnych packerów, wśród których znajdują się zarówno produkty komercyjne, jak i produkty domowej roboty.

2. Błąd: plik jest identyfikowany 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 odziedziczony ze starszych wersji systemu Windows 3.xx. Wraz z pojawieniem się systemu Windows 95 ten format jest uważany za przestarzały i nieużywany, chociaż może być wykonywany na nowoczesnych platformach firmy Microsoft. Nie obsługujemy plików 16-bitowych i nie zamierzamy ich obsługiwać.

3. Błąd: plik nie jest plikiem EXE ani DLL. Ogólnie!

Resource Tuner wykrywa plik nie według rozszerzenia. Jeśli zmienisz nazwę rozszerzenia pliku wykonywalnego, powiedzmy, naprawisz .EXE na .TXT lub całkowicie usuniesz rozszerzenie, Resource Tuner nie da się oszukać tym: program analizuje nagłówek pliku wewnątrz pliku podczas otwierania pliku, ale nie patrzy na przedłużeniu w ogóle.

Dlatego jeśli Resource Tuner powie, że plik nie jest wykonywalny, to tak jest. Jeśli ktoś z jakiegoś powodu dostarczył w dostawie gry plik tekstowy z rozszerzeniem .DLL, to plik ten nie przestaje być plikiem tekstowym 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, w których zasoby są praktycznie nieobecne.

1. Pliki utworzone w Visual Basic.

W takich plikach nie ma nic w sekcji zasobów, z wyjątkiem ikony i informacji o wersji. Linie i dialogi w programach napisanych w Visual BASIC są przechowywane we własnym zamkniętym formacie i nie jest w nich używana standardowa sekcja zasobów.

2. Files.EXE w gigabajtach lub więcej.

Ponieważ Resource Tuner jest programem 32-bitowym, istnieją naturalne ograniczenia dotyczące umieszczania obrazu otwartego pliku w pamięci wirtualnej w obrębie pierwszego gigabajta. Gigabajt lub więcej plików po prostu się tam nie zmieści.

3. Archiwa samorozpakowujące w postaci plików EXE.

W takich plikach nie ma nic w zasobach, z wyjątkiem ikony i informacji o wersji, lub może nie być. W rzeczywistości są to dane zarchiwizowane, zaopatrzone w podprogram do rozpakowania.

4. Instalatorzy innych programów.

W takich plikach nie ma nic w zasobach, z wyjątkiem ikony i informacji o wersji. Są bardzo podobne do pozycji 3. Plik instalatora można traktować jako kontener, który zawiera inny plik .EXE w postaci skompresowanej i podprogram do jego wyodrębnienia. Ponadto programy do tworzenia instalatorów wykorzystują różne algorytmy do przechowywania zarchiwizowanych danych w sobie.

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


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

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

Nie da się otworzyć kodu źródłowego, jeśli staramy się zapewnić to bezpieczeństwo (zwłaszcza jeśli jest to rzecz zastrzeżona).

Ale są sposoby na pełne lub częściowe ujawnienie kodu.

  • IDA Pro to najlepszy darmowy haker, niektóre makra mogą pozwolić na odwrócenie kodu. Ale nie zawsze. Szczególnie dobrze otwierają się produkty firmy Borland.
  • Hiew.Exe to bardzo małe darmowe narzędzie, które pozwala na edycję kodu w języku asemblerowym. Możesz edytować stałe tekstowe i całkowite. Możesz nawet użyć go do „przetłumaczenia” programu na inny język, usunięcia nazwy firmy itp.
  • Jeśli istnieje plik PDB lub do pliku dołączone jest debug-info, to kod można uzyskać w środowisku programistycznym (jeśli debug-info jest kompletne) rzadko może być używany. Nie możesz uzyskać kodu źródłowego, ale możesz uzyskać „numery wierszy i nazwy źródeł”, a także nazwy / wartości wszystkich stałych, zmienne lokalne, uniknąć „fragmentacji funkcji”, a także uzyskać klasy z upychaniem klas (prawie wszystkie struktury z wyjątkiem tekstu programu), co znacznie uprości zrozumienie programu. W przypadku niektórych bibliotek (dll) pliki pdb można pobrać osobno. Jest mało prawdopodobne, aby szanująca się firma ujawniła plik pdb swojego wartościowego produktu.
  • Informacje o debugowaniu, w pliku exe osadzone są informacje DebugInfo. Jeśli istnieją takie informacje i odpowiednie narzędzie (na przykład Borland Delphi jest skompilowane i dostępne), możesz zrobić coś podobnego do poprzedniego punktu. Ale szanująca się firma raczej nie popełni takiego „głupiego” błędu (podobnie jak w przypadku pdb).
  • Jeśli plik jest napisany w C#, można go prawie w całości wyświetlić w kodach za pomocą disSharp (takie programy „zawierają” tylko mscorlib w tabeli importu i tyle). DisSharp słabo deasembluje niektóre części programu, ale jego płatna wersja lub płatna wersja podobnych narzędzi może lepiej ujawniać kod.
  • Jeśli plik jest napisany w FoxPro, Clipper i innych podobnych językach kodu bajtowego, jest rozszerzany przez 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 Rozumiesz na czym napisany jest program) i edytuj zasoby programu (formularze zasobów, w tym delphi, ikony, obrazki, tabele linii zasobów).
  • Jeśli wiesz, jak powstał kod, myślę, że istnieją specjalne narzędzia, które mogą go otworzyć (są płatne i niedostępne).

Znowu jest to pod warunkiem, że nie ma pakera kodu (wtedy musisz najpierw zastosować depacker), szyfru / kodu samomodyfikującego się. Jeśli nie zostanie złamany przez zaciemniacz, więc nie rozplątuj. Im większy kod, tym trudniej go rozgryźć.

PS Osobiście uważam, że wszystko jest ujawniane i hackowane, ale zajmuje to dużo, dużo czasu. Być może rok lub dłużej (zależy to od doświadczenia i narzędzi, nie ma dobrych narzędzi w domenie publicznej).