collapse collapse

* Who's Online

  • Dot Guests: 73
  • Dot Hidden: 0
  • Dot Users: 0

There aren't any users online.

* Board Stats

  • stats Total Members: 88
  • stats Total Posts: 11163
  • stats Total Topics: 1699
  • stats Total Categories: 4
  • stats Total Boards: 76
  • stats Most Online: 248

Author Topic: Asm Examples: Encryption and Decryption using XOR and NOT combos  (Read 5060 times)

0 Members and 1 Guest are viewing this topic.

Offline Celestialkey

  • Administrator
  • Hero Member
  • *
  • Posts: 3962
  • Reputation 4874
  • Gender: Male
  • Its Alive!!
    • View Profile
    • www.CelestialCoding.com
Code: Delphi
  1.  
  2. TITLE   Simple Encryption using XOR 32-bit      (EncyptXOR.asm)
  3. ;       By. Justin Sterling
  4. ;               Celestialkey
  5. ;
  6. ;       http:\\www.CelestialCoding.com
  7. ;
  8.  
  9. INCLUDE Irvine32.inc
  10.  
  11. .data   ; Data hard coded into the executable
  12.         tPrompt         BYTE    "Enter a string to encrypt. > ", 0
  13.         tOutDecr        BYTE    "Decrypted: ", 0
  14.         tOutEncr        BYTE    "Encrypted: ", 0
  15.         tOutOrig        BYTE    "Original: ", 0
  16.        
  17.         tToCrypt        BYTE    50 DUP(0), 0
  18.         tDecrypt        BYTE    50 DUP(0), 0
  19.         tEncrypt        BYTE    50 DUP(0), 0
  20.        
  21. .data; Data to be created on program initialization
  22. .code   ; Executable code
  23.         main PROC
  24.         ;{
  25.                 CAll    GetText
  26.                 call    EncryptText
  27.                 call    DecryptText
  28.                 exit
  29.         ;}
  30.         main ENDP
  31.  
  32.         GetText PROC
  33.         ;{
  34.                 mov             edx, OFFSET tPrompt
  35.                 call    WriteString
  36.                
  37.                 mov             edx, OFFSET tToCrypt
  38.                 mov             EcX, (LENGTHOF tToCrypt)-1
  39.                 call    ReadString
  40.                 call    Crlf
  41.                
  42.                 mov             edx, OFFSET tOutOrig
  43.                 call    WriteString
  44.                 mov             edx, OFFSET tToCrypt
  45.                 call    WriteString
  46.                 call    Crlf
  47.                 ret
  48.         ;}
  49.         GetText ENDP
  50.        
  51.         EncryptText PROC
  52.         ;{
  53.                 mov             ecx, (LENGTHOF tToCrypt)-1      ; Set the counter
  54.                 mov             edx, OFFSET tToCrypt            ; Set the input offset
  55.                 mov             ebx, OFFSET tEncrypt            ; Set the output offset
  56.                 L1:                                                                     ; Loop
  57.                 ;{
  58.                         mov             eax, [edx]                              ; Get the first letter
  59.                         XOR             eax, 64C1h                              ; XOR it with 64C1 hex
  60.                         not             eax                                             ; NOT it giving the complement
  61.                         mov             [ebx], eax                              ; Copy it into the output variable
  62.                         inc             edx                                             ; Increment the position of input
  63.                         inc             EBX                                             ; Increment the position of output
  64.                 ;}
  65.                 LOOP L1
  66.                
  67.                 mov             edx, OFFSET tOutEncr            ;; Print out the string and the encrypted string
  68.                 call    WriteString
  69.                 mov             edx, OFFSET tEncrypt
  70.                 call    WriteString
  71.                 call    Crlf
  72.                 ret
  73.         ;}
  74.         EncryptText ENDP
  75.        
  76.         DecryptText PROC
  77.         ;{
  78.                 mov             ECX, (LENGTHOF tToCrypt)-1      ; Set the counter
  79.                 mov             edx, OFFSET tEncrypt            ; Set the unput offset
  80.                 mov             ebx, OFFSET tDecrypt            ; Set the output offset
  81.                 L2:                                                                     ; Loop
  82.                 ;{
  83.                         mov             eax, [edx]                              ; Get the first letter
  84.                         NOT             eax                                             ; Reverse the complement
  85.                         xor             eax, 64C1h                              ; XOR with same value to decrypt
  86.                         mov             [ebx], eax                              ; Store the decrypted letter
  87.                         inc             ebx                                             ; Increment both buffer locations
  88.                         inc             edx
  89.                 ;}
  90.                 LOOP L2
  91.                 mov             edx, OFFSET tOutDecr
  92.                 call    WriteString
  93.                 mov             edx, OFFSET tDecrypt
  94.                 call    WriteString
  95.                 call    Crlf
  96.                 ret
  97.         ;}
  98.         DecryptText ENDP
  99. END main
  100.  
  101.        
  102.  
Created By: Eczuo
Quote
I have noticed that people who claim that everything is predestined, and we can do nothing to change it, look both ways before they cross the road.
Quote
I'd prefer to die standing, than to live on my knees - Che Guevara
Quote
If you change the way you look at something, does that something change in any way?
- Quantum Theory

Hacking
Quote
Never in the field of human conflict was so much owed by so many to so few. - Winston Churchill


Quote from: Revelations 12:4
And his tail drew the third part of the stars of heaven, and did cast them into the earth; and the dragon stood before the woman which was ready to be delivered, for to devour her child as soon as it was born.

Quote
It takes skill to build an empire. It takes an idiot to maintain it.

 

Donate


* Search


* Recent Posts

Image Comparison by Shishka
[May 15, 2017, 01:18:02 pm]


Re: srchub - free source code hosting by Nathan
[December 14, 2015, 11:37:02 pm]


Re: srchub - free source code hosting by Celestialkey
[November 27, 2015, 08:51:42 am]


Updates by Nathan
[October 30, 2015, 08:27:36 pm]


Re: Client-Server Messaging by Nathan
[October 25, 2015, 05:48:57 pm]