lazix

Credentials

Aug 31st, 2020 (edited)
86
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. global _start:
  2.  
  3.  
  4. section .text:
  5.  
  6. _start:
  7.         mov eax, 0x4            ; write syscall
  8.         mov ebx, 1              ; write file descriptor
  9.         mov ecx, message        ; use msg as buffer
  10.         mov edx, message_lngth  ; use msg_lngth as i/o pointer
  11.         int 0x80                ; invoke syscall
  12.         mov eax, 0x3            ; read syscall
  13.         mov ebx, 0              ; read file descriptor
  14.         mov ecx, str            ; use str as the message
  15.         xor edx, edx            ; clear edx
  16.         add edx, ecx            ; add edx with string supplied  
  17.         push ecx                ; push str to stack
  18.         mov ecx, message2       ; use msg2 as the buffer
  19.         mov esi, str
  20.         add esi, ecx            ; add user input to the buffer
  21.         pop ecx                 ; resore ecx str
  22.         cmp byte[ecx], 0x62
  23.         jne TYPE
  24.         mov eax, 0x4
  25.         mov ebx, 1
  26.         mov ecx, str
  27.         add ecx, edx            
  28.         int 0x80                ; invoke
  29.         mov eax, 0x1            ; exit
  30.         mov ebx, 0              ; return 0
  31.  
  32. TYPE:
  33.         pop ecx
  34.         mov ecx, message2
  35.         add ecx, str
  36.         int 0x80
  37.         mov eax, 0x1
  38.         mov ebx, 0      
  39.  
  40. section .rodata:
  41.         message: db "What's your name?", 0x0A ; \n
  42.         message2: db "Your name is ", 0x0A
  43.         message_lngth: equ $-message    ; notates address, gives difference of message                                          and msg_length
  44.         str: db 0x3
  45.                                        
RAW Paste Data