⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 base64encode.asm

📁 ASM 多种hash模块,汇编源码 MD2,4,5 SHA 等多种加密算法 还有其他赠送内容
💻 ASM
字号:
.686
.model flat, stdcall
option casemap :none

.data 
align 4
b64chars label byte
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'

.code

OPTION PROLOGUE:NONE
OPTION EPILOGUE:NONE

; returns b64 string len
Base64Encode proc pInputData:DWORD,dwDataLen:DWORD,pOutputStr:DWORD
	push ebp
	push esi
	push edi
	push ebx
	mov esi,[esp+1*4][4*4];pInputData
	mov ebp,[esp+2*4][4*4];dwDataLen
	mov edi,[esp+3*4][4*4];pOutputStr
	.repeat
		test ebp,ebp
		jz @F; exact divide 3?
		; EEEEEEFF CCDDDDDD BBBBCCCC AAAAAABB
		mov al,[esi+0]
		mov dl,[esi+1]
		mov bl,[esi+2]
		mov ah,al
		mov dh,dl
		mov bh,bl
		and ah,00000011b
		and dh,00001111b
		and bh,00111111b
		shr al,2
		shr dl,4
		shr bl,6
		shl ah,4
		shl dh,2
		or ah,dl
		or bl,dh
		movzx edx,al
		movzx ecx,ah
		mov al,[edx+b64chars]
		mov ah,[ecx+b64chars]
		movzx edx,bl
		movzx ecx,bh
		mov bl,[edx+b64chars]
		mov bh,[ecx+b64chars]
		and eax,0FFFFh
		shl ebx,16
		add esi,3
		or eax,ebx
		stosd
		sub ebp,3
	.until SIGN?
    add edi,ebp
    .repeat
		mov byte ptr [edi],'='
	    inc edi
		inc ebp
    .until ZERO?
@@:	mov eax,edi
	pop ebx
	mov [eax],bp
	pop edi
	pop esi
	sub eax,[esp+3*4][1*4];pOutputStr
	pop ebp
	ret 3*4
Base64Encode endp

OPTION PROLOGUE:PROLOGUEDEF 
OPTION EPILOGUE:EPILOGUEDEF


end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -