Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / XOR или метод подсчета контрольной суммы (КАК????) / 17 сообщений из 17, страница 1 из 1
10.09.2007, 09:46
    #34787199
SkyS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XOR или метод подсчета контрольной суммы (КАК????)
Необходимо расчитать контрольную сумму файла. Не могу найти примеров на VB .
Конкретно есть файл имеющий определенную контрольную сумму.Алгоритм неизвестен но необходимо изменять файл . Меняется файл соответственно меняется контрольная сумма. Какими способами можно определить алгоритм. Слышал один способ XOR но примеров не могу найти в связи с обрезанным инетом. Зарание спасибо
...
Рейтинг: 0 / 0
10.09.2007, 10:03
    #34787249
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XOR или метод подсчета контрольной суммы (КАК????)
И каким образом знание алгоритма поможет подделать контрольную сумму? Тебе же это нужно?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
Dim CrcTableInit As Boolean
Dim CRCTable( 0  To  255 ) As Long

Public Function CalcCRC32(ByteArray() As Byte) As Long
    Dim I As Long
    Dim crc As Long
    If CrcTableInit = False Then Call Init_CRCTable
    crc = - 1 
    For I =  0  To UBound(ByteArray) -  1 
        crc = (((crc And &HFFFFFF00) \ &H100) And &HFFFFFF) Xor (CRCTable((crc And &HFF) Xor ByteArray(I)))
    Next I
    crc = crc Xor &HFFFFFFFF
    CalcCRC32 = crc
End Function

Private Sub Init_CRCTable()
Const Limit = &HEDB88320
Dim I As Long
Dim j As Long
Dim crc As Long
    For I =  0  To  255 
        crc = I
        For j =  0  To  7 
            If crc And  1  Then
                crc = (((crc And &HFFFFFFFE) \  2 ) And &H7FFFFFFF) Xor Limit
            Else
                crc = ((crc And &HFFFFFFFE) \  2 ) And &H7FFFFFFF
            End If
        Next j
        CRCTable(I) = crc
    Next I
    CrcTableInit = True
End Sub
...
Рейтинг: 0 / 0
10.09.2007, 10:16
    #34787284
SkyS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XOR или метод подсчета контрольной суммы (КАК????)
ЭЭЭ чет не догоняю. Тоесть мне нужно вызывать функцию CalcCRC32 отправить в нее массив и получить контрольную сумму. типа a = CalcCRC32 (имя массива) а - это и будет контрольная сумма
объясните плиз как загнать файл в массив типа byte . Просто никогда с байтами дело не имел .

Не откладывай на завтра то что можно сделать послезавтра :)
...
Рейтинг: 0 / 0
10.09.2007, 11:49
    #34787705
Бенедикт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XOR или метод подсчета контрольной суммы (КАК????)
SkySобъясните плиз как загнать файл в массив типа byte . Просто никогда с байтами дело не имел .
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Function ReadFileToByteArray(ByVal FileName As String) As Byte()
 Dim nFile As Integer
 FileLen FileName 'Ошибка, если файла не существует
 nFile = FreeFile()
 Open FileName For Binary Access Read As #nFile
 ReDim ReadFileToByteArray( 0  To LOF(nFile) -  1 ) As Byte
 Get #nFile, , ReadFileToByteArray
 Close #nFile
End Function
...
Рейтинг: 0 / 0
11.09.2007, 04:37
    #34789823
SkyS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XOR или метод подсчета контрольной суммы (КАК????)
А выдать ть контрольную сумму в техтbox примерно так ???


Код: plaintext
1.
2.
3.
4.
Private Sub Command1_Click()
Co.ShowOpen

Text1.Text = CalcCRC32(ReadFileToByteArray(Co.FileName))
End Sub
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
27.09.2008, 13:08
    #35563415
Ghost_X
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XOR или метод подсчета контрольной суммы (КАК????)
В Windows XP SP2 в свойствах файла есть контрольная сумма CRC-32 она отличается от получаемой преложенным выше способом hex(CalcCRC32(masiv)), почему они разные ?
...
Рейтинг: 0 / 0
27.09.2008, 19:46
    #35563729
Ghost_X
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XOR или метод подсчета контрольной суммы (КАК????)
Вот нашел еще один способ определения CRC-32, контрольная сумма совпадает с предложенным выше способом, но не совпадает с виндовой, что за фигня?


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
Option Explicit

'Вычисляет CRC-сумму -Public Function CRC(ByVal s As String, ByVal IsCRC32 As Boolean) As String

Public Function CRC(ByVal s As String, ByVal IsCRC32 As Boolean) As String
   ' Initializes CRC, updates CRC for each char in S, and finishes
   ' off at the end.
   ' Examining this function, and "CRCUpdate", should make it obvious
   ' how to do a CRC of a large binary file.
   ' 32 bit Returns zero for zero length string (probably why the CRC is
   ' complimented at the end.)
   Dim L As Long
   Dim LCRC As Long
   Dim ICRC As Integer
   
   Select Case IsCRC32
      Case True
         ' Initialise: this is part of the CRC32 protocol.
         LCRC = &HFFFFFFFF
         
         ' Update for each byte in S
         For L =  1  To Len(s): CRCUpdate LCRC, Asc(Mid$(s, L)): Next
         
         ' Finally flip all bits, again, just part of the prorocol.
         LCRC = Not LCRC
         
         ' Format the long CRC value as a hex string.
         ' Insert leading zeros if required.
         CRC = Hex$(LCRC): Do While Len(CRC) <  8 : CRC = "0" & CRC: Loop
         
      Case Else
         ' Initialise. Integer maths used.
         ICRC = &HFFFF
         
         ' Update for each byte in S
         For L =  1  To Len(s): CRCUpdate ICRC, Asc(Mid$(s, L)): Next
         
         ' Format the long CRC value as a hex string.
         ' Insert leading zeros if required.
         CRC = Hex$(ICRC): Do While Len(CRC) <  4 : CRC = "0" & CRC: Loop
         
   End Select
