Advertisement
Guest User

Untitled

a guest
Aug 22nd, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 1. inc eax ; Increment by 1 // изначально 0, увеличиваем на единицу
  2. 2. xor edx, edx ; Logical Exclusive OR
  3. 3. mov ecx, 37h // 55
  4. 4. mov ebp, 37h // 55
  5. 5. div ecx ; Unsigned Divide // div 55
  6. 6. mov eax, [esi+124h] // в начале в 124h хранится 32
  7. 7. inc eax ; Increment by 1 // увеличиваем 32 на единицу
  8. 8. mov ecx, edx
  9. 9. xor edx, edx ; Logical Exclusive OR
  10. 10. div ebp ; Unsigned Divide // div 55
  11. 11. mov [esi+120h], ecx // в 120h сохраняется первый индекс
  12. 12. mov [esi+124h], edx // в 124h сохраняется второй индекс
  13. 13. mov ebp, [esi+ecx*4+68] // читаем число из таблицы по первому индексу
  14. 14. mov edx, [esi+edx*4+68] // читаем число из таблицы по второму индексу
  15. 15. sub ebp, edx ; Integer Subtraction // теперь вычитаем и получаем байт ключа
  16. 16. mov [esi+ecx*4+68], ebp // заносим результат вычитания в то место таблицы, где 1ый индекс
  17. 17. mov eax, [esi+120h]
  18. 18. mov dl, [esp+edi+1014h+var_1000] // здесь берем 1 байт из буфера файла
  19. 19. mov cl, [esi+eax*4+44h] // здесь берем 1 байт (вопрос 3) из того, что получилось после вычитания
  20. 20. xor dl, cl ; Logical Exclusive OR // шифровка, дешифровка (xor) 1го байта файла по 1му байту ключа
  21. 21. mov ecx, [esp+1014h+var_1004]
  22. 22. mov [esp+edi+1014h+var_1000], dl // сохраняем результат шифрования, дешифровки в файл
  23. 23. inc edi ; Increment by 1 // проверка цикла
  24. 24. cmp edi, ecx ; Compare Two Operands
  25. 25. jl short loc_4B5692 ; Jump if Less
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement