powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / XOR или метод подсчета контрольной суммы (КАК????)
17 сообщений из 17, страница 1 из 1
XOR или метод подсчета контрольной суммы (КАК????)
    #34787199
SkyS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Необходимо расчитать контрольную сумму файла. Не могу найти примеров на VB .
Конкретно есть файл имеющий определенную контрольную сумму.Алгоритм неизвестен но необходимо изменять файл . Меняется файл соответственно меняется контрольная сумма. Какими способами можно определить алгоритм. Слышал один способ XOR но примеров не могу найти в связи с обрезанным инетом. Зарание спасибо
...
Рейтинг: 0 / 0
XOR или метод подсчета контрольной суммы (КАК????)
    #34787249
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И каким образом знание алгоритма поможет подделать контрольную сумму? Тебе же это нужно?
Код: 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
XOR или метод подсчета контрольной суммы (КАК????)
    #34787284
SkyS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЭЭЭ чет не догоняю. Тоесть мне нужно вызывать функцию CalcCRC32 отправить в нее массив и получить контрольную сумму. типа a = CalcCRC32 (имя массива) а - это и будет контрольная сумма
объясните плиз как загнать файл в массив типа byte . Просто никогда с байтами дело не имел .

Не откладывай на завтра то что можно сделать послезавтра :)
...
Рейтинг: 0 / 0
XOR или метод подсчета контрольной суммы (КАК????)
    #34787705
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
XOR или метод подсчета контрольной суммы (КАК????)
    #34789823
SkyS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А выдать ть контрольную сумму в техтbox примерно так ???


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

Text1.Text = CalcCRC32(ReadFileToByteArray(Co.FileName))
End Sub
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
XOR или метод подсчета контрольной суммы (КАК????)
    #35563415
Ghost_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Windows XP SP2 в свойствах файла есть контрольная сумма CRC-32 она отличается от получаемой преложенным выше способом hex(CalcCRC32(masiv)), почему они разные ?
...
Рейтинг: 0 / 0
XOR или метод подсчета контрольной суммы (КАК????)
    #35563729
Ghost_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот нашел еще один способ определения 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
XOR или метод подсчета контрольной суммы (КАК????)
    #35564647
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ghost_XВ Windows XP SP2 в свойствах файла есть контрольная сумма CRC-32 Это где?
...
Рейтинг: 0 / 0
XOR или метод подсчета контрольной суммы (КАК????)
    #35565349
Ghost_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот где.
диск с системой без всяких наворотов.
...
Рейтинг: 0 / 0
XOR или метод подсчета контрольной суммы (КАК????)
    #35565359
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм, у меня нет такой закладки…
...
Рейтинг: 0 / 0
XOR или метод подсчета контрольной суммы (КАК????)
    #35565734
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Ghost_X
> Вот где.
> диск с системой без всяких наворотов.
>
>
> К сообщению приложен файл (csum.JPG): cкачать. Размер - 38Kb


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

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

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

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

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

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


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

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


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