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

📄 c-win32.asm

📁 安全套接字层
💻 ASM
📖 第 1 页 / 共 2 页
字号:
	and	ebx,		255	shr	edx,		16	xor	eax,		eax	mov	al,		dh	and	edx,		255	mov	ecx,		DWORD PTR _CAST_S_table0[ecx*4]	mov	ebx,		DWORD PTR _CAST_S_table1[ebx*4]	xor	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table2[eax*4]	sub	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table3[edx*4]	add	ecx,		ebx	xor	esi,		ecx$L001cast_dec_skip:	; round 11	mov	edx,		DWORD PTR 88[ebp]	mov	ecx,		DWORD PTR 92[ebp]	sub	edx,		esi	rol	edx,		cl	mov	ebx,		edx	xor	ecx,		ecx	mov	cl,		dh	and	ebx,		255	shr	edx,		16	xor	eax,		eax	mov	al,		dh	and	edx,		255	mov	ecx,		DWORD PTR _CAST_S_table0[ecx*4]	mov	ebx,		DWORD PTR _CAST_S_table1[ebx*4]	add	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table2[eax*4]	xor	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table3[edx*4]	sub	ecx,		ebx	xor	edi,		ecx	; round 10	mov	edx,		DWORD PTR 80[ebp]	mov	ecx,		DWORD PTR 84[ebp]	xor	edx,		edi	rol	edx,		cl	mov	ebx,		edx	xor	ecx,		ecx	mov	cl,		dh	and	ebx,		255	shr	edx,		16	xor	eax,		eax	mov	al,		dh	and	edx,		255	mov	ecx,		DWORD PTR _CAST_S_table0[ecx*4]	mov	ebx,		DWORD PTR _CAST_S_table1[ebx*4]	sub	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table2[eax*4]	add	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table3[edx*4]	xor	ecx,		ebx	xor	esi,		ecx	; round 9	mov	edx,		DWORD PTR 72[ebp]	mov	ecx,		DWORD PTR 76[ebp]	add	edx,		esi	rol	edx,		cl	mov	ebx,		edx	xor	ecx,		ecx	mov	cl,		dh	and	ebx,		255	shr	edx,		16	xor	eax,		eax	mov	al,		dh	and	edx,		255	mov	ecx,		DWORD PTR _CAST_S_table0[ecx*4]	mov	ebx,		DWORD PTR _CAST_S_table1[ebx*4]	xor	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table2[eax*4]	sub	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table3[edx*4]	add	ecx,		ebx	xor	edi,		ecx	; round 8	mov	edx,		DWORD PTR 64[ebp]	mov	ecx,		DWORD PTR 68[ebp]	sub	edx,		edi	rol	edx,		cl	mov	ebx,		edx	xor	ecx,		ecx	mov	cl,		dh	and	ebx,		255	shr	edx,		16	xor	eax,		eax	mov	al,		dh	and	edx,		255	mov	ecx,		DWORD PTR _CAST_S_table0[ecx*4]	mov	ebx,		DWORD PTR _CAST_S_table1[ebx*4]	add	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table2[eax*4]	xor	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table3[edx*4]	sub	ecx,		ebx	xor	esi,		ecx	; round 7	mov	edx,		DWORD PTR 56[ebp]	mov	ecx,		DWORD PTR 60[ebp]	xor	edx,		esi	rol	edx,		cl	mov	ebx,		edx	xor	ecx,		ecx	mov	cl,		dh	and	ebx,		255	shr	edx,		16	xor	eax,		eax	mov	al,		dh	and	edx,		255	mov	ecx,		DWORD PTR _CAST_S_table0[ecx*4]	mov	ebx,		DWORD PTR _CAST_S_table1[ebx*4]	sub	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table2[eax*4]	add	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table3[edx*4]	xor	ecx,		ebx	xor	edi,		ecx	; round 6	mov	edx,		DWORD PTR 48[ebp]	mov	ecx,		DWORD PTR 52[ebp]	add	edx,		edi	rol	edx,		cl	mov	ebx,		edx	xor	ecx,		ecx	mov	cl,		dh	and	ebx,		255	shr	edx,		16	xor	eax,		eax	mov	al,		dh	and	edx,		255	mov	ecx,		DWORD PTR _CAST_S_table0[ecx*4]	mov	ebx,		DWORD PTR _CAST_S_table1[ebx*4]	xor	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table2[eax*4]	sub	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table3[edx*4]	add	ecx,		ebx	xor	esi,		ecx	; round 5	mov	edx,		DWORD PTR 40[ebp]	mov	ecx,		DWORD PTR 44[ebp]	sub	edx,		esi	rol	edx,		cl	mov	ebx,		edx	xor	ecx,		ecx	mov	cl,		dh	and	ebx,		255	shr	edx,		16	xor	eax,		eax	mov	al,		dh	and	edx,		255	mov	ecx,		DWORD PTR _CAST_S_table0[ecx*4]	mov	ebx,		DWORD PTR _CAST_S_table1[ebx*4]	add	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table2[eax*4]	xor	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table3[edx*4]	sub	ecx,		ebx	xor	edi,		ecx	; round 4	mov	edx,		DWORD PTR 32[ebp]	mov	ecx,		DWORD PTR 36[ebp]	xor	edx,		edi	rol	edx,		cl	mov	ebx,		edx	xor	ecx,		ecx	mov	cl,		dh	and	ebx,		255	shr	edx,		16	xor	eax,		eax	mov	al,		dh	and	edx,		255	mov	ecx,		DWORD PTR _CAST_S_table0[ecx*4]	mov	ebx,		DWORD PTR _CAST_S_table1[ebx*4]	sub	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table2[eax*4]	add	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table3[edx*4]	xor	ecx,		ebx	xor	esi,		ecx	; round 3	mov	edx,		DWORD PTR 24[ebp]	mov	ecx,		DWORD PTR 28[ebp]	add	edx,		esi	rol	edx,		cl	mov	ebx,		edx	xor	ecx,		ecx	mov	cl,		dh	and	ebx,		255	shr	edx,		16	xor	eax,		eax	mov	al,		dh	and	edx,		255	mov	ecx,		DWORD PTR _CAST_S_table0[ecx*4]	mov	ebx,		DWORD PTR _CAST_S_table1[ebx*4]	xor	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table2[eax*4]	sub	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table3[edx*4]	add	ecx,		ebx	xor	edi,		ecx	; round 2	mov	edx,		DWORD PTR 16[ebp]	mov	ecx,		DWORD PTR 20[ebp]	sub	edx,		edi	rol	edx,		cl	mov	ebx,		edx	xor	ecx,		ecx	mov	cl,		dh	and	ebx,		255	shr	edx,		16	xor	eax,		eax	mov	al,		dh	and	edx,		255	mov	ecx,		DWORD PTR _CAST_S_table0[ecx*4]	mov	ebx,		DWORD PTR _CAST_S_table1[ebx*4]	add	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table2[eax*4]	xor	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table3[edx*4]	sub	ecx,		ebx	xor	esi,		ecx	; round 1	mov	edx,		DWORD PTR 8[ebp]	mov	ecx,		DWORD PTR 12[ebp]	xor	edx,		esi	rol	edx,		cl	mov	ebx,		edx	xor	ecx,		ecx	mov	cl,		dh	and	ebx,		255	shr	edx,		16	xor	eax,		eax	mov	al,		dh	and	edx,		255	mov	ecx,		DWORD PTR _CAST_S_table0[ecx*4]	mov	ebx,		DWORD PTR _CAST_S_table1[ebx*4]	sub	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table2[eax*4]	add	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table3[edx*4]	xor	ecx,		ebx	xor	edi,		ecx	; round 0	mov	edx,		DWORD PTR [ebp]	mov	ecx,		DWORD PTR 4[ebp]	add	edx,		edi	rol	edx,		cl	mov	ebx,		edx	xor	ecx,		ecx	mov	cl,		dh	and	ebx,		255	shr	edx,		16	xor	eax,		eax	mov	al,		dh	and	edx,		255	mov	ecx,		DWORD PTR _CAST_S_table0[ecx*4]	mov	ebx,		DWORD PTR _CAST_S_table1[ebx*4]	xor	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table2[eax*4]	sub	ecx,		ebx	mov	ebx,		DWORD PTR _CAST_S_table3[edx*4]	add	ecx,		ebx	xor	esi,		ecx	nop	mov	eax,		DWORD PTR 20[esp]	mov	DWORD PTR 4[eax],edi	mov	DWORD PTR [eax],esi	pop	edi	pop	esi	pop	ebx	pop	ebp	ret_CAST_decrypt ENDP_TEXT	ENDS_TEXT	SEGMENTPUBLIC	_CAST_cbc_encrypt_CAST_cbc_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 3	mov	eax,		DWORD PTR 48[esp]	push	eax	push	ebx	cmp	ecx,		0	jz	$L002decrypt	and	ebp,		4294967288	mov	eax,		DWORD PTR 8[esp]	mov	ebx,		DWORD PTR 12[esp]	jz	$L003encrypt_finishL004encrypt_loop:	mov	ecx,		DWORD PTR [esi]	mov	edx,		DWORD PTR 4[esi]	xor	eax,		ecx	xor	ebx,		edx	bswap	eax	bswap	ebx	mov	DWORD PTR 8[esp],eax	mov	DWORD PTR 12[esp],ebx	call	_CAST_encrypt	mov	eax,		DWORD PTR 8[esp]	mov	ebx,		DWORD PTR 12[esp]	bswap	eax	bswap	ebx	mov	DWORD PTR [edi],eax	mov	DWORD PTR 4[edi],ebx	add	esi,		8	add	edi,		8	sub	ebp,		8	jnz	L004encrypt_loop$L003encrypt_finish:	mov	ebp,		DWORD PTR 52[esp]	and	ebp,		7	jz	$L005finish	xor	ecx,		ecx	xor	edx,		edx	mov	ebp,		DWORD PTR $L006cbc_enc_jmp_table[ebp*4]	jmp	 ebpL007ej7:	xor	edx,		edx	mov	dh,		BYTE PTR 6[esi]	shl	edx,		8L008ej6:	mov	dh,		BYTE PTR 5[esi]L009ej5:	mov	dl,		BYTE PTR 4[esi]L010ej4:	mov	ecx,		DWORD PTR [esi]	jmp	$L011ejendL012ej3:	mov	ch,		BYTE PTR 2[esi]	xor	ecx,		ecx	shl	ecx,		8L013ej2:	mov	ch,		BYTE PTR 1[esi]L014ej1:	mov	cl,		BYTE PTR [esi]$L011ejend:	xor	eax,		ecx	xor	ebx,		edx	bswap	eax	bswap	ebx	mov	DWORD PTR 8[esp],eax	mov	DWORD PTR 12[esp],ebx	call	_CAST_encrypt	mov	eax,		DWORD PTR 8[esp]	mov	ebx,		DWORD PTR 12[esp]	bswap	eax	bswap	ebx	mov	DWORD PTR [edi],eax	mov	DWORD PTR 4[edi],ebx	jmp	$L005finish$L002decrypt:	and	ebp,		4294967288	mov	eax,		DWORD PTR 16[esp]	mov	ebx,		DWORD PTR 20[esp]	jz	$L015decrypt_finishL016decrypt_loop:	mov	eax,		DWORD PTR [esi]	mov	ebx,		DWORD PTR 4[esi]	bswap	eax	bswap	ebx	mov	DWORD PTR 8[esp],eax	mov	DWORD PTR 12[esp],ebx	call	_CAST_decrypt	mov	eax,		DWORD PTR 8[esp]	mov	ebx,		DWORD PTR 12[esp]	bswap	eax	bswap	ebx	mov	ecx,		DWORD PTR 16[esp]	mov	edx,		DWORD PTR 20[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 16[esp],eax	mov	DWORD PTR 20[esp],ebx	add	esi,		8	add	edi,		8	sub	ebp,		8	jnz	L016decrypt_loop$L015decrypt_finish:	mov	ebp,		DWORD PTR 52[esp]	and	ebp,		7	jz	$L005finish	mov	eax,		DWORD PTR [esi]	mov	ebx,		DWORD PTR 4[esi]	bswap	eax	bswap	ebx	mov	DWORD PTR 8[esp],eax	mov	DWORD PTR 12[esp],ebx	call	_CAST_decrypt	mov	eax,		DWORD PTR 8[esp]	mov	ebx,		DWORD PTR 12[esp]	bswap	eax	bswap	ebx	mov	ecx,		DWORD PTR 16[esp]	mov	edx,		DWORD PTR 20[esp]	xor	ecx,		eax	xor	edx,		ebx	mov	eax,		DWORD PTR [esi]	mov	ebx,		DWORD PTR 4[esi]L017dj7:	ror	edx,		16	mov	BYTE PTR 6[edi],dl	shr	edx,		16L018dj6:	mov	BYTE PTR 5[edi],dhL019dj5:	mov	BYTE PTR 4[edi],dlL020dj4:	mov	DWORD PTR [edi],ecx	jmp	$L021djendL022dj3:	ror	ecx,		16	mov	BYTE PTR 2[edi],cl	shl	ecx,		16L023dj2:	mov	BYTE PTR 1[esi],chL024dj1:	mov	BYTE PTR [esi],	cl$L021djend:	jmp	$L005finish$L005finish:	mov	ecx,		DWORD PTR 60[esp]	add	esp,		24	mov	DWORD PTR [ecx],eax	mov	DWORD PTR 4[ecx],ebx	pop	edi	pop	esi	pop	ebx	pop	ebp	ret$L006cbc_enc_jmp_table:	DD	0	DD	L014ej1	DD	L013ej2	DD	L012ej3	DD	L010ej4	DD	L009ej5	DD	L008ej6	DD	L007ej7L025cbc_dec_jmp_table:	DD	0	DD	L024dj1	DD	L023dj2	DD	L022dj3	DD	L020dj4	DD	L019dj5	DD	L018dj6	DD	L017dj7_CAST_cbc_encrypt ENDP_TEXT	ENDSEND

⌨️ 快捷键说明

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