xor指令加解密(笔记)

来源:互联网 发布:验证java环境变量配置 编辑:程序博客网 时间:2024/05/16 02:08

1.伪指令PROC用于定义过程(PROC来自:1.PROCESS 2.PROCEDURE 两个单词的缩写)
用法实例:{
sample PROC
指令1
指令2

指令n
ret
sample ENDP
}
2.伪指令INVOKE用于:调用过程并传递相应参数
用法实例:{
INVOKE sample ,参数1,参数2,…,参数n
}
3.CALL CRLF指令,CRLF是Carriage-Return Line-Feed的缩写,意思是回车换行。
4.edx寄存器,多功能寄存器,用于储存数据,传递参数
对于传递参数功能的例子:
{
mov edx,参数1
call 函数1
}
5.WriteString函数,作用:向设备写入流。
ResdString函数,作用:从设备读出流。
6.代码
{

KEY=239
BUFMAX=128

.data
sPrompt BYTE “Enter the plain text:”,0
sEncrypt BYTE “Cipher text: “,0
sDecrypt BYTE “Decryted: “,0
buffer BYTE BUFMAX+1 DUP(0)
bufSize DWORD ?

.code
main PROC

call InputStringcall TranslateBuffermov edx,offset sEncryptcall DisplayMessagecall TranslateBuffermov edx,offset sDecryptcall DisplayMessageexit

main ENDP

InputString PROC

pushadmov edx,offset sPromptcall WriteStringmov ecx,BUFMAXmov edx,offset buffercall ReadStringmov bufSize,eaxcall Crlfpopadret

InputString endp

TranslateBuffer PROC

Pushadmov ecx,bufSizemov esi,0F1:xor buffer[esi],KEYinc esiloop F1popadret

TranslateBuffer endp

DisplayMessage PROC

pushadcall WriteStringmov edx,offset buffercall WriteStringcall Crlfcall Crlfpopadret

DisplayMessage endp
END main
}

7.测试
{
这里写图片描述
}