Advertisement
Guest User

Untitled

a guest
Sep 22nd, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.59 KB | None | 0 0
  1. ;----------------------------------------
  2. ;
  3. ; :: XOR ENCRYPT ::
  4. ; usage: ./xor <message> <key>
  5. ; VBHS/ TOuhami Kasbaoui
  6. ;---------------------------------------
  7.  
  8.  
  9. [BITS 64]
  10.  
  11. section .data
  12. usageMessage: db 'usage: ./xor <message> <key>', 0x0a, 0x00
  13. lenMessage: equ $-usageMessage
  14.  
  15. section .text
  16. global main
  17. global xor
  18.  
  19. main:
  20. push rbp
  21. mov rbp, rsp
  22. sub rsp, 0x20
  23.  
  24. mov [rbp-0x04], edi ;ARGC
  25. mov [rbp-0x10], rsi ;ARGV
  26. cmp edi, 0x03 ;ARGC == 3?
  27. jl usage
  28. jg usage
  29.  
  30. mov rdi, [rsi+0x08] ;Second Pointer
  31. mov rsi, [rsi+0x10] ;Third Pointer
  32. call stringLen
  33. call xor
  34.  
  35. jmp exit
  36.  
  37. xor:
  38. push rbp
  39. mov rbp, rsp
  40.  
  41. xor rax, rax
  42.  
  43. .xorCipher:
  44. mov dl, byte [rdi+rax]
  45. xor byte[rsi + rax], dl
  46. inc rax
  47. cmp rax, rcx
  48. je .printMessage
  49. jmp .xorCipher
  50.  
  51. .printMessage:
  52. mov rax, 0x01
  53. mov rdi, 0x01
  54. mov rdx, rcx
  55. syscall
  56.  
  57. mov rsp, rbp
  58. pop rbp
  59. ret
  60.  
  61. stringLen:
  62. push rbp
  63. mov rbp, rsp
  64. xor rcx, rcx
  65.  
  66. .nextchar:
  67. cmp byte[rdi+rcx * 1], 0x00
  68. je .exitStrlen
  69. inc rcx
  70. jmp .nextchar
  71.  
  72. .exitStrlen:
  73. mov rsp, rbp
  74. pop rbp
  75. ret
  76.  
  77. usage:
  78. mov rax, 0x01
  79. mov rdi, 0x01
  80. mov rsi, usageMessage
  81. mov rdx, lenMessage
  82. syscall
  83.  
  84. exit:
  85. mov rsp, rbp
  86. pop rbp
  87. ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement