病毒在手机中可以查看用户的最近拨号记录,知道用户给那些人拨打了电话,电话从什么时间开始到什么时间结束等。
实现方法:
PhoneOpenCallLog()生成呼叫日志句柄。
PhoneGetCallLogEntry()获取呼叫日志中的单个条目,并移动条目指针到下一条。
此函数获取的电话通话信息非常丰富。可以深入研究。
PhoneCloseCallLog()关闭呼叫日志句柄。
示例代码如下:
#include "stdafx.h"
#include <windows.h>
#include <commctrl.h>
#include <phone.h>
#pragma comment(lib,"phone.lib")
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
HANDLE hCallLog = NULL;
CALLLOGENTRY entry;
int nret = MGSEI_NO_ERROR;
WCHAR Number[256];
SYSTEMTIME st;
//打开呼叫日志获取句柄。
if( S_OK != PhoneOpenCallLog(&hCallLog) )
{
return -1;
}
//清空缓冲区准备获取日志信息
ZeroMemory(&entry,sizeof(CALLLOGENTRY));
entry.cbSize = sizeof(CALLLOGENTRY);
entry.pszNumber = Number;
//枚举获取呼叫日志
while( S_OK == PhoneGetCallLogEntry(hCallLog,&entry) )
{
ShowText(entry.pszNumber);
FileTimeToLocalFileTime(&entry.ftStartTime,&entry.ftStartTime);
FileTimeToSystemTime(&entry.ftStartTime,&st);
ShowST(st);
FileTimeToLocalFileTime(&entry.ftEndTime,&entry.ftEndTime);
FileTimeToSystemTime(&entry.ftEndTime,&st);
ShowST(st);
}
//如果返回ERROR_NO_MORE_ITEMS说明已经没有条目了
if(ERROR_NO_MORE_ITEMS == GetLastError())
{
ShowText(L"No More Items");
}
//关闭呼叫日志句柄
if( S_OK != PhoneCloseCallLog(hCallLog) )
{
return -2;
}
return 0;
}
本文介绍了一种手机病毒如何利用特定API获取用户的通话记录,包括拨打和接听的电话号码及通话时间等详细信息。通过示例代码展示了PhoneOpenCallLog、PhoneGetCallLogEntry和PhoneCloseCallLog等函数的应用。
2767

被折叠的 条评论
为什么被折叠?



