Skocz do zawartości

Re: taki sam


Aspect

Recommended Posts

mistyk9001 napisał:
plusem pakowania jest tez fakt ze pliki sie szybciej uruchamiaja

hmmm :o
Dziwne mi sie to wydaje. Zawsze myślałem, że jak jest coś spakowane, to musi się rozpakować przed uruchomieniem. A jak wiadomo takie rozpakowanie zajmuje odrobinkę czasu. Czyli teoretycznie rozpakowanie+uruchomienie programu spakowanego powinno zajmowac wiecej czasu niz samo uruchomienie sie programu niespakowanego. (Co prawda na stronie UPXa napisane jest, ze czas rozpakowania programu jest znikomo mały, ale mimo wszystko...)
Czy to było napisane z ironią, a ja nie zrozumiałem? :?
Jeżeli nie, to wytłumacz mi, proszę, ten mechanizm.

Link do komentarza
Udostępnij na innych stronach

biały dobrze muwisz ja tez tego nie rozumiem. Ponadto nie rozumiem co ma paker naprzyklad UPX ma do ResHackera? Bo w gruncie zeczy rozpakowujemy nasz program (zeby wogule uruchomic) wlanczamy rezszakera i normalnie nim, na naszym programie dzialamy. Faktycznie spakujemy ResHackerem nic nie zrobimy, ale takze nie uruchomimy.

Link do komentarza
Udostępnij na innych stronach

Nie no, UPX to nie jest taki archiver jak RAR albo ZIP. On pakuje tylko exeki i to tak zeby po skompresowaniu wyglądały jak zwykły program. Po uruchomieniu takiego exeka, właściwy program się wypakowuje (powinien w czasie niezauważalnym dla użytkownika) i ładuje do pamięci.
Nie wiem jak działa ResHacker ale wydaje mi się, że on po prostu wyciąga różne resourcy z plików exe na dysku, więc jeżeli program jest spakowany to ResHacker może nie rozumieć zapisanych w ten sposób danych. Ale jeżeli jakiś programista zna (i potrafi wykorzystać) metodę kompresji stosowaną przez UPX (co nie troudno osiągnąć bo żródła UPXa są jawne) to może napisać program króry wyciąga zasoby nawet ze spakowanych programów.
Czyli: "Dla chcącego nic trudnego!" - Jak ktoś będziebardzo chciał wyciągnąćzasoby z Twojego programu to je wyciągnie. ;-)

Link do komentarza
Udostępnij na innych stronach

No to ja wam opowiem na jakiej zasadzie to działa. Programy, które otwierają zasoby plików wykonywalnych typu PE (32-bitowe aplikacje) najpierw odczytują ich nagłówek i w miejscach (w nagłówku głównym) gdzie wpisane są takie informacje jak adresy wirtualne funkcji importowanych, eksportowanych odczytuje czy jest wpis dla zasobów. I jeżeli jest to sprawdza w której sekcji (najczęściej w ostatniej). Z niej sprawdza adres fizyczny i przeskakuje do miejsca zasobów. Tam są wszystkie informacje o zasobach (ile zasobów, jakie i jakie wersje językowe) w postaci nagłówku rozbudowanego jako struktura drzewa. Każdy zasub ma swój adres w pamięci, który najczęściej znajduje się za nagłówkiem. Inaczej jest to po spakowaniu np. UPX'em. Program ten też pakuje zasoby, ale nie nagłówek zasobów, bo by była awaria podczas uruchomienia programu. Oczywiście, jeśli zasób ma ikonę to UPX jej nie pakuje, bo by była niezauwarzalna w eksploatorze windows. Tak samo i nie pakuje wiadomości o pliku, widoczne gdy sprawdzimy właściwości tego programu.
I tak spakowany plik nie pokaże nigdy zasobów - oczywiście jeśli wyłączymy tą opcje w pakerze to zasoby będą widoczne.

Właśnie robię program, który szyfruje plik wykonywalny (PE) i jednocześnie uniemożliwia wyciąganie zasobów z pliku, ale właśnie co do tego - przecierz też istnieją szyfratory plików wykonywalnych.

Link do komentarza
Udostępnij na innych stronach

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...