Size: a a a

Ассемблер

2021 August 14

DF

Dollar Føølish in Ассемблер
ну ожидаемо как вы сказали либо врапнется с экзепшном либо без
источник

DF

Dollar Føølish in Ассемблер
но просто я не понимаю как 32-х разрядных адрес может выйти за пределы 32-х разрядного регистра
источник

DF

Dollar Føølish in Ассемблер
о чем вообще речь
источник

A

Aleksandr in Ассемблер
раз уж вопрос мне - вот дизасм
    xor edi, edi 
next_round:
   ror eax, 16
   rol ebx, 16
   xor eax, ebx
   ror eax, 16
   rol edx, 16
   add eax, edx
   rol eax, 16
   ror edx, 16
   sub eax, esi
   ror esi, 16
   ror eax, 16
   rol ebx, 16
   rol eax, 16
   ror edx, 16
   xor eax, edx
   rol eax, 16
   ror edx, 16
   sub eax, ebx
   add edi, 1
   cmp ah, 0xFE
   jbe next_round
   ret

EAX, EBX, EDX - ключи 1, 2 и 3 (вводятся числами через консоль)
ESI - константа 0x00402000
Задача считается решенной, когда EAX == 0x63C0FF19
источник

ST

Saenro T in Ассемблер
Ну это всё тот же где "3" ключа?
источник

A

Aleksandr in Ассемблер
да
источник

A

Aleksandr in Ассемблер
собственно, это функция хеширования, остальное - только ввод и вывод
источник

ST

Saenro T in Ассемблер
Сложно назвать функцию хеширующей при такой энтропии:63C0FF19=1100011110000001111111100011001 (какие бы значения на входе не были)
А ещё подозреваю что клубок можно как смотать, так и размотать без каких либо потерь, т.е. это не односторонняя функция свёртки.
И ещё: на ROL/ROR обычно не опираются в хороших алгоритмах.
источник

A

Aleksandr in Ассемблер
Более того, rol/ror строго смещают на половину машинного слова, то и дело возвращаясь к исходному состоянию
источник

s

s54816 in Ассемблер
Да ладно, во многих алгоритмах циклические сдвиги есть. В том же SHA-2, например.
источник

E

Entusiast in Ассемблер
Да я сейчас переписываю, чтоб фигни не было этой с 0, 0
Решил добавить ещё умножение\деление, и в 64-бит переписать по 3 ключа

А вот изначально старый баганый алгоритм:
;  EAX = In  / Text to encrypt
;  EBX = In  \ Random values / after used for decrypt!
;  EDX = In  / Random values / after used for decrypt!
;  EDI = Out / Counter for decrypt
;
;  Result:
;
;  Encrypted text in EAX
;  EBX, EDX, EDI - saved for decryption
encrypt:
 xor  edi, edi
 @@:
 ror  eax, 16
 rol  ebx, 16
 xor  eax, ebx
 
 ror  eax, 16
 rol  edx, 16
 add  eax, edx

 rol  eax, 16
 ror  edx, 16
   
 sub  eax, esi
 ror  esi, 16

 rol  ebx, 16
 ror  edx, 16
   
 xor  eax, edx

 rol  eax, 16
 ror  edx, 16

 sub  eax, ebx

 lea edi, dword[edi+1] ; Fixed flags stall
 cmp  ah, 0xFE
 jna  @b

 ret

;  EAX = In  / Text to decrypt
;  EBX = In  \ Saved random value from encrypt
;  EDX = In  / Saved random value from encrypt
;  EDI = In  / counter
;
;  Result:  
;
;  Decrypted text in EAX
;  EBX, EDX - saved
;  EDI - changed to 0
decrypt:
 add  eax, ebx

 rol  edx, 16
 ror  eax, 16
 xor  eax, edx
   
 rol  edx, 16
 ror  ebx, 16
 rol  esi, 16
 add  eax, esi

 rol  edx, 16
 ror  eax, 16
 sub  eax, edx

 rol  eax, 16
 xor  eax, ebx
   
 ror  ebx, 16
 rol  eax, 16

 sub  edi, 1
 jnz  decrypt  

 ret
источник

ST

Saenro T in Ассемблер
Есть — не значит опираться)
источник

s

s54816 in Ассемблер
Ну окей.
источник

E

Entusiast in Ассемблер
В хороших алгоритмах обычно задействовано сразу всё
источник

ST

Saenro T in Ассемблер
Чем больше, тем он тормознутей
источник

E

Entusiast in Ассемблер
Ну здесь тогда выбор - безопаснее, сложнее, медленнее. Или не безопаснее, но легче, быстрее

Насколько я помню, SHA512 сам по себе не быстрый
источник

ST

Saenro T in Ассемблер
Когда-то этот ковырнул, как называется — без понятия, но энтропия очень хорошая.
Эта штука в цикле несколько раз прокручивается. Мне даже кажется что автор сам намутил чего хотел.
источник

E

Entusiast in Ассемблер
Неплохо

Несколько раз - по рандомному условию, или передаётся в алгоритм?
источник

ST

Saenro T in Ассемблер
mov eax, a
mov ebx, b
mov ecx, c
mov edx, d
call
mov eax, d
mov ebx, a
mov ecx, b
mov edx, c
call
и т.д.
источник

aq

anonim qwerty in Ассемблер
Народ, какую либу для тг ботов посоветуете? На асме естественно
источник