📄 mms_encapsulation.cpp
字号:
#include <string.h>
#include <stdio.h>
int main()
{
unsigned char mmsData[30000];
unsigned char *str,*pzMmsData=mmsData;
int i=0,j=0;
memset(pzMmsData,0,sizeof(mmsData));//初始化
//标题编码
mmsData[0]=0x8C;mmsData[1]=0x80;
mmsData[2]=0x98;mmsData[3]=0x30;
mmsData[4]=0x31;mmsData[5]=0x32;
mmsData[6]=0x33;mmsData[6]=0x34;
mmsData[7]=0x35;mmsData[8]=0x36;
mmsData[9]=0x37;mmsData[10]=0x38;
mmsData[11]=0x39;
mmsData[13]=0x8D;mmsData[14]=0x90;
//源地址
mmsData[15]=0x89;mmsData[16]=0x1A;//地址长度
mmsData[17]=0x80;
pzMmsData = &mmsData[18];
strcpy(str,"+8613570596080/TYPE=PLMN");
memcpy(pzMmsData,str,strlen(str));
//目的地址
mmsData[43]=0x97;
pzMmsData =&mmsData[44];
strcpy(str,"+8613570596080/TYPE=PLMN");
memcpy(pzMmsData,str,strlen(str));
mmsData[69]=0x96;
//消息主题
pzMmsData=&mmsData[70];
strcpy(str,"My first test message!");
memcpy(pzMmsData,str,strlen(str));
i=70+strlen(str)+1;
//Content-type
mmsData[i++]=0x84;mmsData[i++]=0x1B;//值的长度
j=i+0x1B;//指向正文部分;
mmsData[i++]=0xB3;mmsData[i++]=0x89;
//类型参数
pzMmsData=&mmsData[i];
strcpy(str,"application/smil");
memcpy(pzMmsData,str,strlen(str));
i+=strlen(str)+1;
//起始参数
mmsData[i++]=0x8A;
pzMmsData=&mmsData[i];
strcpy(str,"<0000>");
memcpy(pzMmsData,str,strlen(str));
//正文编码
i=j;
mmsData[i++]=0x02;//正文只有两部分
//第一部分(smil部分)
mmsData[i++]=0x23;//内容类型+其他可能标题的长度
//数据长度
mmsData[i++]=0x85;
mmsData[i++]=0x1D;
j=i+0x23;//指向数据部分
//内容类型+其他可能标题(文本编码)
pzMmsData=&mmsData[i];
strcpy(str,"application/smil");
memcpy(pzMmsData,str,strlen(str));
i+=strlen(str)+1;
pzMmsData=&mmsData[i];
strcpy(str,"Content-ID");
memcpy(pzMmsData,str,strlen(str));
i+=strlen(str)+1;
pzMmsData=&mmsData[i];
strcpy(str,"<0000>");
memcpy(pzMmsData,str,strlen(str));
//实际数据
i=j;
j=j+0x29D;//指向第二部分
pzMmsData=&mmsData[i];
strcpy(str,"<smil xmlns=\"http://www.w3.org/2001/SMIL20/Languae\">\n\
<head>\n\
<layout>\n\
<root-layout width=\"160\" height=\"140\"/>\n\
<region id=\"Image\" width=\"160\" height=\"120\" left=\"0\" top=\"0\"/)\n\
<region id=\"Text\" width=\"160\" height=\"20\" left=\"0\" top=\"120\"/>\n\
</layout>\n\
</head>\n\
<body>\n\
<image src=\"test.jpg\" region=\"Image\"/>\n\
<text src=\"HelloWorld.txt\" region=\"Text\"/>\n\
</body>\n\
</smil>\n\
");
memcpy(pzMmsData,str,strlen(str));
//正文第二部分(image/jpg)编码
i=j;
mmsData[i++]=0x11;//内容类型+其他可能标题长度
mmsData[i++]=0x8A;mmsData[i++]=0x7B;//实际数据长度
j=i+0x11;
//内容类型+其他可能标题
mmsData[i++]=0x9D; //image/jpg的码值
mmsData[i++]=0x8E;//内容位置
pzMmsData=&mmsData[i];
strcpy(str,"test.jpg");
memcpy(pzMmsData,str,strlen(str));
//实际数据
i=j;
j=j+0x57B;//指向第三部分
..........
//正文第三部分(text/plain)编码
i=j;
mmsData[i++]=0x11;//内容类型+其他可能标题长度
mmsData[i++]=0x00;mmsData[i++]=0x0E;//实际数据长度
j=i+0x11;
//内容类型+其他可能标题
mmsData[i++]=0x83;//text/plain码值
mmsData[i++]=0x8E;//内容位置
pzMmsData=&mmsData[i];
strcpy(str,"HelloWorld.txt");
memcpy(pzMmsData,str,strlen(str));
//实际数据
i=j;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -