Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Работа с MS Office > Подделка авторства


Автор: Ufyljy 20.10.2007, 10:28
Существуют ли утилиты, которые могу изменить автора документа и изменить дату создания документа?

Автор: mihanik 27.10.2007, 12:44
Думаю, что сделать это не так сложно.
А посему, вероятно существуют. (99%)
Но я таких не встречал.
В связи с чем возник такой вопрос?

Автор: AsIs 28.10.2007, 14:13
Цитата(Ufyljy @ 20.10.2007,  10:28)
Существуют ли утилиты, которые могу изменить автора документа и изменить дату создания документа?

Автора поменять по-моему вообще не проблема: в проводнике вызвать контекстное меню для документа Word, команда Свойства. Перейти на вкладку Сводка. И меняй там автора...
А если на той же вкладке щелкнуть по кнопке Дополнительно, то можно увидеть и другие доступные для редактирования свойства документа.
А вот дату создания там нельзя изменить. Но точно знаю, что это можно сделать программно. Если конечно не искать готовую утилиту, то на каком-либо языке порграммирования (да хоть на VBS) используя классы для работы с файлами (ну например MS Scripting Library)...

Автор: RockClimber 29.10.2007, 14:30
Аттрибуты файлов (даты создания и изменения) позволял менять Norton Commander и вроде Far Manager. Но это так давно было...

Автор: kapbepucm 9.11.2007, 10:35
Меняем дату создания фаила:
Код
Public Const GENERIC_WRITE As Long = &H40000000
Public Const OPEN_EXISTING As Long = 3
Public Const FILE_ATTRIBUTE_NORMAL As Long = &H80
Public Type FileTime32
    dwLowDateTime As Long
    dwHighDateTime As Long
End Type
Public Declare Function GetFileTime Lib "kernel32.dll" (ByVal hFile As Long, ByRef lpCreationTime As FileTime32, ByRef lpLastAccessTime As FileTime32, ByRef lpLastWriteTime As FileTime32) As Long
Public Declare Function SetFileTime Lib "kernel32.dll" (ByVal hFile As Long, ByRef lpCreationTime As FileTime32, ByRef lpLastAccessTime As FileTime32, ByRef lpLastWriteTime As FileTime32) As Long
Public Declare Function CloseHandle Lib "kernel32.dll" (ByVal hObject As Long) As Long
Public Declare Function CreateFile Lib "kernel32.dll" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Public Declare Function DosDateTimeToFileTime Lib "kernel32.dll" (ByVal wFatDate As Integer, ByVal wFatTime As Integer, ByRef lpFileTime As FileTime32) As Long
Public Sub ChangeCrtTime(MyFileName As String, MyYear As Long, MyMonth As Long, MyDay As Long, MyHour As Long, MyMinute As Long, MySecond As Long)
  Dim hFile As Long
  Dim MyCrtTime As FileTime32
  Dim MyMdfTime As FileTime32
  Dim MyAccTime As FileTime32
  hFile = CreateFile(MyFileName, GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, FILE_ATTRIBUTE_NORMAL)
  
  GetFileTime hFile, MyCrtTime, MyAccTime, MyMdfTime
  DosDateTimeToFileTime MyDay + MyMonth * 2 ^ 5 + (MyYear - 1980) * 2 ^ 9, MySecond \ 2 + MyMinute * 2 ^ 5 + MyHour * 2 ^ 11, MyCrtTime
  SetFileTime hFile, MyCrtTime, MyAccTime, MyMdfTime
  
  CloseHandle hFile
End Sub

Автор: AsIs 10.11.2007, 21:34
О, май год! smile
Да, наглядный довод в пользу использования .Net

Код

 Sub Main()
        ' меняем дату создания файла
        System.IO.File.SetCreationTime("d:\new.txt", #3/3/2007#)

 End Sub

Автор: mihanik 12.11.2007, 21:13
Цитата(AsIs @  10.11.2007,  21:34 Найти цитируемый пост)
Да, наглядный довод в пользу использования .Net


Гы... smile 
Зато не надо ставить среду исполнения (фреймворк).
Всё работает исключительно api.
Да и скорость получается хорошая...
Но не будем здесь начинать религиозную войну... 
 smile 

Автор: AsIs 12.11.2007, 21:41
Цитата(mihanik @ 12.11.2007,  21:13)
Но не будем здесь начинать религиозную войну... 
 smile

Не будем. smile Не люблю войну. smile Но пообсуждать то можно.
1. Я не вижу принципиальной разности между одной библиотекой (kernel32 чего-то там) и другой библиотекой (System.IO). Принципиальной разности дя пользователя. И та и другая должна на компьютере быть, чтобы программа заработала.
2. Какое быстродействие, если мы меняем дату создания файла? smile)
Зато, есть быстродействие в написании кода. smile 

Автор: kapbepucm 13.11.2007, 10:18
Цитата(AsIs @  12.11.2007,  21:41 Найти цитируемый пост)
Принципиальной разности дя пользователя
Не у всех пользователей System.IO есть smile

Автор: AsIs 13.11.2007, 21:38
Цитата(kapbepucm @ 13.11.2007,  10:18)
Цитата(AsIs @  12.11.2007,  21:41 Найти цитируемый пост)
Принципиальной разности дя пользователя
Не у всех пользователей System.IO есть smile

kernel32 тоже не у всех. Например, в Linux, MacOS или FreeBSD нетути. smile

Автор: kapbepucm 14.11.2007, 09:20
Я имел ввиду определённую часть пользователей, задающих вопросы в разделе MS Office smile и ещё значительную часть в остальном мире smile

Автор: mihanik 15.11.2007, 20:24
Цитата(kapbepucm @  14.11.2007,  09:20 Найти цитируемый пост)
задающих вопросы в разделе MS Office 

 smile  smile 

Автор: AsIs 15.11.2007, 21:48
Зря иронизируете. smile Безусловно, это я все понимаю. Но взгляните на это шире. 
Чтобы у пользователя заработала определенная программа (да хоть тот же самый Office) ему нужно иметь на своем компьютере определенное количество системного программного обеспечения. 
Вот и все.
И этим все сказано. А сам перечень программного обеспечения нужно уточнять у производителя. 
Если свыкнуться с этой простой мыслью, то все станет ясно и понятно. ;)

Почему ни у кого не вызывает вопросов и удивления, что для нормальной работы MS Office 2007 не достаточно MS Windows 3.11? А в примере выше вопросы возникают? Для меня это симметричные ситуации.

Ведь это дело времени. Пройдет совсем немного, и эта платформа будет включена во многие дистрибутивы (и сейчас это уже есть, но не так распостранено) Хорошо это или плохо, это уже другой вопрос. Но констатация факта!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)