近日風行流氓軟體,就連手機平台也加入了墮落的行列。現在俺就簡單寫一下這種手機上的流氓是如何欺騙人的。

 

手機撒謊軟體主要功能:你正在外面幹見不得人的事,這時候老爸打電話問你幹啥呢,這個軟體就發揮作用了,播放一段打籃球或者老師講課的錄音,這樣你可憐的老爸就以為你在努力學習呢。唉。。。。

 

首先講一下現在手機的平臺,主要平臺為Nokia下的Symbian開發,使用C++。

 

流氓的準備工作:

 

1.安裝Nokia S60平臺的開發sdk後,就可以進行 S60的應用開發。

 

2.去Nokia網站下載<Developing Series 60 Applications - A Guide for symbian OS c++ developers>一書的原始程式碼。

 

3.打開vc。可以開始coding了

 

一些基本的S60開發常識我就不在這裡囉嗦了。主要介紹一下功能實現:

 

首先需要進行來電的截獲,這裡可以參考上面介紹的配書原始程式碼中的AnsPhone例子。

 

ok,現在當來電的時候,我已經可以抓住它了,下一步就是實現線上uplink的播放,可以有3種以上方法,這裡只介紹一種比較簡單清晰的實現:CMdaAudioPlayerUtility類

 

我們的播放,停止,都是通過CMdaAudioPlayerUtility來進行的。

 

首先我們封裝一個自己的類,姑且叫做CAudioUplinkPlayer

 

class CAudioUplinkPlayer: public CBase, public MMdaAudioPlayerCallback
{

 

...

 

........

 

void DoCrime(TDesc& filename);

 

//inherit frm MMdaAudioPlayerCallback

 

void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& /*aDuration*/);
void MapcPlayComplete(TInt aError);

 

private:
CMdaAudioPlayerUtility *iMdaAudioPlayerUtility;

 

};

 

實現:

 

void DoCrime(TDesC& filename)

 

{

 

iMdaAudioPlayerUtility = CMdaAudioPlayerUtility::NewFilePlayerL(filename,
*this,80,(TMdaPriorityPreference)0x00060001);

 

}

 

MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& /*aDuration*/)
{

 

iMdaAudioPlayerUtility ->PlayL();

 

}




MapcPlayComplete(TInt aError)
{

 

//播放完了 ;)

 

}

 

呵,簡單的定義完以後,要注意一下實現的步驟,抓住來電以後首先通過調用DoCrime(audiofilename)來播放聲音,調用NewFilePlayer 以後,將非同步調用初始化,當fileplayer初始化完畢後,返回mapcinitcomplete函數,這時才能播放。

 

ok。流氓軟體已經作完了。:)

 

那麼怎麼樣才能防止它呢?答案就是:當老爸的給兒子買個S9.0的手機(Nokia3250/5500/N71/N73/N80/N9x/E50/E60/),S9.0的開發程式必須申請正式版的證書才能安裝,這樣從根本上Nokia就杜絕了病毒和惡意軟體的運行。此外,有部分缺陷的手機也不能進行線上的uplink播放,例如UIQ的幾款手機以及Nokia 6620 和Panasonic X700/X800
創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()