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

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

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

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

Прячем от глаз

Перед хакером, желающим впарить гадость, часто стоит проблема: как заставить юзера установить вредоносную программу так, чтобы тот ничего не заподозрил?

Недавно в Сети появился троян, который рассылал платные sms на короткий номер. Его распространяли следующим образом. На сайте dimonvideo.ru (кстати, привет авторам этого нехорошего ресурса, с вас ящик пива за пиар) есть раздел, куда пользователи могут выкладывать программки для всеобщего обозрения. Так вот, автор троя выдавал свою шнягу за какую-то полезную софтину, немало заработав на этом деле, поскольку программа при запуске первым делом отправляла sms стоимостью в 100 рублей. Понятное дело, что юзер, заметив, что программка, мягко говоря, не та, за которую себя выдает, сносил эту гадость.

Однако в тайных подземельях злокодеров есть способ и получше: зашить нехорошую программу в работоспособную и полезную софтину. Пусть пользователь радуется, что скачал крутой файловый менеджер, не подозревая, что в него зашита программка, которая за ним следит.

Рассмотрим, как именно плохие люди это делают. За сборку приложения в инсталляционный файл, как ты знаешь, отвечает *.pkg – файл, в котором прописывается, какие файлы и куда должны быть помещены на мобиле в момент установки программы. Так вот, в этот файл можно добавить следующую строку:

@"eFileMan.sis",(0x101F4284)

Это означает, что в текущую инсталляцию будет включен файл eFileMan.sis, который во время сборки находится у тебя там же, где и конфиг. 0x101F4284 – это UID подключаемого приложения, который можно узнать, запустив программу SIS Xplode, показывающую UID любого приложения под Symbian.

Теперь, после создания сборки, можешь смело переименовывать ее из какого-нибудь там megaTroy.sis в eFileMan.sis, и юзер будет уверен, что устанавливает файловый менеджер, как во время, так и после установки, поскольку пресловутый eFileMan также установится и будет отображаться в меню приложения. Если же пользователь захочет удалить eFileMan, он без труда сможет это сделать, оставив в сохранности зловредную программу.

Далее, хакеры обычно скрывают шпионскую программу от глаз пользователя. Для этого нужно модифицировать файл информации о приложении, хранящийся в папке AIF и имеющий имя вида OurMegaAppaif.rss. Делается это следующим образом:

RESOURCE AIF_DATA

{

app_uid=0x0871aba4; //уникальный идентификатор приложения

...

hidden = KAppIsHidden; //прячем иконку

}

Вот и все, иконка приложения из меню смартфона бесследно исчезла.

После этого программисты переопределяют виртуальную функцию UpdateTaskNameL класса AppUi, которая отвечает за отображение приложения в тасклисте. Для этого они добавляют в заголовочный файл документа в объявление класса Document строку:

virtual void UpdateTaskNameL(CApaWindowGroupName* aWgName);

После этого в реализацию класса документа они вставляют:

void CXaSMSDocument::UpdateTaskNameL(CApaWindowGroupName* aWgName) // конструкция :: играет роль namespace

{

CAknDocument::UpdateTaskNameL(aWgName); //вызывается системная функция UpdateTaskNameL

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