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

📄 d-win32.asm

📁 提供了很多种加密算法和CA认证及相关服务如CMP、OCSP等的开发
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	mov	cl,		dh
	shr	eax,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0100h+ebx]
	xor	edi,		ebp
	mov	bl,		ah
	shr	edx,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0300h+ecx]
	xor	edi,		ebp
	mov	ebp,		DWORD PTR 24[esp]
	mov	cl,		dh
	and	eax,		0ffh
	and	edx,		0ffh
	mov	ebx,		DWORD PTR _des_SPtrans[0600h+ebx]
	xor	edi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0700h+ecx]
	xor	edi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0400h+eax]
	xor	edi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0500h+edx]
	xor	edi,		ebx
	; 
	; Round 0
	mov	eax,		DWORD PTR [ebp]
	xor	ebx,		ebx
	mov	edx,		DWORD PTR 4[ebp]
	xor	eax,		edi
	xor	edx,		edi
	and	eax,		0fcfcfcfch
	and	edx,		0cfcfcfcfh
	mov	bl,		al
	mov	cl,		ah
	ror	edx,		4
	mov	ebp,		DWORD PTR _des_SPtrans[ebx]
	mov	bl,		dl
	xor	esi,		ebp
	mov	ebp,		DWORD PTR _des_SPtrans[0200h+ecx]
	xor	esi,		ebp
	mov	cl,		dh
	shr	eax,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0100h+ebx]
	xor	esi,		ebp
	mov	bl,		ah
	shr	edx,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0300h+ecx]
	xor	esi,		ebp
	mov	ebp,		DWORD PTR 24[esp]
	mov	cl,		dh
	and	eax,		0ffh
	and	edx,		0ffh
	mov	ebx,		DWORD PTR _des_SPtrans[0600h+ebx]
	xor	esi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0700h+ecx]
	xor	esi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0400h+eax]
	xor	esi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0500h+edx]
	xor	esi,		ebx
$L001end:
	; 
	; FP
	mov	edx,		DWORD PTR 20[esp]
	ror	esi,		1
	mov	eax,		edi
	xor	edi,		esi
	and	edi,		0aaaaaaaah
	xor	eax,		edi
	xor	esi,		edi
	; 
	rol	eax,		23
	mov	edi,		eax
	xor	eax,		esi
	and	eax,		003fc03fch
	xor	edi,		eax
	xor	esi,		eax
	; 
	rol	edi,		10
	mov	eax,		edi
	xor	edi,		esi
	and	edi,		033333333h
	xor	eax,		edi
	xor	esi,		edi
	; 
	rol	esi,		18
	mov	edi,		esi
	xor	esi,		eax
	and	esi,		0fff0000fh
	xor	edi,		esi
	xor	eax,		esi
	; 
	rol	edi,		12
	mov	esi,		edi
	xor	edi,		eax
	and	edi,		0f0f0f0f0h
	xor	esi,		edi
	xor	eax,		edi
	; 
	ror	eax,		4
	mov	DWORD PTR [edx],eax
	mov	DWORD PTR 4[edx],esi
	pop	ebp
	pop	ebx
	pop	edi
	pop	esi
	ret
