¿Cómo se establece MOTW (Marca de la Web) en un archivo ejecutable que se descarga de Internet?¿Cómo se establece MOTW en un archivo ejecutable
Respuesta
No se menciona explícitamente en RFC 3514, pero hoy, debido a mayores requisitos de seguridad, las implementaciones realmente deberían retener la información de la presencia o ausencia del bit RFC3514 en una transmisión de red, cuando escriben archivos en un disco, y viceversa para leer desde el disco.
La pregunta no es sobre ese bit específicamente, y se trata de cómo escribirlo realmente en una secuencia NTFS junto con un .exe. – Rup
¿Estás hablando de http://www.faqs.org/rfcs/rfc3514.html? ¿Notaste que fue escrito el 1 de abril? –
¿Notó que cada vez que alguien hacía referencia a un RFC de abril para usted, era plenamente consciente de no ser serio? : D - Después de todo, MOTW suena exactamente como Evil Bit. – user502515
Estos datos se almacenan en un NTFS alternative file stream junto con un ejecutable. La secuencia se llama Zone.Identifier:
Windows® Internet Explorer® utiliza el nombre de la secuencia Zone.Identifier para el almacenamiento de zonas de seguridad de URL.
La forma totalmente calificado essample.txt:Zone.Identifier:$DATA
La corriente es una corriente de texto simple de la forma:[ZoneTransfer] ZoneId=3
MSDN-SECZONES da una explicación de las zonas de seguridad.
(N. B. El original tiene un espacio entre los dos puntos y "Zona", pero creo que esto es erróneo.)
Puede encontrar las ZoneIds en UrlMon.h en el SDK; hay una enumeración que equivale a
enum URLZONE {
URLZONE_LOCAL_MACHINE = 0,
URLZONE_INTRANET = 1,
URLZONE_TRUSTED = 2,
URLZONE_INTERNET = 3,
URLZONE_RESTRICTED = 4
};
(El original utiliza valor anterior + 1 en lugar de valores absolutos.)
Como dice Hans en los comentarios, estos pueden ser escritas con la API de archivos de Win32 estándar CreateFile y WriteFile. Firefox siempre escribe zona de Internet, zona 3 - Firefox code here (MPL/LGPL/GPL tri-licencia):
bool SetInternetZoneIdentifier(const FilePath& full_path) {
const DWORD kShare = FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE;
std::wstring path = full_path.value() + L":Zone.Identifier";
HANDLE file = CreateFile(path.c_str(), GENERIC_WRITE, kShare, NULL,
OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (INVALID_HANDLE_VALUE == file)
return false;
const char kIdentifier[] = "[ZoneTransfer]\nZoneId=3";
DWORD written = 0;
BOOL result = WriteFile(file, kIdentifier, arraysize(kIdentifier), &written,
NULL);
CloseHandle(file);
if (!result || written != arraysize(kIdentifier)) {
DCHECK(FALSE);
return false;
}
return true;
}
Alternativamente hay una API COM IE CLSID_PersistentZoneIdentifier puede utilizar para abstraer todo esto para usted.
+1, agradable. Use \ r \ n para Windows. –
También solo para agregar, [aquí hay un método alternativo] (https://blogs.msdn.microsoft.com/oldnewthing/20131104-00/?p=2753) para hacer lo mismo con COM. – c00000fd
- 1. Cómo forzar la inclusión de un archivo de objeto en una biblioteca estática cuando se establece un enlace en ejecutable?
- 2. Cómo cargar un archivo ejecutable ELF ejecutable dinámicamente?
- 3. ¿Cómo registrar un número de serie en un archivo ejecutable?
- 4. Embalaje de un archivo en un archivo ejecutable ELF
- 5. Cómo crear un archivo .exe ejecutable desde el archivo .m
- 6. Incluyendo un archivo XSLT en un archivo ejecutable
- 7. Usando dlopen() en un archivo ejecutable
- 8. ¿Cómo se establece el nombre del archivo al transmitir un PDF en un navegador?
- 9. ¿Cómo crear un archivo jar ejecutable desde un proyecto clojure?
- 10. ¿Cómo busco un archivo ejecutable usando python en Linux?
- 11. ¿Cómo se establece un foco en Textfield en Swing?
- 12. ¿Cómo se establece origen/HEAD?
- 13. Compilar un archivo ejecutable estático independiente
- 14. Cómo almacenar datos dentro del archivo ejecutable
- 15. ¿Cómo se establece el texto en un NSTextField?
- 16. ¿Cómo se establece el tamaño de fuente en un UIBarButtonItem?
- 17. ¿Cómo se establece un valor doble en "sin valor"
- 18. Generar un archivo ejecutable usando wix
- 19. Cómo ejecutar un archivo ejecutable incrustado como recurso
- 20. Cómo hacer un ejecutable phar?
- 21. compruebe si un archivo es ejecutable
- 22. ¿Cómo se almacena el código en un ejecutable?
- 23. ¿Cómo incrustar recursos en un solo ejecutable?
- 24. Archivos de objeto en un archivo ejecutable en Linux
- 25. ¿Cómo se establece un valor predeterminado para un WTForms SelectField?
- 26. Mongoid, alcance si se establece un valor?
- 27. ¿Cómo crear un archivo ejecutable para una aplicación Qt?
- 28. Cómo hacer un archivo ejecutable del proyecto java fx 2.0
- 29. Cómo crear un archivo ejecutable .jar con netbeans
- 30. Obtener la versión del archivo ejecutable no ejecutable
Primero debe calentar la plancha. –
Deseo configurar manualmente el indicador MOTW en los archivos. – yoshi99
Te refieres a la sección Seguridad "Este archivo vino de otra computadora ..." en la página de propiedades del archivo? Se almacena en una secuencia de archivos alternativa http://superuser.com/questions/38476/this-file-came-from-another-computer-how-can-i-unblock-all-the-files-in-a/38494 # 38494 No estoy seguro de qué es la API para acceder a eso, pero hay documentación http://msdn.microsoft.com/en-us/library/aa364404%28VS.85%29.aspx – Rup