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

📄 rmd-586.pl

📁 开放的SSL工具
💻 PL
📖 第 1 页 / 共 2 页
字号:
#!/usr/local/bin/perl# Normal is the# ripemd160_block_asm_data_order(RIPEMD160_CTX *c, ULONG *X,int blocks);$normal=0;push(@INC,"perlasm","../../perlasm");require "x86asm.pl";&asm_init($ARGV[0],$0);$A="ecx";$B="esi";$C="edi";$D="ebx";$E="ebp";$tmp1="eax";$tmp2="edx";$KL1=0x5A827999;$KL2=0x6ED9EBA1;$KL3=0x8F1BBCDC;$KL4=0xA953FD4E;$KR0=0x50A28BE6;$KR1=0x5C4DD124; $KR2=0x6D703EF3;$KR3=0x7A6D76E9;@wl=(	 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,	 7, 4,13, 1,10, 6,15, 3,12, 0, 9, 5, 2,14,11, 8,	 3,10,14, 4, 9,15, 8, 1, 2, 7, 0, 6,13,11, 5,12,	 1, 9,11,10, 0, 8,12, 4,13, 3, 7,15,14, 5, 6, 2,	 4, 0, 5, 9, 7,12, 2,10,14, 1, 3, 8,11, 6,15,13,	 );@wr=(	 5,14, 7, 0, 9, 2,11, 4,13, 6,15, 8, 1,10, 3,12,	 6,11, 3, 7, 0,13, 5,10,14,15, 8,12, 4, 9, 1, 2,	15, 5, 1, 3, 7,14, 6, 9,11, 8,12, 2,10, 0, 4,13,	 8, 6, 4, 1, 3,11,15, 0, 5,12, 2,13, 9, 7,10,14,	12,15,10, 4, 1, 5, 8, 7, 6, 2,13,14, 0, 3, 9,11,	);@sl=(	11,14,15,12, 5, 8, 7, 9,11,13,14,15, 6, 7, 9, 8,	 7, 6, 8,13,11, 9, 7,15, 7,12,15, 9,11, 7,13,12,	11,13, 6, 7,14, 9,13,15,14, 8,13, 6, 5,12, 7, 5,	11,12,14,15,14,15, 9, 8, 9,14, 5, 6, 8, 6, 5,12,	 9,15, 5,11, 6, 8,13,12, 5,12,13,14,11, 8, 5, 6,	 );@sr=(	 8, 9, 9,11,13,15,15, 5, 7, 7, 8,11,14,14,12, 6,	 9,13,15, 7,12, 8, 9,11, 7, 7,12, 7, 6,15,13,11,	 9, 7,15,11, 8, 6, 6,14,12,13, 5,14,13,13, 7, 5,	15, 5, 8,11,14,14, 6,14, 6, 9,12, 9,12, 5,15, 8,	 8, 5,12, 9,12, 5,14, 6, 8,13, 6, 5,15,13,11,11, 	);&ripemd160_block("ripemd160_block_asm_data_order");&asm_finish();sub Xv	{	local($n)=@_;	return(&swtmp($n));	# tmp on stack	}sub Np	{	local($p)=@_;	local(%n)=($A,$E,$B,$A,$C,$B,$D,$C,$E,$D);	return($n{$p});	}sub RIP1	{	local($a,$b,$c,$d,$e,$pos,$s,$o,$pos2)=@_;	&comment($p++);	if ($p & 1)		{	 #&mov($tmp1,	$c) if $o == -1;	&xor($tmp1,	$d) if $o == -1;	 &mov($tmp2,	&Xv($pos));	&xor($tmp1,	$b);	 &add($a,	$tmp2);	&rotl($c,	10);	&add($a,	$tmp1);	 &mov($tmp1,	&Np($c));	# NEXT	 # XXX	&rotl($a,	$s);	&add($a,	$e);		}	else		{	 &xor($tmp1,	$d);	&mov($tmp2,	&Xv($pos));	 &xor($tmp1,	$b);	&add($a,	$tmp1);	 &mov($tmp1,	&Np($c)) if $o <= 0;	 &mov($tmp1,	-1) if $o == 1;	 # XXX if $o == 2;	&rotl($c,	10);	&add($a,	$tmp2);	 &xor($tmp1,	&Np($d)) if $o <= 0;	 &mov($tmp2,	&Xv($pos2)) if $o == 1;	 &mov($tmp2,	&wparam(0)) if $o == 2;	&rotl($a,	$s);	&add($a,	$e);		}	}sub RIP2	{	local($a,$b,$c,$d,$e,$pos,$pos2,$s,$K,$o)=@_;# XXXXXX	&comment($p++);	if ($p & 1)		{#	 &mov($tmp2,	&Xv($pos)) if $o < -1;#	&mov($tmp1,	-1) if $o < -1;	 &add($a,	$tmp2);	&mov($tmp2,	$c);	 &sub($tmp1,	$b);	&and($tmp2,	$b);	 &and($tmp1,	$d);	&or($tmp2,	$tmp1);	 &mov($tmp1,	&Xv($pos2)) if $o <= 0; # XXXXXXXXXXXXXX	 # XXX	&rotl($c,	10);	&lea($a,	&DWP($K,$a,$tmp2,1));	 &mov($tmp2,	-1) if $o <= 0;	 # XXX	&rotl($a,	$s);	&add($a,	$e);		}	else		{	 # XXX	 &add($a,	$tmp1);	&mov($tmp1,	$c);	 &sub($tmp2,	$b);	&and($tmp1,	$b);	 &and($tmp2,	$d);	if ($o != 2)		{	&or($tmp1,	$tmp2);	 &mov($tmp2,	&Xv($pos2)) if $o <= 0;	 &mov($tmp2,	-1) if $o == 1;	&rotl($c,	10);	&lea($a,	&DWP($K,$a,$tmp1,1));	 &mov($tmp1,	-1) if $o <= 0;	 &sub($tmp2,	&Np($c)) if $o == 1;		} else {	&or($tmp2,	$tmp1);	 &mov($tmp1,	&Np($c));	&rotl($c,	10);	&lea($a,	&DWP($K,$a,$tmp2,1));	 &xor($tmp1,	&Np($d));		}	&rotl($a,	$s);	&add($a,	$e);		}	}sub RIP3	{	local($a,$b,$c,$d,$e,$pos,$s,$K,$o,$pos2)=@_;	&comment($p++);	if ($p & 1)		{#	 &mov($tmp2,	-1) if $o < -1;#	&sub($tmp2,	$c) if $o < -1;	 &mov($tmp1,	&Xv($pos));	&or($tmp2,	$b);	 &add($a,	$tmp1);	&xor($tmp2,	$d);	 &mov($tmp1,	-1) if $o <= 0;		# NEXT	 # XXX	&rotl($c,	10);	&lea($a,	&DWP($K,$a,$tmp2,1));	 &sub($tmp1,	&Np($c)) if $o <= 0;	# NEXT	 # XXX	&rotl($a,	$s);	&add($a,	$e);		}	else		{	 &mov($tmp2,	&Xv($pos));	&or($tmp1,	$b);	 &add($a,	$tmp2);	&xor($tmp1,	$d);	 &mov($tmp2,	-1) if $o <= 0;		# NEXT	 &mov($tmp2,	-1) if $o == 1;	 &mov($tmp2,	&Xv($pos2)) if $o == 2;	&rotl($c,	10);	&lea($a,	&DWP($K,$a,$tmp1,1));	 &sub($tmp2,	&Np($c)) if $o <= 0;	# NEXT	 &mov($tmp1,	&Np($d)) if $o == 1;	 &mov($tmp1,	-1) if $o == 2;	&rotl($a,	$s);	&add($a,	$e);		}	}sub RIP4	{	local($a,$b,$c,$d,$e,$pos,$s,$K,$o)=@_;	&comment($p++);	if ($p & 1)		{#	 &mov($tmp2,	-1) if $o == -2;#	&mov($tmp1,	$d) if $o == -2;	 &sub($tmp2,	$d);	&and($tmp1,	$b);	 &and($tmp2,	$c);	&or($tmp2,	$tmp1);	 &mov($tmp1,	&Xv($pos));	&rotl($c,	10);	&lea($a,	&DWP($K,$a,$tmp2));	 &mov($tmp2,	-1) unless $o > 0;	# NEXT	 # XXX	&add($a,	$tmp1);	 &mov($tmp1,	&Np($d)) unless $o > 0; # NEXT	 # XXX	&rotl($a,	$s);	&add($a,	$e);		}	else		{	 &sub($tmp2,	$d);	&and($tmp1,	$b);	 &and($tmp2,	$c);	&or($tmp2,	$tmp1);	 &mov($tmp1,	&Xv($pos));	&rotl($c,	10);	&lea($a,	&DWP($K,$a,$tmp2));	 &mov($tmp2,	-1) if $o == 0;	# NEXT	 &mov($tmp2,	-1) if $o == 1;	 &mov($tmp2,	-1) if $o == 2;	 # XXX	&add($a,	$tmp1);	 &mov($tmp1,	&Np($d)) if $o == 0;	# NEXT	 &sub($tmp2,	&Np($d)) if $o == 1;	 &sub($tmp2,	&Np($c)) if $o == 2;	 # XXX	&rotl($a,	$s);	&add($a,	$e);		}	}sub RIP5	{	local($a,$b,$c,$d,$e,$pos,$s,$K,$o)=@_;	&comment($p++);	if ($p & 1)		{	 &mov($tmp2,	-1) if $o == -2;	&sub($tmp2,	$d) if $o == -2;	 &mov($tmp1,	&Xv($pos));	&or($tmp2,	$c);	 &add($a,	$tmp1);	&xor($tmp2,	$b);	 &mov($tmp1,	-1) if $o <= 0;	 # XXX	&rotl($c,	10);	&lea($a,	&DWP($K,$a,$tmp2,1));	 &sub($tmp1,	&Np($d)) if $o <= 0;	 # XXX	&rotl($a,	$s);	&add($a,	$e);		}	else		{	 &mov($tmp2,	&Xv($pos));	&or($tmp1,	$c);	 &add($a,	$tmp2);	&xor($tmp1,	$b);	 &mov($tmp2,	-1) if $o <= 0;	 &mov($tmp2,	&wparam(0)) if $o == 1;	# Middle code	 &mov($tmp2,	-1) if $o == 2;	&rotl($c,	10);	&lea($a,	&DWP($K,$a,$tmp1,1));	 &sub($tmp2,	&Np($d)) if $o <= 0;	 &mov(&swtmp(16),	$A) if $o == 1;	 &mov($tmp1,	&Np($d)) if $o == 2;	&rotl($a,	$s);	&add($a,	$e);		}	}

⌨️ 快捷键说明

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