_des_encrypt ENDP
_TEXT	ENDS
_TEXT	SEGMENT
PUBLIC	_des_encrypt2
EXTRN   _des_SPtrans:DWORD
_des_encrypt2 PROC NEAR
	push	esi
	push	edi
	; 
	; Load the 2 words
	mov	eax,		DWORD PTR 12[esp]
	xor	ecx,		ecx
	push	ebx
	push	ebp
	mov	esi,		DWORD PTR [eax]
	mov	ebx,		DWORD PTR 28[esp]
	rol	esi,		3
	mov	edi,		DWORD PTR 4[eax]
	rol	edi,		3
	mov	ebp,		DWORD PTR 24[esp]
	cmp	ebx,		0
	je	$L002start_decrypt
	; 
	; Round 0
	mov	eax,		DWORD PTR [ebp]
	xor	ebx,		ebx
	mov	edx,		DWORD PTR 4[ebp]
	xor	eax,		esi
	xor	edx,		esi
	and	eax,		0fcfcfcfch
	and	edx,		0cfcfcfcfh
	mov	bl,		al
	mov	cl,		ah
	ror	edx,		4
	mov	ebp,		DWORD PTR _des_SPtrans[ebx]
	mov	bl,		dl
	xor	edi,		ebp
	mov	ebp,		DWORD PTR _des_SPtrans[0200h+ecx]
	xor	edi,		ebp
	mov	cl,		dh
	shr	eax,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0100h+ebx]
	xor	edi,		ebp
	mov	bl,		ah
	shr	edx,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0300h+ecx]
	xor	edi,		ebp
	mov	ebp,		DWORD PTR 24[esp]
	mov	cl,		dh
	and	eax,		0ffh
	and	edx,		0ffh
	mov	ebx,		DWORD PTR _des_SPtrans[0600h+ebx]
	xor	edi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0700h+ecx]
	xor	edi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0400h+eax]
	xor	edi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0500h+edx]
	xor	edi,		ebx
	; 
	; Round 1
	mov	eax,		DWORD PTR 8[ebp]
	xor	ebx,		ebx
	mov	edx,		DWORD PTR 12[ebp]
	xor	eax,		edi
	xor	edx,		edi
	and	eax,		0fcfcfcfch
	and	edx,		0cfcfcfcfh
	mov	bl,		al
	mov	cl,		ah
	ror	edx,		4
	mov	ebp,		DWORD PTR _des_SPtrans[ebx]
	mov	bl,		dl
	xor	esi,		ebp
	mov	ebp,		DWORD PTR _des_SPtrans[0200h+ecx]
	xor	esi,		ebp
	mov	cl,		dh
	shr	eax,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0100h+ebx]
	xor	esi,		ebp
	mov	bl,		ah
	shr	edx,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0300h+ecx]
	xor	esi,		ebp
	mov	ebp,		DWORD PTR 24[esp]
	mov	cl,		dh
	and	eax,		0ffh
	and	edx,		0ffh
	mov	ebx,		DWORD PTR _des_SPtrans[0600h+ebx]
	xor	esi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0700h+ecx]
	xor	esi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0400h+eax]
	xor	esi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0500h+edx]
	xor	esi,		ebx
	; 
	; Round 2
	mov	eax,		DWORD PTR 16[ebp]
	xor	ebx,		ebx
	mov	edx,		DWORD PTR 20[ebp]
	xor	eax,		esi
	xor	edx,		esi
	and	eax,		0fcfcfcfch
	and	edx,		0cfcfcfcfh
	mov	bl,		al
	mov	cl,		ah
	ror	edx,		4
	mov	ebp,		DWORD PTR _des_SPtrans[ebx]
	mov	bl,		dl
	xor	edi,		ebp
	mov	ebp,		DWORD PTR _des_SPtrans[0200h+ecx]
	xor	edi,		ebp
	mov	cl,		dh
	shr	eax,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0100h+ebx]
	xor	edi,		ebp
	mov	bl,		ah
	shr	edx,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0300h+ecx]
	xor	edi,		ebp
	mov	ebp,		DWORD PTR 24[esp]
	mov	cl,		dh
	and	eax,		0ffh
	and	edx,		0ffh
	mov	ebx,		DWORD PTR _des_SPtrans[0600h+ebx]
	xor	edi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0700h+ecx]
	xor	edi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0400h+eax]
	xor	edi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0500h+edx]
	xor	edi,		ebx
	; 
	; Round 3
	mov	eax,		DWORD PTR 24[ebp]
	xor	ebx,		ebx
	mov	edx,		DWORD PTR 28[ebp]
	xor	eax,		edi
	xor	edx,		edi
	and	eax,		0fcfcfcfch
	and	edx,		0cfcfcfcfh
	mov	bl,		al
	mov	cl,		ah
	ror	edx,		4
	mov	ebp,		DWORD PTR _des_SPtrans[ebx]
	mov	bl,		dl
	xor	esi,		ebp
	mov	ebp,		DWORD PTR _des_SPtrans[0200h+ecx]
	xor	esi,		ebp
	mov	cl,		dh
	shr	eax,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0100h+ebx]
	xor	esi,		ebp
	mov	bl,		ah
	shr	edx,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0300h+ecx]
	xor	esi,		ebp
	mov	ebp,		DWORD PTR 24[esp]
	mov	cl,		dh
	and	eax,		0ffh
	and	edx,		0ffh
	mov	ebx,		DWORD PTR _des_SPtrans[0600h+ebx]
	xor	esi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0700h+ecx]
	xor	esi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0400h+eax]
	xor	esi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0500h+edx]
	xor	esi,		ebx
	; 
	; Round 4
	mov	eax,		DWORD PTR 32[ebp]
	xor	ebx,		ebx
	mov	edx,		DWORD PTR 36[ebp]
	xor	eax,		esi
	xor	edx,		esi
	and	eax,		0fcfcfcfch
	and	edx,		0cfcfcfcfh
	mov	bl,		al
	mov	cl,		ah
	ror	edx,		4
	mov	ebp,		DWORD PTR _des_SPtrans[ebx]
	mov	bl,		dl
	xor	edi,		ebp
	mov	ebp,		DWORD PTR _des_SPtrans[0200h+ecx]
	xor	edi,		ebp
	mov	cl,		dh
	shr	eax,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0100h+ebx]
	xor	edi,		ebp
	mov	bl,		ah
	shr	edx,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0300h+ecx]
	xor	edi,		ebp
	mov	ebp,		DWORD PTR 24[esp]
	mov	cl,		dh
	and	eax,		0ffh
	and	edx,		0ffh
	mov	ebx,		DWORD PTR _des_SPtrans[0600h+ebx]
	xor	edi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0700h+ecx]
	xor	edi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0400h+eax]
	xor	edi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0500h+edx]
	xor	edi,		ebx
	; 
	; Round 5
	mov	eax,		DWORD PTR 40[ebp]
	xor	ebx,		ebx
	mov	edx,		DWORD PTR 44[ebp]
	xor	eax,		edi
	xor	edx,		edi
	and	eax,		0fcfcfcfch
	and	edx,		0cfcfcfcfh
	mov	bl,		al
	mov	cl,		ah
	ror	edx,		4
	mov	ebp,		DWORD PTR _des_SPtrans[ebx]
	mov	bl,		dl
	xor	esi,		ebp
	mov	ebp,		DWORD PTR _des_SPtrans[0200h+ecx]
	xor	esi,		ebp
	mov	cl,		dh
	shr	eax,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0100h+ebx]
	xor	esi,		ebp
	mov	bl,		ah
	shr	edx,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0300h+ecx]
	xor	esi,		ebp
	mov	ebp,		DWORD PTR 24[esp]
	mov	cl,		dh
	and	eax,		0ffh
	and	edx,		0ffh
	mov	ebx,		DWORD PTR _des_SPtrans[0600h+ebx]
	xor	esi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0700h+ecx]
	xor	esi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0400h+eax]
	xor	esi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0500h+edx]
	xor	esi,		ebx
	; 
	; Round 6
	mov	eax,		DWORD PTR 48[ebp]
	xor	ebx,		ebx
	mov	edx,		DWORD PTR 52[ebp]
	xor	eax,		esi
	xor	edx,		esi
	and	eax,		0fcfcfcfch
	and	edx,		0cfcfcfcfh
	mov	bl,		al
	mov	cl,		ah
	ror	edx,		4
	mov	ebp,		DWORD PTR _des_SPtrans[ebx]
	mov	bl,		dl
	xor	edi,		ebp
	mov	ebp,		DWORD PTR _des_SPtrans[0200h+ecx]
	xor	edi,		ebp
	mov	cl,		dh
	shr	eax,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0100h+ebx]
	xor	edi,		ebp
	mov	bl,		ah
	shr	edx,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0300h+ecx]
	xor	edi,		ebp
	mov	ebp,		DWORD PTR 24[esp]
	mov	cl,		dh
	and	eax,		0ffh
	and	edx,		0ffh
	mov	ebx,		DWORD PTR _des_SPtrans[0600h+ebx]
	xor	edi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0700h+ecx]
	xor	edi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0400h+eax]
	xor	edi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0500h+edx]
	xor	edi,		ebx
	; 
	; Round 7
	mov	eax,		DWORD PTR 56[ebp]
	xor	ebx,		ebx
	mov	edx,		DWORD PTR 60[ebp]
	xor	eax,		edi
	xor	edx,		edi
	and	eax,		0fcfcfcfch
	and	edx,		0cfcfcfcfh
	mov	bl,		al
	mov	cl,		ah
	ror	edx,		4
	mov	ebp,		DWORD PTR _des_SPtrans[ebx]
	mov	bl,		dl
	xor	esi,		ebp
	mov	ebp,		DWORD PTR _des_SPtrans[0200h+ecx]
	xor	esi,		ebp
	mov	cl,		dh
	shr	eax,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0100h+ebx]
	xor	esi,		ebp
	mov	bl,		ah
	shr	edx,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0300h+ecx]
	xor	esi,		ebp
	mov	ebp,		DWORD PTR 24[esp]
	mov	cl,		dh
	and	eax,		0ffh
	and	edx,		0ffh
	mov	ebx,		DWORD PTR _des_SPtrans[0600h+ebx]
	xor	esi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0700h+ecx]
	xor	esi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0400h+eax]
	xor	esi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0500h+edx]
	xor	esi,		ebx
	; 
	; Round 8
	mov	eax,		DWORD PTR 64[ebp]
	xor	ebx,		ebx
	mov	edx,		DWORD PTR 68[ebp]
	xor	eax,		esi
	xor	edx,		esi
	and	eax,		0fcfcfcfch
	and	edx,		0cfcfcfcfh
	mov	bl,		al
	mov	cl,		ah
	ror	edx,		4
	mov	ebp,		DWORD PTR _des_SPtrans[ebx]
	mov	bl,		dl
	xor	edi,		ebp
	mov	ebp,		DWORD PTR _des_SPtrans[0200h+ecx]
	xor	edi,		ebp
	mov	cl,		dh
	shr	eax,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0100h+ebx]
	xor	edi,		ebp
	mov	bl,		ah
	shr	edx,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0300h+ecx]
	xor	edi,		ebp
	mov	ebp,		DWORD PTR 24[esp]
	mov	cl,		dh
	and	eax,		0ffh
	and	edx,		0ffh
	mov	ebx,		DWORD PTR _des_SPtrans[0600h+ebx]
	xor	edi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0700h+ecx]
	xor	edi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0400h+eax]
	xor	edi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0500h+edx]
	xor	edi,		ebx
	; 
	; Round 9
	mov	eax,		DWORD PTR 72[ebp]
	xor	ebx,		ebx
	mov	edx,		DWORD PTR 76[ebp]
	xor	eax,		edi
	xor	edx,		edi
	and	eax,		0fcfcfcfch
	and	edx,		0cfcfcfcfh
	mov	bl,		al
	mov	cl,		ah
	ror	edx,		4
	mov	ebp,		DWORD PTR _des_SPtrans[ebx]
	mov	bl,		dl
	xor	esi,		ebp
	mov	ebp,		DWORD PTR _des_SPtrans[0200h+ecx]
	xor	esi,		ebp
	mov	cl,		dh
	shr	eax,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0100h+ebx]
	xor	esi,		ebp
	mov	bl,		ah
	shr	edx,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0300h+ecx]
	xor	esi,		ebp
	mov	ebp,		DWORD PTR 24[esp]
	mov	cl,		dh
	and	eax,		0ffh
	and	edx,		0ffh
	mov	ebx,		DWORD PTR _des_SPtrans[0600h+ebx]
	xor	esi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0700h+ecx]
	xor	esi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0400h+eax]
	xor	esi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0500h+edx]
	xor	esi,		ebx
	; 
	; Round 10
	mov	eax,		DWORD PTR 80[ebp]
	xor	ebx,		ebx
	mov	edx,		DWORD PTR 84[ebp]
	xor	eax,		esi
	xor	edx,		esi
	and	eax,		0fcfcfcfch
	and	edx,		0cfcfcfcfh
	mov	bl,		al
	mov	cl,		ah
	ror	edx,		4
	mov	ebp,		DWORD PTR _des_SPtrans[ebx]
	mov	bl,		dl
	xor	edi,		ebp
	mov	ebp,		DWORD PTR _des_SPtrans[0200h+ecx]
	xor	edi,		ebp
	mov	cl,		dh
	shr	eax,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0100h+ebx]
	xor	edi,		ebp
	mov	bl,		ah
	shr	edx,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0300h+ecx]
	xor	edi,		ebp
	mov	ebp,		DWORD PTR 24[esp]
	mov	cl,		dh
	and	eax,		0ffh
	and	edx,		0ffh
	mov	ebx,		DWORD PTR _des_SPtrans[0600h+ebx]
	xor	edi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0700h+ecx]
	xor	edi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0400h+eax]
	xor	edi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0500h+edx]
	xor	edi,		ebx
	; 
	; Round 11
	mov	eax,		DWORD PTR 88[ebp]
	xor	ebx,		ebx
	mov	edx,		DWORD PTR 92[ebp]
	xor	eax,		edi
	xor	edx,		edi
	and	eax,		0fcfcfcfch
	and	edx,		0cfcfcfcfh
	mov	bl,		al
	mov	cl,		ah
	ror	edx,		4
	mov	ebp,		DWORD PTR _des_SPtrans[ebx]
	mov	bl,		dl
	xor	esi,		ebp
	mov	ebp,		DWORD PTR _des_SPtrans[0200h+ecx]
	xor	esi,		ebp
	mov	cl,		dh
	shr	eax,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0100h+ebx]
	xor	esi,		ebp
	mov	bl,		ah
	shr	edx,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0300h+ecx]
	xor	esi,		ebp
	mov	ebp,		DWORD PTR 24[esp]
	mov	cl,		dh
	and	eax,		0ffh
	and	edx,		0ffh
	mov	ebx,		DWORD PTR _des_SPtrans[0600h+ebx]
	xor	esi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0700h+ecx]
	xor	esi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0400h+eax]
	xor	esi,		ebx
	mov	ebx,		DWORD PTR _des_SPtrans[0500h+edx]
	xor	esi,		ebx
	; 
	; Round 12
	mov	eax,		DWORD PTR 96[ebp]
	xor	ebx,		ebx
	mov	edx,		DWORD PTR 100[ebp]
	xor	eax,		esi
	xor	edx,		esi
	and	eax,		0fcfcfcfch
	and	edx,		0cfcfcfcfh
	mov	bl,		al
	mov	cl,		ah
	ror	edx,		4
	mov	ebp,		DWORD PTR _des_SPtrans[ebx]
	mov	bl,		dl
	xor	edi,		ebp
	mov	ebp,		DWORD PTR _des_SPtrans[0200h+ecx]
	xor	edi,		ebp
	mov	cl,		dh
	shr	eax,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0100h+ebx]
	xor	edi,		ebp
	mov	bl,		ah
	shr	edx,		16
	mov	ebp,		DWORD PTR _des_SPtrans[0300h+ecx]
	xor	edi,		ebp
	mov	ebp,		DWORD PTR 24[esp]
	mov	cl,		dh

⌨️ 快捷键说明

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