Zmiana rozszerzenia programu

Zmiana rozszerzenia programu
0

Cześć

Zainspirowałam się tym oto artykułem:
http://4programmers.net/Delphi/gotowce/Uruchamianie_innych_formatow_jako_plik_wykonywalny_(EXE)

Jednak nie rozumiem jakby on miał działać.

Jak np. schować plik exe pod rozszerzeniem jpg?

Przecież gdy uruchomimy plik jpg to jak zmusimy go do wykonania jakiejkolwiek procedury?

Pisze w C#, bede wdzieczna za pomoc :)

DU
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 11 lat
  • Postów:25
0

W podanym artykuje chodzi o zarejstrowanie rozszerzenia pliku w rejestrach windows w taki sposob aby windows traktowal go jak plik wykonywalny. Taki plik musi miecmodpowiedni format nie wystarczy samo rozszerzenie. To ze ze autor programu odpala w tej samem metodzie plik o wlasnie zarejestrowabym rozszerzeniu.
Czyli tak na prawde jesli chodzi o zawartosc plik z rozszerzeniem jpg to musi byc plik exe.

W ten sposob (rejestry) mozna wskazac program ktory powinin byc uruchomiony aby przeczytal plik dla danego rozszerzenia.

Do czego praktycznje mozna to wykorzytsac? Nie wiem... nigdy nie musialem czegos takiego robic.

Japer
  • Rejestracja:prawie 14 lat
  • Ostatnio:około 11 lat
  • Postów:47
0

To jest możliwe, wystarczy pobawić się rejestrem. Używa się tego do ukrywania plików, aby nikt się nie spodziewał, że to jest plik wykonywalny. Taki trick nie jest przydatny (i błędnie jest utożsamiany z wirusami, które się ukrywają w dowolnych formatach - przecież zmiana rozszerzenia nie zmienia formatu tego pliku!). Tak naprawdę rozszerzenie nic nie robi - tylko mówi nam o "potencjalnym" formacie pliku. A tak naprawdę za takim rozszerzeniem może się kryć plik dowolnego formatu.

Wadą zabawy z rejestrem jest, to że wystarczy w felernym momencie wyłączyć komputer i wszystkie pliki (dla przykładu) *.jpg będą uruchamiane jako plik wykonywalny.


Znajdź mnie na Wykopie! Nie jestem niczyim murzynem, żeby robić za Ciebie program. Nawet nie próbuj pisać na PW! :D
bogdans
Moderator
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 5 lat
0

Zabawy z rejestrem nie są konieczne, wystarczy zmienić wartość zmiennej środowiskowej PATHEXT. Dla testów można ją zmienić w oknie konsoli, np tak:

Kopiuj
set PATHEXT = %PATHEXT%;.JPG

Taka zmiana nie przetrwa zamknięcia okna konsoli.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
0

Kiedyś widziałem programik-zdjęcie bodajże @deusa - było to takie coś, co było prawidłowym zdjęciem (chyba bitmapą), a zarazem poprawnym uruchamialnym programem - bez zabawy z rejestrem; nie jestem pewien, jak on tego dokonał (może się wypowie i zdradzi nam tajemnicę :D), wiem tylko tyle, że jest to możliwe :P


somekind
Tak, to był @deus jak żywy na tym zdjęciu. :D
Azarien
zdjęcia nie pamiętam, ale jeśli pierwsze bajty nagłówka bitmapy tworzą sensowne instrukcje procesora (najlepiej skoku, by skoczyć gdzieś daleko poza dane obrazka) to może to działać.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.