Widziałem:
http://www...
ftp://blah.blah...
file://blah.blah...
unreal://blah.blah...
mailto://blah.blah...
Jaka jest ta pierwsza sekcja, w której się widzisz http
i tym podobne?
Czy mogę zarejestrować swój własny?
Widziałem:
http://www...
ftp://blah.blah...
file://blah.blah...
unreal://blah.blah...
mailto://blah.blah...
Jaka jest ta pierwsza sekcja, w której się widzisz http
i tym podobne?
Czy mogę zarejestrować swój własny?
Odpowiedzi:
Część z HTTP://
, FTP://
itp nazywane Schematy URI
Możesz zarejestrować swój własny poprzez rejestr.
HKEY_CLASSES_ROOT/
your-protocol-name/
(Default) "URL:your-protocol-name Protocol"
URL Protocol ""
shell/
open/
command/
(Default) PathToExecutable
Źródła: https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml , http://msdn.microsoft.com/en-us/library/aa767914(v=vs.85).aspx
(Default)
tutaj oznacza pusty ciąg. Nie bierz tego dosłownie.
Otwórz notatnik i wklej do niego kod poniżej. Zmień „YourApp” na nazwę swojej aplikacji. Zapisz go w YourApp.reg i uruchom go, klikając go w Eksploratorze. Otóż to! Twoje zdrowie! Erwin Haantjes
REGEDIT4
[HKEY_CLASSES_ROOT\YourApp]
@="URL:YourApp Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\YourApp\DefaultIcon]
@="\"C:\\Program Files\\YourApp\\YourApp.exe\""
[HKEY_CLASSES_ROOT\YourApp\shell]
[HKEY_CLASSES_ROOT\YourApp\shell\open]
[HKEY_CLASSES_ROOT\YourApp\shell\open\command]
@="\"C:\\Program Files\\YourApp\\YourApp.exe\" \"%1\" \"%2\" \"%3\" \"%4\" \"%5\" \"%6\" \"%7\" \"%8\" \"%9\""
Różni się to w zależności od przeglądarki, w przeglądarce IE i systemie Windows należy utworzyć tak zwaną procedurę obsługi protokołu podłączalną.
Podstawowe kroki są następujące:
Zobacz Informacje o asynchronicznych protokołach wtykowych w MSDN, aby uzyskać więcej informacji po stronie systemu Windows. Istnieje również próbka w zestawie Windows SDK.
Szybkie Google pokazało również ten artykuł na temat projektu kodu: http://www.codeproject.com/KB/IP/DataProtocol.aspx .
Wreszcie, jako ochroniarz muszę zaznaczyć, że ten kod musi być zahartowany w bitwie. Jest to wysokie ryzyko, ponieważ aby zrobić to niezawodnie, nie możesz tego zrobić w kodzie zarządzanym i musisz to zrobić w C ++ (przypuszczam, że możesz użyć VB6). Zastanów się, czy naprawdę musisz to zrobić, a jeśli to zrobisz, zaprojektuj go ostrożnie i bezpiecznie zakoduj. Osoba atakująca może łatwo kontrolować przesyłaną do Ciebie treść, po prostu umieszczając link na stronie. Na przykład, jeśli masz proste przepełnienie bufora, nikt nie powinien tego robić:<a href="custom:foooo{insert long string for buffer overflow here}"> Click me for free porn</a>
Zdecydowanie rozważ użycie strsafe i nowych bezpiecznych metod CRT zawartych w kompilatorach VC8 i nowszych. Zobacz http://blogs.msdn.com/michael_howard/archive/2006/02/27/540123.aspx, jeśli nie masz pojęcia, o czym mówię.
Oto lista zarejestrowanych schematów URI . Każdy z nich ma RFC - dokument definiujący go, który jest prawie standardem. RFC mówi twórcom nowych aplikacji (takich jak przeglądarki, klienci ftp itp.), Co muszą obsługiwać. Jeśli potrzebujesz nowego protokołu na poziomie podstawowym, możesz użyć niezarejestrowanego. Inne odpowiedzi podpowiadają, jak to zrobić. Pamiętaj, że możesz robić wiele rzeczy przy użyciu istniejących protokołów, zyskując w ten sposób ich istniejące implementacje.
W przypadku większości produktów Microsoft (Internet Explorer, Office, okna dialogowe „otwórz plik” itp.) Można zarejestrować aplikację, która ma być uruchomiona po otwarciu identyfikatora URI z odpowiednim prefiksem. Jest to część bardziej powszechnego wyjaśnienia - jak wdrożyć własny protokół.
To się nazywa protokół. Jedyną rzeczą, która uniemożliwia utworzenie własnego protokołu, jest:
Windows sprawia, że numer 1 jest naprawdę łatwy, w wielu przypadkach to wszystko, czego naprawdę potrzebujesz. Mianowicie:
Pierwsza sekcja nazywa się protokołem i tak, możesz zarejestrować swój własny. W systemie Windows (gdzie zakładam, że robisz to, biorąc pod uwagę znacznik C # - przepraszam fanów Mono), odbywa się to za pośrednictwem rejestru .
Protokół?
Znalazłem to, wydaje się, że jest to ustawienie lokalne dla komputera ...
Naprawdę nie musisz rejestrować się jako taki. Widziałem wiele programów, takich jak emule, które tworzą własne protokoły (tak myślę, że to się nazywa). Następnie wystarczy ustawić w rejestrze pewne wartości określające, który program obsługuje ten protokół. Nie jestem pewien, czy istnieje oficjalny rejestr specyfikatorów protokołów. Tak naprawdę nic nie stoi na przeszkodzie, aby stworzyć własny specyfikator protokołu dla własnej aplikacji, jeśli chcesz, aby ludzie otworzyli Twoją aplikację z poziomu przeglądarki.