외로운 Nova의 작업실

Assembly 언어 공부 - 33(전치 암호화 구현) 본문

Programming/Assembly

Assembly 언어 공부 - 33(전치 암호화 구현)

Nova_ 2022. 10. 29. 17:17

안녕하세요, 간단한 문자열을 넣으면 전치 암호화를 해주는 프로그램을 만들었다보니 기록을 하기위해 작성합니다.

 

- 코드


;-----------------INCLUDE-------------------------
;
include 	c:\assembly\irvine32.inc
includelib  c:\assembly\irvine32.lib
includelib  c:\assembly\kernel32.lib
includelib  c:\assembly\user32.lib
;-----------------------------------------------

.data
plaintext BYTE 50 DUP(?)
los DWORD 0

.code
main PROC
    mov ecx, 64h
    call readPlainText
L2 :call EncryptPlainText
    call outputCypherText
    call crlf
LOOP L2
    
main ENDP

readPlainText PROC
    push ecx
    mov edx, OFFSET plaintext
    mov ecx, SIZEOF plaintext
    call ReadString
    mov los, eax
    pop ecx
    ret
readPlainText ENDP

EncryptPlainText PROC
    push ecx
    mov ecx, 64h
L1 :mov eax, los 
    call RandomRange
    mov ebx, eax
    mov eax, los
    call RandomRange
    mov edx, eax
    mov al, plaintext[ebx]
    mov ah, plaintext[edx]
    mov plaintext[ebx], ah
    mov plaintext[edx], al
LOOP L1
    pop ecx
    ret
EncryptPlainText ENDP

outputCypherText PROC
    push ecx
    mov edx, OFFSET plaintext
    call WriteString
    pop ecx
    ret
outputCypherText ENDP



END main

 

- 작동 방식

처음에 문자열을 입력하면 문자열의 위치를 랜덤하게 바꾸어 100개를 출력해줍니다. 아래는 작동 예제입니다.

 

Comments