“用指尖改变世界” 来自网络安全公司Malwarebytes的安全研究人员Jerome Segura最近分析了一起基于RIG EK(漏洞利用工具包,Exploit Kit)的恶意攻击活动,正通过恶意广告传播恶意加密货币挖矿机 根据1月9日的博客文章,在2017年11月左右,Segura开始注意到RIG EK的有效载荷大于平时,这种趋势通过一个名为“Ngay”的恶意活动延续下来。 另外,研究人员还注意到,网络犯罪分子在Ngay活动中已经开始使用各种更为复杂的重定向技术来诱使受害者点击企图通过RIG EK分发有效载荷的恶意广告链接,并感染其计算机,这些进程能够在单次攻击中挖掘多种加密货币 通过对RIG EK放置的二进制文件的分析,Segura发现,其中包含有两个主要组件,每个组件都会安装一个不同的恶意加密货币挖矿机,并在特定的程序中启动。
本程序的实现原理为Treap平衡树 详见BZOJ3224 1 var 2 i,j,k,l,m,n,head,ts:longint;f1:text; 3 a,b,fix,lef,rig longint);inline; 5 var f,r:longint; 6 begin 7 if (x=0) or (rig [x]=0) then exit; 8 f:=x;r:=rig[x]; 9 b[r]:=b[f]; 10 exit; 19 f:=x;l:=lef[x]; 20 b[l]:=b[f]; 21 b[f]:=b[rig [f]]+1+b[rig[l]]; 22 lef[f]:=rig[l]; 23 rig[l]:=f; 24
[x]); 16 c[x]:=0; 17 c[lef[x]]:=1-c[lef[x]]; 18 c[rig [x]]+1+b[rig[l]]; 31 lef[x]:=rig[l]; 32 fat[rig[l]]:=x; 33 rig[l]:=x; 34 fat[l]:=fat[x]; 35 fat[x]:=l; 36 if rig [x]=0 then exit; 45 ext(rig[x]); 46 f:=x;r:=rig[x]; 47 b[rig[x]]:=b[x]; 48 b[x]:=1+b[lef[x]]+b[lef[r]]; 49 rig[x]:=lef[r];
[x]<>0 then c[rig[x]]:=1-c[rig[x]]; 15 swap(lef[x],rig[x]); 16 c[x]:= [x]]+b[rig[lef[x]]]; 26 lef[f]:=rig[l]; 27 rig[l]:=f; 28 b[rig[x]]:=b[x]; 37 b[x]:=1+b[lef[x]]+b[lef[rig[x]]]; 38 rig[f]:=lef[ begin 74 splay(rig[rig[head]],x- [head],x+1); 101 lef[rig[head]]:=y; 102 inc(b[rig[head]],b[y]
[lef[x]]]+b[rig[x]]+1; 20 c[lef[x]]:=c[x];c[x]:=c[rig[lef[x]]]+c[rig[x]]+a[x]; 21 f:=x;l:=lef[x]; 22 lef[f]:=rig[l]; 23 rig[l]:=f; 24 x [x]=0) then exit; 30 b[rig[x]]:=b[x];b[x]:=b[lef[rig[x]]]+b[lef[x]]+1; 31 c[rig[x]]:=c[x];c[x]:=c[lef[rig[x]]]+c[lef[x]]+a[x]; 32 f:=x;r:=rig[x]; 33 begin 66 splay(rig[rig[x]],y-1-b[lef[rig[x]]]); 67
(var x:longint); 13 var f,r:longint; 14 begin 15 if (x=0) or (rig [x]=0) then exit; 16 b[rig[x]]:=b[x];b[x]:=b[lef[x]]+b[lef[rig[x]]]+1; 17 f:=x;r:=rig[x]; 18 rig[f]:=lef[r]; 19 lef[r]:=f; 20 x [x]]+b[rig[lef[x]]]+1; 27 f:=x;l:=lef[x]; 28 lef[f]:=rig[l]; 29 [x],y);b[x]:=b[lef[x]]+b[rig[x]]+1; 54 if fix[rig[x]]<fix[x] then lt(x); 55
*************/ 9 10 var 11 i,j,k,l,m,n,tot:longint;ch:char; 12 a,b,c,d,e,lef,rig [x]]+b[rig[lef[x]]]+1; 38 f:=x;l:=lef[x]; 39 lef[f]:=rig[l]; 40 rig[l]:=f; 41 x:=l; 42 end; 43 procedure lt(var x:longint); 44 var b[rig[x]]:=b[x];b[x]:=b[lef[x]]+b[lef[rig[x]]]+1; 48 f:=x;r:=rig[x]; 49 if fix[rig[x]]<fix[x] then lt(x); 71 end; 72 end; 73 procedure del