End Function

Private Sub CRCUpdate(ByRef CRC, ByVal b As Byte)
   ' Note no type declaration for CRC, as a long or integer can be passed.
   Const Polynomial16 As Integer = &HA001
   Const Polynomial32 As Long = &HEDB88320
   Dim Bits As Byte
   
   CRC = CRC Xor b
   For Bits =  0  To  7 
      Select Case (CRC And &H1) ' test LSB
            Case  0 
               ' LSB zero, just shift.
               CRC = rightShift(CRC)
            Case Else
               ' only xor with polynomial if lsb set.
               Select Case VarType(CRC)
                  Case vbLong
                     CRC = rightShift(CRC) Xor Polynomial32
                  Case Else
                     CRC = rightShift(CRC) Xor Polynomial16
               End Select
      End Select
   Next
End Sub

Private Function rightShift(ByVal V) As Long
   ' Note no type declaration for V, as a long or integer can be passed.
   ' Self-explanatory. The final line is essential (maybe
   ' not obvious) because the number is signed.
   Select Case VarType(V)
      Case vbLong
         rightShift = V And &HFFFFFFFE
         rightShift = rightShift \ &H2
         rightShift = rightShift And &H7FFFFFFF
      Case Else
         rightShift = V And &HFFFE
         rightShift = rightShift \ &H2
         rightShift = rightShift And &H7FFF
   End Select
End Function
...
Рейтинг: 0 / 0
29.09.2008, 10:59
    #35564647
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XOR или метод подсчета контрольной суммы (КАК????)
Ghost_XВ Windows XP SP2 в свойствах файла есть контрольная сумма CRC-32 Это где?
...
Рейтинг: 0 / 0
29.09.2008, 14:36
    #35565349
Ghost_X
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XOR или метод подсчета контрольной суммы (КАК????)
Вот где.
диск с системой без всяких наворотов.
...
Рейтинг: 0 / 0
29.09.2008, 14:37
    #35565359
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XOR или метод подсчета контрольной суммы (КАК????)
Хм, у меня нет такой закладки…
...
Рейтинг: 0 / 0
29.09.2008, 16:30
    #35565734
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XOR или метод подсчета контрольной суммы (КАК????)
> Автор: Ghost_X
> Вот где.
> диск с системой без всяких наворотов.
>
>
> К сообщению приложен файл (csum.JPG): cкачать. Размер - 38Kb


Опа! И я себе такое хочу! Где включается?

--
С уважением Горбонос Игорь Леонидович

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
29.09.2008, 16:55
    #35565838
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XOR или метод подсчета контрольной суммы (КАК????)
Ghost_XВот где.
диск с системой без всяких наворотов.
WinXP SP3 :)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
22.05.2012, 17:52
    #37806423
Алекс Wolfie
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XOR или метод подсчета контрольной суммы (КАК????)
Ghost_XВот где.
диск с системой без всяких наворотов.

Да сейчас)) тема оформления даже не стандартная, а Media Center, на рабочем столе procexp из пакета SysInternal Suite (оттуда и вкладка наверное), очень похоже на какой-нибудь ZverDVD, или около того... или еще что доставил в качестве расширения оболочки.

В стандартных вкладках этой опции нет в XP SP3, и в Win7 нет, и вообще нет, а жаль ;)
...
Рейтинг: 0 / 0
21.03.2013, 13:43
    #38193129
VikaS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XOR или метод подсчета контрольной суммы (КАК????)
Подскажите, как можно вытащить данные из таблицы просмотра arj файла?
Т.е.я просматриваю arj файл, там разбивка по составляющим с датой, размером, контрольной суммой, как эти данные загнать в текстовый файл? Желательно на VB.
...
Рейтинг: 0 / 0
21.03.2013, 14:51
    #38193325
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XOR или метод подсчета контрольной суммы (КАК????)
arj... Я уже и забыл про этот архиватор. Ностальгия...

Смысл вопроса не ясен.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
08.10.2016, 16:31
    #39323246
Ze-ws
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XOR или метод подсчета контрольной суммы (КАК????)
авторВот где.
диск с системой без всяких наворотов.


По моему это программа HashTab (если правильно написал название проги), или что нибудь подобное. Она добавляет такую вкладку в свойства файла. В Винде изначально ее нет
...
Рейтинг: 0 / 0
08.10.2016, 16:38
    #39323248
Ze-ws
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XOR или метод подсчета контрольной суммы (КАК????)
[quote Игорь Горбонос ]
Опа! И я себе такое хочу! Где включается?[/quote

Установите себе программу HashTab и будет вам счастье
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / XOR или метод подсчета контрольной суммы (КАК????) / 17 сообщений из 17, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]