Być może jesteś jedną z osób, która do tego momentu wierzyła, że maksymalna długością ścieżki, jaką może ona osiągnąć pod Windows’em jest określona przez MAX_PATH ( 256 znaków ). NIC BARDZIEJ MYLNEGO!!!!
W dokumencie, który możecie pobrać poniżej opisałem m.in:
– jaka jest maksymalna długość ścieżki i z czego to wynika
– w jaki sposób uzyskać możliwość tworzenia ścieżek dłuższych niż MAX_PATH
– detale prezentujące konkretne api, w których odbywa się sprawdzanie długości ścieżki, jej typy, itp.
te i wiele innych kwestii.
Oczywiście, jeżeli jakiś programista założył, że maksymalną długością ścieżki jest MAX_PATH, to w najlepszym wypadku jego aplikacja będzie nie w pełni funkcjonalna, a w najgorszym można spodziewać się takich błędów jak buffer overflow. Aby przekonać się o słuszności swojej teorii postanowiłem przetestować „tolerancje” aplikacji anty-wirusowych na długie ścieżki. Rezultaty tych testów możecie obejrzeć w dokumencie, tutaj powiem tylko, że spora grupa wykazała oba powyżej opisane objawy.
A teraz czas na małą i IMO zachęcającą do wzięcia tematu długich ścieżek na poważnie galerię:



I na koniec najnowsza wersja gmer’a na dzień 15.10.2010 GMER 1.0.15.15315 ( ostatni bug raportowany przezemnie został załatany, jednak jak widać nie do końca 😉 )

Dokument w wersji angielskiej można pobrać stąd: Windows LongPaths – extended-length paths
nice find 🙂
EXCELLENT WORK !
Pingback: Tweets that mention Icewall's blog » Extended length paths in Windows -- Topsy.com
@ged_ and @Prakhar Prasad
Thx guys 😉
to jeszcze noda
@G
Jak było widać w testach nod nie polegl;)
Jakieś 2 lata temu zajmowałem się podobnymi testami w jednej z dużych firm AV. 😉
Jak widać, nie przejęli się chyba za bardzo rezultatami. Jako bonus polecam też długie ścieżki z losowymi znakami Unicode i/lub na dyskach sieciowych (choć z tym ostatnim ostrożnie, soft do backupów zazwyczaj się krzaczy i admin może przybiec z krzykiem, ponadto nie zawsze da się to potem prosto usunąć 😉
PS. Wypadałoby wspomnieć, że na systemie plików FAT oczywiście to nie zadziała. (A co jeśli spróbujemy skopiować NTFS->FAT? 😉
@omeg
Nice ;). U mnie ten temat tez juz ponad rok w szufladzie lezal.
Tak tak, tutaj modyfikacji i wektorów do ataku jest jeszcze sporo. Ja w papierze staralem sie poprostu przedstawic temat.
Kiedy rozmawialismy o tym temacie w firmie np.Gynavel zaproponowal przetestowanie jeszcze:
Wracajac do dalszej twojej wypowiedzi:
FAT uznalem juz za twor nie warty uwagi takze nawet sie nad tym nie zastanawialem, ale super ze o tym wspominasz ;). Byc moze ktos bedzie chcial
zbadac zaproponowana przez Ciebie kombinac ;).
Hehe I’ve repeat publicly what I’ve said privately some time a go: This is a great find and piece of excellent research 🙂
@Gynvael Coldwind
Hehehe thx man 😉
Swoją drogą, CreateProcessW zdaje się nie obsługiwać długich ścieżek. Szkoda. 😉
@omeg
Hymm, jak najbardziej można przy użyciu CreateProcessW uruchomić aplikacje spod długiej ścieżki. Należy jedynie pamiętać o tym że uruchamiana aplikacja nie może posiadać manifestu dla SxS, bo wtedy żeczywiście wystepuje jakiś problem w sxs.dll.
http://awarenetwork.org/home/.rants/09-03-2005.12.45/oversized.txt cos podobnego z 2005.
Hej,
Nie spotkalem sie z tym papierem wczesniej, takze dzieki za link.
Jak widac, juz od dawna ten temat wzbudzal zainteresowanie ;).