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