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

📄 d-win32.asm

📁 网上下到的一个很详细介绍VPN基础知识的资料
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	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$L003end:	; 	; Fixup	ror	edi,		3	mov	eax,		DWORD PTR 20[esp]	ror	esi,		3	mov	DWORD PTR [eax],edi	mov	DWORD PTR 4[eax],esi	pop	ebp	pop	ebx	pop	edi	pop	esi	ret_des_encrypt2 ENDP_TEXT	ENDS_TEXT	SEGMENTPUBLIC	_des_encrypt3_des_encrypt3 PROC NEAR	push	ebx	mov	ebx,		DWORD PTR 8[esp]	push	ebp	push	esi	push	edi	; 	; Load the data words	mov	edi,		DWORD PTR [ebx]	mov	esi,		DWORD PTR 4[ebx]	sub	esp,		12	; 	; IP	rol	edi,		4	mov	edx,		edi	xor	edi,		esi	and	edi,		0f0f0f0f0h	xor	edx,		edi	xor	esi,		edi	; 	rol	esi,		20	mov	edi,		esi	xor	esi,		edx	and	esi,		0fff0000fh	xor	edi,		esi	xor	edx,		esi	; 	rol	edi,		14	mov	esi,		edi	xor	edi,		edx	and	edi,		033333333h	xor	esi,		edi	xor	edx,		edi	; 	rol	edx,		22	mov	edi,		edx	xor	edx,		esi	and	edx,		003fc03fch	xor	edi,		edx	xor	esi,		edx	; 	rol	edi,		9	mov	edx,		edi	xor	edi,		esi	and	edi,		0aaaaaaaah	xor	edx,		edi	xor	esi,		edi	; 	ror	edx,		3	ror	esi,		2	mov	DWORD PTR 4[ebx],esi	mov	eax,		DWORD PTR 36[esp]	mov	DWORD PTR [ebx],edx	mov	edi,		DWORD PTR 40[esp]	mov	esi,		DWORD PTR 44[esp]	mov	DWORD PTR 8[esp],1	mov	DWORD PTR 4[esp],eax	mov	DWORD PTR [esp],ebx	call	_des_encrypt2	mov	DWORD PTR 8[esp],0	mov	DWORD PTR 4[esp],edi	mov	DWORD PTR [esp],ebx	call	_des_encrypt2	mov	DWORD PTR 8[esp],1	mov	DWORD PTR 4[esp],esi	mov	DWORD PTR [esp],ebx	call	_des_encrypt2	add	esp,		12	mov	edi,		DWORD PTR [ebx]	mov	esi,		DWORD PTR 4[ebx]	; 	; FP	rol	esi,		2	rol	edi,		3	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 [ebx],eax	mov	DWORD PTR 4[ebx],esi	pop	edi	pop	esi	pop	ebp	pop	ebx	ret_des_encrypt3 ENDP_TEXT	ENDS_TEXT	SEGMENTPUBLIC	_des_decrypt3_des_decrypt3 PROC NEAR	push	ebx	mov	ebx,		DWORD PTR 8[esp]	push	ebp	push	esi	push	edi	; 	; Load the data words	mov	edi,		DWORD PTR [ebx]	mov	esi,		DWORD PTR 4[ebx]	sub	esp,		12	; 	; IP	rol	edi,		4	mov	edx,		edi	xor	edi,		esi	and	edi,		0f0f0f0f0h	xor	edx,		edi	xor	esi,		edi	; 	rol	esi,		20	mov	edi,		esi	xor	esi,		edx	and	esi,		0fff0000fh	xor	edi,		esi	xor	edx,		esi	; 	rol	edi,		14	mov	esi,		edi	xor	edi,		edx	and	edi,		033333333h	xor	esi,		edi	xor	edx,		edi	; 	rol	edx,		22	mov	edi,		edx	xor	edx,		esi	and	edx,		003fc03fch	xor	edi,		edx	xor	esi,		edx	; 	rol	edi,		9	mov	edx,		edi	xor	edi,		esi	and	edi,		0aaaaaaaah	xor	edx,		edi	xor	esi,		edi	; 	ror	edx,		3	ror	esi,		2	mov	DWORD PTR 4[ebx],esi	mov	esi,		DWORD PTR 36[esp]	mov	DWORD PTR [ebx],edx	mov	edi,		DWORD PTR 40[esp]	mov	eax,		DWORD PTR 44[esp]	mov	DWORD PTR 8[esp],0	mov	DWORD PTR 4[esp],eax	mov	DWORD PTR [esp],ebx	call	_des_encrypt2	mov	DWORD PTR 8[esp],1	mov	DWORD PTR 4[esp],edi	mov	DWORD PTR [esp],ebx	call	_des_encrypt2	mov	DWORD PTR 8[esp],0	mov	DWORD PTR 4[esp],esi	mov	DWORD PTR [esp],ebx	call	_des_encrypt2	add	esp,		12	mov	edi,		DWORD PTR [ebx]	mov	esi,		DWORD PTR 4[ebx]	; 	; FP	rol	esi,		2	rol	edi,		3	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 [ebx],eax	mov	DWORD PTR 4[ebx],esi	pop	edi	pop	esi	pop	ebp	pop	ebx	ret_des_decrypt3 ENDP_TEXT	ENDS_TEXT	SEGMENTPUBLIC	_des_ncbc_encrypt_des_ncbc_encrypt PROC NEAR	; 	push	ebp	push	ebx	push	esi	push	edi	mov	ebp,		DWORD PTR 28[esp]	; getting iv ptr from parameter 4	mov	ebx,		DWORD PTR 36[esp]	mov	esi,		DWORD PTR [ebx]	mov	edi,		DWORD PTR 4[ebx]	push	edi	push	esi	push	edi	push	esi	mov	ebx,		esp	mov	esi,		DWORD PTR 36[esp]	mov	edi,		DWORD PTR 40[esp]	; getting encrypt flag from parameter 5	mov	ecx,		DWORD PTR 56[esp]	; get and push parameter 5	push	ecx	; get and push parameter 3	mov	eax,		DWORD PTR 52[esp]	push	eax	push	ebx	cmp	ecx,		0	jz	$L004decrypt	and	ebp,		4294967288	mov	eax,		DWORD PTR 12[esp]	mov	ebx,		DWORD PTR 16[esp]	jz	$L005encrypt_finishL006encrypt_loop:	mov	ecx,		DWORD PTR [esi]	mov	edx,		DWORD PTR 4[esi]	xor	eax,		ecx	xor	ebx,		edx	mov	DWORD PTR 12[esp],eax	mov	DWORD PTR 16[esp],ebx	call	_des_encrypt	mov	eax,		DWORD PTR 12[esp]	mov	ebx,		DWORD PTR 16[esp]	mov	DWORD PTR [edi],eax	mov	DWORD PTR 4[edi],ebx	add	esi,		8	add	edi,		8	sub	ebp,		8	jnz	L006encrypt_loop$L005encrypt_finish:	mov	ebp,		DWORD PTR 56[esp]	and	ebp,		7	jz	$L007finish	xor	ecx,		ecx	xor	edx,		edx	mov	ebp,		DWORD PTR $L008cbc_enc_jmp_table[ebp*4]	jmp	 ebpL009ej7:	mov	dh,		BYTE PTR 6[esi]	shl	edx,		8L010ej6:	mov	dh,		BYTE PTR 5[esi]L011ej5:	mov	dl,		BYTE PTR 4[esi]L012ej4:	mov	ecx,		DWORD PTR [esi]	jmp	$L013ejendL014ej3:	mov	ch,		BYTE PTR 2[esi]	shl	ecx,		8L015ej2:	mov	ch,		BYTE PTR 1[esi]L016ej1:	mov	cl,		BYTE PTR [esi]$L013ejend:	xor	eax,		ecx	xor	ebx,		edx	mov	DWORD PTR 12[esp],eax	mov	DWORD PTR 16[esp],ebx	call	_des_encrypt	mov	eax,		DWORD PTR 12[esp]	mov	ebx,		DWORD PTR 16[esp]	mov	DWORD PTR [edi],eax	mov	DWORD PTR 4[edi],ebx	jmp	$L007finish$L004decrypt:	and	ebp,		4294967288	mov	eax,		DWORD PTR 20[esp]	mov	ebx,		DWORD PTR 24[esp]	jz	$L017decrypt_finishL018decrypt_loop:	mov	eax,		DWORD PTR [esi]	mov	ebx,		DWORD PTR 4[esi]	mov	DWORD PTR 12[esp],eax	mov	DWORD PTR 16[esp],ebx	call	_des_encrypt	mov	eax,		DWORD PTR 12[esp]	mov	ebx,		DWORD PTR 16[esp]	mov	ecx,		DWORD PTR 20[esp]	mov	edx,		DWORD PTR 24[esp]	xor	ecx,		eax	xor	edx,		ebx	mov	eax,		DWORD PTR [esi]	mov	ebx,		DWORD PTR 4[esi]	mov	DWORD PTR [edi],ecx	mov	DWORD PTR 4[edi],edx	mov	DWORD PTR 20[esp],eax	mov	DWORD PTR 24[esp],ebx	add	esi,		8	add	edi,		8	sub	ebp,		8	jnz	L018decrypt_loop$L017decrypt_finish:	mov	ebp,		DWORD PTR 56[esp]	and	ebp,		7	jz	$L007finish	mov	eax,		DWORD PTR [esi]	mov	ebx,		DWORD PTR 4[esi]	mov	DWORD PTR 12[esp],eax	mov	DWORD PTR 16[esp],ebx	call	_des_encrypt	mov	eax,		DWORD PTR 12[esp]	mov	ebx,		DWORD PTR 16[esp]	mov	ecx,		DWORD PTR 20[esp]	mov	edx,		DWORD PTR 24[esp]	xor	ecx,		eax	xor	edx,		ebx	mov	eax,		DWORD PTR [esi]	mov	ebx,		DWORD PTR 4[esi]L019dj7:	ror	edx,		16	mov	BYTE PTR 6[edi],dl	shr	edx,		16L020dj6:	mov	BYTE PTR 5[edi],dhL021dj5:	mov	BYTE PTR 4[edi],dlL022dj4:	mov	DWORD PTR [edi],ecx	jmp	$L023djendL024dj3:	ror	ecx,		16	mov	BYTE PTR 2[edi],cl	shl	ecx,		16L025dj2:	mov	BYTE PTR 1[esi],chL026dj1:	mov	BYTE PTR [esi],	cl$L023djend:	jmp	$L007finish$L007finish:	mov	ecx,		DWORD PTR 64[esp]	add	esp,		28	mov	DWORD PTR [ecx],eax	mov	DWORD PTR 4[ecx],ebx	pop	edi	pop	esi	pop	ebx	pop	ebp	ret$L008cbc_enc_jmp_table:	DD	0	DD	L016ej1	DD	L015ej2	DD	L014ej3	DD	L012ej4	DD	L011ej5	DD	L010ej6	DD	L009ej7L027cbc_dec_jmp_table:	DD	0	DD	L026dj1	DD	L025dj2	DD	L024dj3	DD	L022dj4	DD	L021dj5	DD	L020dj6	DD	L019dj7_des_ncbc_encrypt ENDP_TEXT	ENDS_TEXT	SEGMENTPUBLIC	_des_ede3_cbc_encrypt_des_ede3_cbc_encrypt PROC NEAR	; 	push	ebp	push	ebx	push	esi	push	edi	mov	ebp,		DWORD PTR 28[esp]	; getting iv ptr from parameter 6	mov	ebx,		DWORD PTR 44[esp]	mov	esi,		DWORD PTR [ebx]	mov	edi,		DWORD PTR 4[ebx]	push	edi	push	esi	push	edi	push	esi	mov	ebx,		esp	mov	esi,		DWORD PTR 36[esp]	mov	edi,		DWORD PTR 40[esp]	; getting encrypt flag from parameter 7	mov	ecx,		DWORD PTR 64[esp]	; get and push parameter 5	mov	eax,		DWORD PTR 56[esp]	push	eax	; get and push parameter 4	mov	eax,		DWORD PTR 56[esp]	push	eax	; get and push parameter 3	mov	eax,		DWORD PTR 56[esp]	push	eax	push	ebx	cmp	ecx,		0	jz	$L028decrypt	and	ebp,		4294967288	mov	eax,		DWORD PTR 16[esp]	mov	ebx,		DWORD PTR 20[esp]	jz	$L029encrypt_finishL030encrypt_loop:	mov	ecx,		DWORD PTR [esi]	mov	edx,		DWORD PTR 4[esi]	xor	eax,		ecx	xor	ebx,		edx	mov	DWORD PTR 16[esp],eax	mov	DWORD PTR 20[esp],ebx	call	_des_encrypt3	mov	eax,		DWORD PTR 16[esp]	mov	ebx,		DWORD PTR 20[esp]	mov	DWORD PTR [edi],eax	mov	DWORD PTR 4[edi],ebx	add	esi,		8	add	edi,		8	sub	ebp,		8	jnz	L030encrypt_loop$L029encrypt_finish:	mov	ebp,		DWORD PTR 60[esp]	and	ebp,		7	jz	$L031finish	xor	ecx,		ecx	xor	edx,		edx	mov	ebp,		DWORD PTR $L032cbc_enc_jmp_table[ebp*4]	jmp	 ebpL033ej7:	mov	dh,		BYTE PTR 6[esi]	shl	edx,		8L034ej6:	mov	dh,		BYTE PTR 5[esi]L035ej5:	mov	dl,		BYTE PTR 4[esi]L036ej4:	mov	ecx,		DWORD PTR [esi]	jmp	$L037ejendL038ej3:	mov	ch,		BYTE PTR 2[esi]	shl	ecx,		8L039ej2:	mov	ch,		BYTE PTR 1[esi]L040ej1:	mov	cl,		BYTE PTR [esi]$L037ejend:	xor	eax,		ecx	xor	ebx,		edx	mov	DWORD PTR 16[esp],eax	mov	DWORD PTR 20[esp],ebx	call	_des_encrypt3	mov	eax,		DWORD PTR 16[esp]	mov	ebx,		DWORD PTR 20[esp]	mov	DWORD PTR [edi],eax	mov	DWORD PTR 4[edi],ebx	jmp	$L031finish$L028decrypt:	and	ebp,		4294967288	mov	eax,		DWORD PTR 24[esp]	mov	ebx,		DWORD PTR 28[esp]	jz	$L041decrypt_finishL042decrypt_loop:	mov	eax,		DWORD PTR [esi]	mov	ebx,		DWORD PTR 4[esi]	mov	DWORD PTR 16[esp],eax	mov	DWORD PTR 20[esp],ebx	call	_des_decrypt3	mov	eax,		DWORD PTR 16[esp]	mov	ebx,		DWORD PTR 20[esp]	mov	ecx,		DWORD PTR 24[esp]	mov	edx,		DWORD PTR 28[esp]	xor	ecx,		eax	xor	edx,		ebx	mov	eax,		DWORD PTR [esi]	mov	ebx,		DWORD PTR 4[esi]	mov	DWORD PTR [edi],ecx	mov	DWORD PTR 4[edi],edx	mov	DWORD PTR 24[esp],eax	mov	DWORD PTR 28[esp],ebx	add	esi,		8	add	edi,		8	sub	ebp,		8	jnz	L042decrypt_loop$L041decrypt_finish:	mov	ebp,		DWORD PTR 60[esp]	and	ebp,		7	jz	$L031finish	mov	eax,		DWORD PTR [esi]	mov	ebx,		DWORD PTR 4[esi]	mov	DWORD PTR 16[esp],eax	mov	DWORD PTR 20[esp],ebx	call	_des_decrypt3	mov	eax,		DWORD PTR 16[esp]	mov	ebx,		DWORD PTR 20[esp]	mov	ecx,		DWORD PTR 24[esp]	mov	edx,		DWORD PTR 28[esp]	xor	ecx,		eax	xor	edx,		ebx	mov	eax,		DWORD PTR [esi]	mov	ebx,		DWORD PTR 4[esi]L043dj7:	ror	edx,		16	mov	BYTE PTR 6[edi],dl	shr	edx,		16L044dj6:	mov	BYTE PTR 5[edi],dhL045dj5:	mov	BYTE PTR 4[edi],dlL046dj4:	mov	DWORD PTR [edi],ecx	jmp	$L047djendL048dj3:	ror	ecx,		16	mov	BYTE PTR 2[edi],cl	shl	ecx,		16L049dj2:	mov	BYTE PTR 1[esi],chL050dj1:	mov	BYTE PTR [esi],	cl$L047djend:	jmp	$L031finish$L031finish:	mov	ecx,		DWORD PTR 76[esp]	add	esp,		32	mov	DWORD PTR [ecx],eax	mov	DWORD PTR 4[ecx],ebx	pop	edi	pop	esi	pop	ebx	pop	ebp	ret$L032cbc_enc_jmp_table:	DD	0	DD	L040ej1	DD	L039ej2	DD	L038ej3	DD	L036ej4	DD	L035ej5	DD	L034ej6	DD	L033ej7L051cbc_de

⌨️ 快捷键说明

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