Làm thế nào để bạn đặt MOTW (Đánh dấu trang Web) trên một tệp thực thi được tải xuống từ internet?Làm thế nào để bạn đặt MOTW trên thực thi
Trả lời
Nó không được nêu rõ trong RFC 3514, nhưng ngày nay, do yêu cầu bảo mật tăng lên, việc triển khai thực sự nên giữ lại thông tin về sự hiện diện hoặc vắng mặt của bit RFC3514 trong truyền mạng, khi ghi tệp ra đĩa, và ngược lại để đọc từ đĩa.
Câu hỏi không phải là về một chút cụ thể, và đó là về cách thực sự viết nó vào một dòng NTFS cùng với một .exe. – Rup
Bạn đang nói về http://www.faqs.org/rfcs/rfc3514.html? Bạn có nhận thấy nó được viết vào ngày 1 tháng Tư không? –
Bạn có nhận thấy rằng bất cứ khi nào có ai đó tham chiếu RFC tháng Tư cho bạn, họ hoàn toàn nhận thức được sự không an toàn? : D - Sau khi tất cả, MOTW âm thanh giống như Evil Bit. – user502515
Dữ liệu này được lưu trữ trong NTFS alternative file stream cùng với tệp thực thi. Luồng được gọi là Zone.Identifier:
Windows® Internet Explorer® sử dụng tên luồng Zone.Identifier để lưu trữ vùng bảo mật URL.
Hình thức đầy đủ làsample.txt:Zone.Identifier:$DATA
Các dòng là một dòng văn bản đơn giản có dạng:[ZoneTransfer] ZoneId=3
MSDN-SECZONES đưa ra một giải thích về khu an ninh.
(N.B. Bản gốc có một khoảng trống giữa ruột và "Zone" nhưng tôi nghĩ rằng đây là sai lầm.)
Bạn có thể tìm ZoneIds trong UrlMon.h trong SDK; có một enum mà tương đương với
enum URLZONE {
URLZONE_LOCAL_MACHINE = 0,
URLZONE_INTRANET = 1,
URLZONE_TRUSTED = 2,
URLZONE_INTERNET = 3,
URLZONE_RESTRICTED = 4
};
(Bản gốc sử dụng giá trị trước đó + 1 chứ không phải là giá trị tuyệt đối.)
Như Hans nói trong các ý kiến, chúng có thể được viết với tiêu chuẩn Win32 tập tin API CreateFile và WriteFile. Firefox luôn viết Internet Zone, khu 3-Firefox code here (MPL/LGPL/GPL tri-li-xăng):
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;
}
Ngoài ra có một trình duyệt IE COM API CLSID_PersistentZoneIdentifier bạn có thể sử dụng để trừu tượng này tất cả cho bạn.
+1, đẹp. Sử dụng \ r \ n cho Windows. –
Ngoài ra chỉ cần thêm, [đây là một phương pháp thay thế] (https://blogs.msdn.microsoft.com/oldnewthing/20131104-00/?p=2753) để thực hiện tương tự bằng cách sử dụng COM. – c00000fd
- 1. Làm thế nào để bạn cài đặt Jekyll trên OSX?
- 2. Làm thế nào để bạn cài đặt sqlite3 trên Windows
- 3. Làm thế nào để bạn cài đặt Boost trên MacOS?
- 4. Làm thế nào để bạn thực hiện đặt lại trên một JQuery có thể sắp xếp
- 5. Làm thế nào để làm cho các kịch bản python thực thi trên Windows?
- 6. Làm thế nào để bạn sử dụng SETLOCAL trong một tập tin thực thi?
- 7. SQL Server 2005 Làm thế nào để bạn xóa một kế hoạch thực thi truy vấn
- 8. Làm thế nào để bạn thêm một rpath cho một thực thi trong cmake trên xây dựng (không cài đặt) trên OSX?
- 9. Làm thế nào để thực thi tệp Clojure?
- 10. Làm thế nào để thực thi tệp sql từ java
- 11. Làm thế nào để tạo một phar thực thi?
- 12. svn: cách đặt bit thực thi trên một tệp?
- 13. Làm thế nào để tạo ra jar thực thi dựa trên mùa xuân với maven?
- 14. Làm thế nào để thực thi lệnh dos trên máy tính từ xa?
- 15. Làm thế nào để giữ quyền thực thi trên các tệp trong một nguyên mẫu maven
- 16. Làm thế nào để bạn biết phiên bản GTK + nào được cài đặt trên Ubuntu?
- 17. Làm thế nào tôi có thể đặt ccshared = -fPIC trong khi thực thi ./configure?
- 18. Làm thế nào để thi đua Event.timeStamp
- 19. làm thế nào để bạn cài đặt một gói PEAR trên WAMP, Windows 7?
- 20. Làm cách nào để bạn thực thi một khối JavaScript được nạp động?
- 21. Làm thế nào để bạn chạy Meteor trên Windows 8?
- 22. Làm thế nào để bạn cài đặt một plugin Maven2?
- 23. Làm thế nào để bạn cài đặt Aptana trên Ubuntu 12.04.1?
- 24. Làm thế nào để bạn cài đặt PyCairo (Cairo cho Python) trên Windows?
- 25. Làm thế nào để bạn thực hiện một Assembler?
- 26. Đặt bit thực thi trên các tệp trong Mercurial
- 27. Làm thế nào để bạn thực hiện việc làm mờ những gì bạn đã tìm kiếm?
- 28. Hosting thực thi trên github
- 29. làm thế nào để làm cho python script tự thực thi
- 30. Làm thế nào để bạn đặt kích thước phông chữ trên UIBarButtonItem?
Bạn phải hâm nóng bàn ủi trước. –
Tôi muốn đặt cờ MOTW theo cách thủ công trên các tệp. – yoshi99
Bạn có nghĩa là phần Bảo mật "Tệp này đến từ một máy tính khác ..." trên trang thuộc tính tệp? Nó được lưu trữ trong một luồng tệp thay thế http://superuser.com/questions/38476/this-file-came-from-another-computer-how-can-i-unblock-all-the-files-in-a/38494 # 38494 Tôi không chắc API là gì để truy cập vào đó nhưng có một số tài liệu http://msdn.microsoft.com/en-us/library/aa364404%28VS.85%29.aspx – Rup