Advertisement
Guest User

Untitled

a guest
Dec 16th, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.73 KB | None | 0 0
  1. section .data
  2. len equ 255
  3.  
  4. section .bss
  5. string1 resb len
  6. string2 resb 255
  7. prov resb 255
  8. key1 resb 255
  9. strlen resb 4
  10. key2 resd 1
  11.  
  12. section .text
  13. global _start
  14.  
  15. KeyA:
  16. mov esi, 0
  17. .Cycle1:
  18. mov dl, byte [eax+esi]
  19. cmp dl, 0
  20. je Ret
  21. add [key2], dword 1
  22. inc esi
  23. loop .Cycle1
  24.  
  25. Key:
  26. mov esi,0
  27. mov edi, 0
  28. mov ecx, [strlen]
  29.  
  30. Cycle2:
  31. mov bl, [eax+esi]
  32. mov [key1 + edi], bl
  33. inc esi
  34. inc edi
  35. dec ecx
  36. cmp ecx, 0
  37. je Ret
  38. cmp esi, [key2]
  39. jge Zero
  40. jmp Cycle2
  41.  
  42. Zero:
  43. mov esi, 0
  44. jmp Cycle2
  45.  
  46.  
  47. Encrypt:
  48. mov ecx, [strlen]
  49. mov esi, 0
  50. mov edi, 0
  51. mov ebx, 0
  52.  
  53. Cikl:
  54.  
  55.  
  56. xor dx, dx
  57. movzx bp, byte [key1 + esi]
  58. movzx di, byte [string1 + esi]
  59. mov [prov + esi], di
  60.  
  61. cmp di, 'A'
  62. jl Copy
  63.  
  64. movzx di, byte [prov + esi]
  65. cmp di, 'Z'
  66. jle EncA
  67.  
  68. movzx di, byte [prov + esi]
  69. cmp di, 'a'
  70. jl Copy
  71.  
  72. movzx di, byte [prov + esi]
  73. cmp di, 'z'
  74. jle Enca
  75.  
  76. movzx di, byte [prov + esi]
  77. cmp di, 'z'
  78. jg Copy
  79.  
  80.  
  81. Metka:
  82. cmp ecx, 0
  83. je Ret
  84. dec ecx
  85. inc esi
  86. jmp Cikl
  87.  
  88. Copy:
  89. mov dl, byte [prov + esi]
  90. mov [string2 + esi], dl
  91. jmp Metka
  92.  
  93. EncA:
  94. movzx di, byte [prov + esi]
  95. sub di, 'A'
  96. sub bp, 'a'
  97. add bp, di
  98. mov ax, bp
  99. mov bx, 26
  100. div bx
  101.  
  102. add dl, 1*'A'
  103. mov [string2 + esi], dl
  104. jmp Metka
  105.  
  106. Enca:
  107. movzx di, byte [prov + esi]
  108. add bp, di
  109. sub bp, 2*'a'
  110.  
  111. mov ax, bp
  112. mov bx, 26
  113. div bx
  114.  
  115. add dl, 1*'a'
  116. mov [string2 + esi], dl
  117. jmp Metka
  118.  
  119. ret
  120.  
  121. Ret:
  122. ret
  123. Exit:
  124. mov eax, 1
  125. int 80h
  126. _start:
  127.  
  128.  
  129. mov eax, 3
  130. mov ebx, 0
  131. mov ecx, string1
  132. mov edx, len
  133. int 80h
  134.  
  135. cmp eax, 0
  136. je Exit
  137.  
  138. mov [strlen], eax
  139. xor eax,eax
  140. mov eax, [esp+8]
  141.  
  142. call KeyA
  143. call Key
  144. call Encrypt
  145.  
  146. mov eax, 4
  147. mov ebx, 1
  148. mov ecx, string2
  149. mov edx, [strlen]
  150. int 80h
  151.  
  152. mov eax, 1
  153. int 80h
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement