Resource Cracker to darmowy program dla Windows do podglądu i edycji zasobów w plikach wykonywalnych oraz w samodzielnych plikach zasobów. Otwórz plik, wybierz zasób i obejrzyj go jako podgląd, edytor strukturalny albo surowe bajty.
Rodzaj pliku jest rozpoznawany po zawartości, nie tylko po rozszerzeniu. Kilka plików może być otwartych jednocześnie. Każdy plik to karta. Przeciągnij kartę, żeby zmienić kolejność. Środkowy przycisk myszy albo Ctrl+W zamyka kartę.
Lewy panel to drzewo zasobów. Typy są rodzicami. Zasób jest pokazany jako nazwa i język, na przykład 1 [1033]. Typ oznaczony * ma pod sobą zmieniony albo nowy zasób. Nowy zasób jest rysowany na zielono.
Prawy panel ma trzy widoki zaznaczenia: Podgląd, Edytor i Hex edytor. Ctrl+1 do Ctrl+4 przełącza otwarte widoki. Te same operacje dodawania, zastępowania, usuwania i zapisu są dostępne z wiersza poleceń.
Upuść plik na okno albo użyj Ctrl+O. Upuść folder, żeby przeszukać go w poszukiwaniu modułów. Plik, Otwórz przy użyciu ładowarki Windows pokazuje moduł tak, jak widzi go ładowarka Windows. Ten widok jest tylko do odczytu.
| Format | Rozszerzenia | Uwagi |
|---|---|---|
.exe .dll .ocx .cpl .scr .sys .drv .ax .efi |
Edycja i zapis. | |
.exe .dll .drv |
Zapis przepisuje tablicę zasobów i bajty zasobów. Nie przesuwa segmentów programu. Zapis jest odrzucany, a plik zostaje bez zmian, gdy nowa tablica nachodziłaby na segment albo inny zasób, zasób jest większy niż jeden wpis NE, nazwa jest dłuższa niż 255 bajtów, identyfikator całkowity jest powyżej 32767, zasób został obcięty przy odczycie albo jeden typ ma więcej zasobów, niż mieści lista typów NE. | |
.exe .dll |
Zasoby Win32. Węzeł Zasoby zarządzane wymienia zasoby zarządzane. To nie jest zasób Win32, który się przepisuje. | |
.exe .dll |
Edycja katalogu zasobów Win32. | |
.exe .dll |
Edycja katalogu zasobów Win32. | |
.exe .dll |
Obrazy mixed-mode. Zasoby Win32 edytuje się tak jak w natywnym PE. | |
.winmd |
Pliki WinMD, które mają katalog zasobów. | |
.netmodule |
Samodzielne moduły .NET. | |
.mui .mun |
Zasoby Multilingual User Interface. | |
.res |
Otwieranie, edycja i zapis skompilowanego pliku zasobów. | |
.rc |
Edycja w oknie. Kompilacja do .res z wiersza poleceń. |
|
| Folder upuszczony na okno jest przeszukiwany w poszukiwaniu modułów. |
Podgląd obrazu. Malowanie w edytorze obrazów. Eksport jako PNG, BMP, JPEG, GIF, TIFF albo WebP. Podmiana obrazu przez upuszczenie pliku na podgląd.
Grupy ikon i kursorów są właścicielami pojedynczych obrazów. Edycja grupy aktualizuje te obrazy razem. W masce wiersza poleceń ICON oznacza grupę ikon, a CURSOR grupę kursorów, nie pojedynczy obraz.
Grupa ikon eksportuje się jako .ico. Grupa kursorów jako .cur.
Po zaznaczeniu dialogu podgląd rysuje go z szablonu zasobu: kontrolki, podpisy i style.
Ten sam dialog można otworzyć w projektancie wizualnym albo jako skrypt .rc. Ctrl+1, Ctrl+2 i Ctrl+3 przełączają widoki otwarte dla zaznaczenia.
Klawisze strzałek przesuwają zaznaczone kontrolki. Ctrl przesuwa o jedną jednostkę dialogową. Shift zmienia rozmiar. Ctrl+klik albo Shift+klik dodaje do zaznaczenia. Przeciągnięcie po pustym miejscu rysuje ramkę zaznaczenia.
Del usuwa zaznaczone kontrolki. Ctrl+C, Ctrl+X i Ctrl+V kopiują, wycinają i wklejają. Esc czyści zaznaczenie i wychodzi z trybu kolejności tabulacji.
Delphi trzyma formularze VCL jako zasoby w stylu dialogu. Otwórz plik wykonywalny, zaznacz formularz i edytuj go w projektancie albo jako skrypt, tak samo jak standardowe RT_DIALOG.
Menu. Podgląd menu. Edycja pozycji w edytorze menu albo jako skrypt. Alt+Up i Alt+Down przesuwają pozycję. Alt+Left zmniejsza wcięcie. Alt+Right zwiększa wcięcie. Insert dodaje pozycję. Del ją usuwa.
Tabela łańcuchów. Blok ma szesnaście łańcuchów. Edycja w siatce.
Akceleratory. Edycja tabeli skrótów.
Wersja. Edycja stałych pól VS_FIXEDFILEINFO i tabel łańcuchów (komentarz, firma, wersja pliku, nazwa produktu i pozostałe).
RT_MANIFEST jest pokazany jako XML. Dokument edytuje się w miejscu. Edytor oznacza typowe problemy w tożsamości zestawu, sekcji zgodności i żądanym poziomie wykonania.
16-bitowy New Executable można edytować i zapisać. Zapis przepisuje zasoby w miejscu. Jeśli nowa tablica zasobów albo zasób nie mieści się w formacie NE, zapis się zatrzymuje, a oryginalny plik zostaje bez zmian.
Podgląd i edytory strukturalne obsługują te same typy co w pliku PE: ikony, dialogi, menu, łańcuchy i informacje o wersji.
Każdy zasób można edytować jako surowe bajty. Ctrl+G przechodzi do offsetu. Insert przełącza wstawianie i nadpisywanie. Bajty w wierszu i grupowanie ustawia się w Narzędzia, Opcje, Hex edytor.
Typy niestandardowe (liczba albo nazwa spoza standardowych typów RT_) są pokazane jako #numer albo jako nazwa typu. Otwierają się w hex edytorze i można je zrzucić jako surowe bajty.
Zasoby, które da się opisać skryptem (dialogi, menu, tabele łańcuchów, akceleratory, informacje o wersji), można edytować jako tekst skryptu zasobów i wyeksportować jako plik .rc.
Widok skryptu i edytor wizualny zapisują ten sam zasób. Użyj tego, w którym zmiana jest krótsza.
Plik .res to katalog zasobów bez nagłówka PE. Otwórz go, edytuj dowolny zasób i zapisz z powrotem. Zasoby można też kopiować między plikiem .res a plikiem wykonywalnym.
Otwórz skrypt .rc w oknie i edytuj go jako tekst. Z wiersza poleceń -action compile kompiluje plik .rc (-open) do pliku .res (-save). Kompilacja jest używana osobno, nie razem z innymi akcjami, i nie jest krokiem wewnątrz pliku skryptu.
Ctrl+E zapisuje zasób w innym formacie, gdy taki format istnieje. Bitmapy, ikony i kursory można zapisać jako PNG, BMP, JPEG, GIF, TIFF albo WebP. Grupę ikon można zapisać jako .ico, a grupę kursorów jako .cur. Zasoby opisane skryptem można zapisać jako skrypt .rc.
Ctrl+D zrzuca zapisane bajty bez zmian. Plik, Eksportuj wszystkie zasoby zapisuje każdy zasób bieżącego pliku. Przeciągnij zasób z drzewa na Eksplorator, żeby go wyeksportować.
Narzędzia, Opcje obejmuje język, motyw (Z systemu, Jasny albo Ciemny), kopię .bak przed pierwszym zapisem w sesji, ostatnie pliki, czcionkę edytora, domyślny widok dla każdego typu zasobu, układ hex, dopasowanie obrazu, kolory szachownicy za przezroczystymi obrazami oraz pracę w tle.
Motyw Z systemu podąża za Windows. Zmiana języka obowiązuje po potwierdzeniu opcji.
Jasny, Ciemny albo Z systemu. Z systemu śledzi motyw aplikacji Windows. Drzewo, edytory i widok hex używają tego samego motywu.
Pliki .mui i .mun to moduły zawierające same zasoby. Otwórz taki plik i edytuj łańcuchy, dialogi, menu i pozostałe zasoby tak samo jak w głównym pliku binarnym.
F2 zmienia nazwę zasobu albo jego identyfikator języka. Język 0 to Neutralny. Pozostałe języki używają identyfikatora języka Windows, na przykład 1033 dla angielskiego (Stany Zjednoczone).
Standardowe typy Win32 są wymienione pod czytelną nazwą i stałą RT_. Plik może też zawierać typ niestandardowy. Dodaje się go przez Akcja, Dodaj zasób z pliku i wpisanie nazwy albo numeru.
| Typ | Stała | Id | Edytor |
|---|---|---|---|
RT_CURSOR |
1 | Podgląd, edytor obrazów, eksport | |
RT_BITMAP |
2 | Podgląd, edytor obrazów, eksport | |
RT_ICON |
3 | Podgląd, edytor obrazów, eksport | |
RT_MENU |
4 | Podgląd, edytor menu, skrypt | |
RT_DIALOG |
5 | Podgląd, projektant dialogów, skrypt | |
RT_STRING |
6 | Siatka łańcuchów. Bloki po 16 łańcuchów | |
RT_FONTDIR |
7 | Hex edytor, zrzut surowy | |
RT_FONT |
8 | Hex edytor, zrzut surowy | |
RT_ACCELERATOR |
9 | Tabela skrótów | |
RT_RCDATA |
10 | Podgląd tekstu albo obrazu, gdy bajty pasują; w przeciwnym razie hex | |
RT_MESSAGETABLE |
11 | Odczyt komunikatów | |
RT_GROUP_CURSOR |
12 | Podgląd każdego obrazu. Eksport jako .cur |
|
RT_GROUP_ICON |
14 | Podgląd każdego obrazu. Eksport jako .ico |
|
RT_VERSION |
16 | Informacje stałe i tabele łańcuchów | |
RT_DLGINCLUDE |
17 | Podgląd tekstu albo hex | |
RT_PLUGPLAY |
19 | Hex edytor, zrzut surowy | |
RT_VXD |
20 | Hex edytor, zrzut surowy | |
RT_ANICURSOR |
21 | Podgląd, edytor obrazów | |
RT_ANIICON |
22 | Podgląd, edytor obrazów | |
RT_HTML |
23 | Podgląd tekstu albo hex | |
RT_MANIFEST |
24 | Edytor XML ze sprawdzeniem typowych problemów | |
| nazwa albo numer | Hex edytor i zrzut surowy |
Przejdź drzewo zasobów PE, podejrzyj dialog albo ikonę, albo zrzut surowych bajtów. Ctrl+F szuka w bieżącym widoku. F3 znajduje następne trafienie. Alt+Left i Alt+Right cofają i przechodzą dalej po zaznaczonych zasobach.
Edytuj tabele łańcuchów, dialogi i menu, a potem zmień identyfikator języka klawiszem F2 albo poleceniem changelanguage. Otwórz pasujący plik .mui, gdy łańcuchy leżą poza głównym plikiem binarnym.
Wyodrębnij grupę ikon, podmień bitmapę albo usuń blok wersji, a potem zapisz plik wykonywalny. Pierwszy zapis w sesji może skopiować oryginał do pliku .bak obok niego.
Standardowe dialogi i formularze Delphi VCL otwierają się w projektancie. Przesuwaj i zmieniaj rozmiar kontrolek w jednostkach dialogowych albo edytuj ten sam szablon jako skrypt.
Dowolny przełącznik uruchamia tryb wsadowy i nie otwiera okna. Proces zwraca 0 przy sukcesie i 1, gdy polecenie się nie powiedzie. Ścieżka bez przełączników otwiera ten plik w oknie.
Edytuj zasób jako tekst .rc albo skompiluj skrypt do .res przez -action compile. Dodanie z innego PE, .res albo .rc kopiuje zasoby pasujące do maski.
Maluj, podmieniaj przez upuszczenie i eksportuj PNG, BMP, JPEG, GIF, TIFF, WebP, .ico oraz .cur. Ctrl++, Ctrl+- i Ctrl+0 zmieniają powiększenie. Ctrl+kółko powiększa obraz.
Edytuj manifest aplikacji jako XML. Edytuj VS_FIXEDFILEINFO i tabele łańcuchów wersji bez łatki w hexie.
Sama nazwa pliku otwiera okno. Dowolny przełącznik uruchamia tryb wsadowy i nie otwiera okna. Przełącznik zaczyna się od - albo /. Nazwę można skrócić, dopóki zostaje jednoznaczna, więc -o to -open, a -a to -action. Wartość podaje się jako następny argument albo po = lub :.
-open jest wymagane, z wyjątkiem -help, które nie otwiera pliku. -save jest wymagane, gdy polecenie zmienia plik. Zapis na tę samą ścieżkę aktualizuje plik w miejscu. Inna ścieżka -save zapisuje kopię.
Gdy pominiesz -log, komunikaty trafiają do Resource Cracker.log w bieżącym katalogu. CON wypisuje je na konsolę. NUL nie wypisuje nic.
Maska to Type,Name,Language. Pusta część pasuje do każdej wartości. Przecinki są wymagane, gdy występuje późniejsza część. Typ może być liczbą, nazwą RT_ albo słowem takim jak BITMAP, ICON, DIALOG, VERSION albo MANIFEST.
"Resource Cracker.exe" -open app.exe -action extract -mask ICON -save C:\out
Zapisuje każdą grupę ikon. -save jest folderem, gdy pasuje więcej niż jeden zasób. Gdy pasuje jeden zasób, plikiem docelowym jest -resource albo -save.
"Resource Cracker.exe" -open app.exe -resource logo.png -action addoverwrite -mask BITMAP,1,1033 -save app.exe
add kończy się błędem, gdy ten typ, nazwa i język już istnieją. addskip zostawia istniejący zasób bez zmian. addoverwrite go zastępuje. modify zastępuje istniejący zasób i pomija go, gdy go nie ma. Dodanie jednego zwykłego pliku wymaga typu i nazwy w masce.
"Resource Cracker.exe" -open app.exe -action delete -mask VERSION -save app-noversion.exe
delete usuwa każdy zasób pasujący do maski. Pusta część maski pasuje do każdej wartości tej części.
"Resource Cracker.exe" -open script.rc -action compile -save script.res
Kompilacja jest używana osobno. Nie łączy się jej z innymi akcjami i nie jest poleceniem wewnątrz pliku skryptu.
"Resource Cracker.exe" -open app.exe -action changelanguage(1033) -mask DIALOG,100, -save app.exe -log CON
changelanguage(n) ustawia identyfikator języka każdego trafienia. Końcowy przecinek zostawia część języka pustą, więc aktualizowany jest każdy język dialogu 100. -log CON wypisuje dziennik na konsolę, z której uruchomiono program.
"Resource Cracker.exe" -script commands.txt
[FILENAMES]
Open=C:\in\app.exe
Save=C:\out\app.exe
Log=C:\out\app.log
[COMMANDS]
-add logo.png, BITMAP,1,1033
-addskip extra.res, ,,
-addoverwrite picture.ico, ICON,1,0
-modify note.txt, RCDATA,NOTE,0
-extract C:\out\icons, ICON
-delete VERSION
-changelanguage(1033) DIALOG,100,
Wiersze zaczynające się od // są komentarzami, poza tekstem w cudzysłowie. Open można zapisać jako Exe. Save można zapisać jako SaveAs. Open jest wymagane. Save jest wymagane, gdy polecenie zmienia plik. Skrypt musi mieć co najmniej jedno polecenie.
| Akcja | Skutek |
|---|---|
add |
Dodaje zasób. Kończy się błędem, gdy ten typ, nazwa i język już istnieją. |
addskip |
Dodaje go albo zostawia istniejący bez zmian. |
addoverwrite |
Dodaje go albo zastępuje istniejący. |
modify |
Zastępuje istniejący zasób. Pomija go, gdy go nie ma. |
delete |
Usuwa każdy zasób pasujący do maski. |
extract |
Zapisuje pasujące zasoby. Celem jest plik albo folder, gdy pasuje więcej niż jeden. |
changelanguage(n) |
Ustawia identyfikator języka każdego trafienia. |
compile |
Kompiluje skrypt .rc do pliku .res. Używana osobno. |
Jeśli chcesz zapytać o Resource Cracker, albo coś jest niejasne, napisz do mnie.