Advertisement
first_one_dot_com

Univ-1lab

Oct 3rd, 2019
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. section .data
  2.  
  3.     msg:    db  "Hello world!"
  4.     len:    equ $ - msg
  5.     endl:   db 0xA
  6.     endlen: equ $ - endl
  7. section .text
  8.  
  9. global _start
  10.    
  11.     crypton:
  12.         _encrypt:
  13.             add [ebx], eax
  14.             inc ebx
  15.         loop _encrypt
  16.     ret
  17.    
  18.     print_endl:
  19.         mov ecx, endl
  20.         mov edx, endlen
  21.         mov ebx, 1           ; Дескриптор вывода
  22.         mov eax, 4           ; Системный call    
  23.         int 80h
  24.     ret
  25.  
  26.     print:
  27.         mov ebx, 1           ; Дескриптор вывода
  28.         mov eax, 4           ; Системный call    
  29.         int 80h
  30.     ret
  31.  
  32. _start:
  33.     ;заполнение массива Hello world'ом
  34.     mov ecx, len
  35.     mov ebx, encrypted   ;адрес encrypted[0]
  36.     mov eax, msg         ;адрес msg[0]
  37.     _adder:            
  38.         mov edx, [eax]   ;через edx заполняет encrypted элементами из msg  
  39.         mov [ebx], edx
  40.         inc eax          ;pointer +=1
  41.         inc ebx          ;pointer +=1
  42.     loop _adder    
  43.  
  44.     ;вывыод заполненного массива
  45.     mov ecx, encrypted
  46.     mov edx, len
  47.     call print
  48.    
  49.     ;endline (\n)
  50.     call print_endl
  51.    
  52.  
  53.     mov ecx, len
  54.     mov ebx, encrypted
  55.     mov eax, 3
  56.     call crypton
  57.  
  58.     ;вывод инкрипт массива    
  59.     mov ecx, encrypted
  60.     mov edx, len
  61.     call print
  62.  
  63.     ;endline (\n)
  64.     call print_endl
  65.  
  66.    
  67.     ;тут должен быть _reverse "строки"
  68.    
  69.     ;заполнение decrypted элементами encrypted
  70.     mov ecx, len
  71.     mov ebx, decrypted
  72.     mov eax, encrypted
  73.     _cryptadder:
  74.         mov edx, [eax]   ;через edx заполняет encrypted элементами из msg  
  75.         mov [ebx], edx
  76.         inc eax          ;pointer +=1
  77.         inc ebx          ;pointer +=1
  78.     loop _cryptadder
  79.  
  80.     ;вывод декрипт массива
  81.     mov ecx, decrypted
  82.     mov edx, len
  83.     call print
  84.  
  85.     ;endline (\n)
  86.     call print_endl
  87.    
  88.    
  89.    ; mov ecx, len
  90.    ; mov ebx, decrypted
  91.     ;_decrypt:
  92.      ;   sub [ebx], byte 3
  93.       ;  inc ebx
  94.     ;loop _decrypt
  95.    
  96.     mov ecx, len
  97.     mov ebx, decrypted
  98.     mov eax, -3
  99.     call crypton
  100.    
  101.    
  102.     ;вывод декрипт массива
  103.     mov ecx, decrypted
  104.     mov edx, len
  105.     call print  
  106.  
  107.     ;endline (\n)
  108.     call print_endl
  109.  
  110.  
  111.  
  112.     mov     eax, 1
  113.     int     0x80
  114.  
  115. section .bss
  116.  
  117.     encrypted resb len
  118.     decrypted resb len
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement