xfocus logo xfocus title
首页 焦点原创 安全文摘 安全工具 安全漏洞 焦点项目 焦点论坛 关于我们
添加文章 Xcon English Version

浅析恒基伟业F8隐形手机的隐形功能及其它


创建时间:2006-08-23
文章属性:原创
文章提交:7all (sgh81_at_163.com)

==www.cciss.cn.==
                           ==bbs.cciss.cn.==
                            
                    浅析恒基伟业F8隐形手机的隐形功能及其它

|=---------------=[ 浅析恒基伟业F8隐形手机 ]=----------------------=|
|=-----------------------------------------------------------------=|
|=---------------=[ 7all<bloodfall_at_msn.com> ]=------------------=|
|=-----------------------------------------------------------------=|
|=---------------=[ 版权所有:www.cciss.cn ]=-----------------------=|

--] 概述
  长夜漫漫,无心睡眠;辗转反侧,困意全失.于是起来继续写这篇文档.
  开篇的笑话,现在我估计有一大部分男人都喜欢数码设备,从大家形形色色的手机到各式各样的MP3,
记得以前在山东那会的一公司,男同事的手机从功能和先进性来考虑,都比女同事们的"优良"了很多.
所以我觉得,现在这个信息化时代,男人从古代的舞枪弄棒转移到了现代的数码产品,以此来变相的表
现男人的魅力.就好像zippo的感觉:)其实很多时候都难免会觉得,有种要了"面子"丢了"肚子"的感觉:)
当然具体情况具体分析。
  最近实在无聊,才想起很久很久以前就想分析下PDA及PDA类型手机的事情,于是在考虑了很久后,还是
定购了两款进行测试使用的PDA产品,顺便看看能否把公司的硬件设备暂借下,好好的把芯片也分析下:)
  今天收到了两款“测试”用PDA,其中一款是TCL的,另一款则是恒基伟业F8隐形手机.其实我对于手机的
要求并不是很高,但是对于这款所谓的隐形手机我还是比较羡慕的.因为很多时候有些无聊的人喜欢给
我电话,而我又不愿意得罪朋友,于是决定拿这部手机来试试.但是我这个人同时又属于比较严重的技术
白痴类型的人.除了数字电路实在没有时间学外,几乎对所有的计算机技术都比较感兴趣,特别感兴趣的
也包括对无线设备的研究.但是因为时间的确有限,加上没有硬件设备来分析程序,所以在无线技术这
块的能力实在有限,以下文档内技术不足之处,还希望得到无线开发高手的指点.
  OK,开始我们的正题.这篇文档讨论的内容是恒基伟业F8隐形手机(以下简称F8)如何实现隐形功能的.
当然不单单会讲述这个内容,还会适当的说些关于无线开发方面的资料.当然无线开发已经有很多时间
没有接触了,当我今天再翻开一些无线开发资料时还是头大了一些时间的,因为很多自己以前看的技术
文档都有了比较模糊的感觉,时间的确可以改变一切.
  为了使该文章阐述的尽量的详细,我们将从以下几个方面来猜测,以其获得我们最终想要的一个结果:)
  A: F8使用操作系统的猜测
  B: 如何隐藏自己?
  C: 如何实现短信加密传输?
  D: 如何实现短信远程控制F8?
  E: 如何进行破解?
  
--] 阅读本文需要的基础知识
  手机操作系统现今比较流行的有Windows Mobile,SymBian.下面对这两个手机OS进行简单的描述.同时会
  简单的阐述下其它无线设备开发相关的技术.
  A: Windows Mobile是MS发行的一个移动设备开发的操作系统.至于这个操作系统的功能,我想这里我就
     不多哆嗦了,随便的google下就有很多的答案.
     这里我想说的是在Windows Mobile出现前,MS的移动设备开放操作系统叫Windows CE,很不巧的是就在
     Windows CE被MS吹的天花乱坠的时候,我正好对移动开发很有兴趣.用Windows CE来开发移动设备程序,
     当时的感觉是始终不稳定,很容易死机或者其它现象发生.所以一直对MS的移动设备操作系统很有反感
     的意思.直到05年在北京一分公司工作时,接触了下Windows Mobile操作系统,才恍然大悟...怪不得Moto
     会放下Symbian的架子来与MS合作:)
     因为从我个人感觉来看,Windows Mobile的确提升了很多技术方面的优势.So,如果大家对无线设备编程
     感兴趣的话,我建议大家学学C#直接配合VS.NET2003来进行无线设备开发.会在短时间内对无线设备的
     开发形成一个基础概念的:)而且现在招聘Windows Mobile开发的软件公司给的Money也不少哈:)
  B: Symbian也被称作EPOC系统,这是最早由Psion公司开发的一个专门应用于手机等移动设备的操作系统,
     目前由诺基亚、爱立信、松下、三星、索尼爱立信和西门子等手机巨头共同拥护.占据了智能手机操作
     系统市场70%以上的份额,目前的最高版本为Symbian 9.0.
     而针对Symbian来开发智能无线设备的话,还是存在一些难度的.首先Symbian只是一个底层的操作系统和
     中间件.而如果想使用Symbian开发一些界面程序.那么就需要Series60、Series80、UIQ,其中Series 60
     适合单手操作,Series80适合双手操作,UIQ则是以触摸屏和手写笔为主.
     Symbian的开发语言比较多,我今天休息的时候去Nokia的官方网站look的结果是现在基本支持以下语言,
     且可直接嵌入到VC6/VS.NET/BCB等编译器环境中:)Nokia的确是手机中的老大.
     支持语言如下:
     C++
     JAVA
     C#
     VB.NET
     ...
     虽然上面列举了几只语言,我想真正开发时还是C++和JAVA会是首选,毕竟这俩哥们不分上下.当然JAVA在
     PC程序的开发上,比C++要差了很多很多,JAVA那个慢啊...但是在移动设备的开发上,JAVA要与C++这个老
     大哥平分秋毫的,因为JAVA在前期就是专门为硬件设备开发的语言,只是最后sun又进行了一些移植而已.
  C: 如何快速的学习无线设备编程?
     以前也有人问过我怎么学习无线编程的事情,正好今天一朋友也问了我这个问题,下面我给大家说个比较
     快速的学习的办法,当然这个办法仅仅是我看着好,不一定适合任何人:)因为我比较懒,也比较喜欢走捷径,
     所以我们可以分以下7步来走.
     1: 如果大家仔细看完上面我对这俩手机OS的介绍后,应该可以很自觉的按照自己的技术水平来选择了吧?
        当然也不排除有些实在笨的家伙,其实也不是笨,只是不适合Computer这个领域而已:)
     2: 我的建议,从C#->Windows Mobile->熟悉无线设备编程->最后的无线设备底层协议知识.
     3: 根据学得的C#编程知识->JAVA编程(C#和JAVA是一个娘生的,这个不用我再罗嗦了吧?)
     4: 熟悉JAVA技术的分之之一J2ME,J2ME可是个好东西,有了J2ME你可以在支持JAVA扩展功能的手机上任意
        的写你自己喜欢的手机程序玩.
     5: 了解Symbian以及Symbian上层GUI等的设计到开发流程.
     6: 转变Windows Mobile的无线设备开发经验到Symbian.
     7: OK,2年后如果你开发的手机产品投放到市场了,记得免费送我一只手机,两只我也不介意,给我家"老大"一只:)
  D: 手机使用什么样的通讯协议?
     开发过SP程序的程序员都知道手机在通讯时使用了SMPP(中国联通),CMPP(中国移动).
     下面我们以CMPP协议为标准,以实现PC->传输数据->发送手机->发送数据->接收手机,这样的流程来大体的说明下.
     1: 短信
       短信使用CMPP协议的发送过程比较的简单,只需要把待发送短信内容增加合适的PDU头即可,PDU(CMPP协议的协议
       头数据,,其中PDU头内包含接收手机号码)格式构造的合适即可实现手机短信的发送.大家都知道,手机内部的发送
       短信模块一般是一个Modeom,而在手机编辑完短信,点击发送的时候,手机内部的处理流程正是把待发送短信的格
       式根据适当的协议进行封装,然后发送;,然后进行协议的分解,最后成为肉眼可以看到的短信内容.
       详细流程如下:
       手机编辑短信->点击发送->构造正确的协议数据包(PDU+短信内容+长度+XXX)->发送
       接收到短信->分解PDU头->获得发送手机号码,获得接收手机号码,获得短信内容时间等->手机内部程序转换->Look
       以上过程为简单的短信接收流程.
       一定记住,PDU头内包含了接收手机号码和发送手机号码,这个下面的内容会用到:)
     2: 彩信
       彩信的发送与接收,与短信的有些不同.当然首先不同的是PDU的格式不同,其次彩信是需要发送图片和文字的.
       因为前面已经把短信的发送格式说的比较清晰,于是决定适当的懒惰下,我把基本的彩信流程说下:
       --编辑彩信(图片/文字/语音等)
       --构造彩信格式PDU头
       --图片/文字/语音会上传到服务器(如果点对点发送,会直接发送到对方手机)
       --发送成功,成功的标志为图片发送到服务器(如果点对点,会直接发送到对方手机)
     3: WAP
       WAP是可以欺骗的,去年研究了接近2个月的WAP,发现WAP是可以欺骗的,而且可以通过移动的网关做些坏事情:)不过
       这里大家可以把WAP的发送与接收格式直接参考上面短信的发送与接收格式.除了PDU头有些改变外,其它的都相同.
       如果是通过WAP来浏览网页,那么他的格式与使用HTTP协议访问WEB服务器的流程是完全一致的,只不过具体的细节
       有了很多的不同之处,这里就不一一说明了.
     4: Other
       本来这块想基本阐述下手机与手机通讯的原理,但是感觉很罗嗦.感兴趣的自己google吧:)

--] F8使用操作系统的猜测
  拿到F8以后,我第一件感兴趣的事情就是想知道它的操作系统到底是那种.据说这款历经3年耗资过亿的产品...,于是我在
  安装手机相关驱动的时候,发现了一个蛮奇怪的事情;这款手机的驱动可以直接与Nokia手机进行数据的互换,大家都知道
  Nokia手机是比较出名的,它在业界的名声就好像IBM在笔记本界的名声那样传奇.但是我还是考虑到这样一个问题,为什么
  单单可以和Nokia的手机进行数据的互换?而不是和Moto或者爱立信或者NEC呢?
  从这里不难猜测出,F8使用Symbian操作系统的可能性很大;因为如果使用的是Windows Mobile操作系统,那么它会很开心
  的加个驱动,然后很自大的说"该手机可以和Moto自由传输数据...".
  A: 测试F8媒体可支持播放格式
  为了验证到底是否是Symbian操作系统,我对F8的媒体播放器进行了语言格式的测试.
  测试发现:
  MP3格式--可播放
  RM格式 --不可播放
  MP4格式--可播放,但需要F8专门的转换工具
  WMV格式--不可播放
  MPEG格式-不可播放
  AVI格式--不可播放(该AVI格式为Windows下面可播放文件)
  从上面的测试列表中,不难发现F8的操作系统肯定不是Windows Mobile,因为Windows Mobile内置了类似Media Player这样的
  播放器,如果MPEG格式都不支持,那么MS还不是自己搬石头砸自己脚啊.既然不是MS的手机OS,那么是Symbian的可能性就大了
  很多.
  B: 对F8的驱动程序的分析
  虽然上面的简单测试,基本可以感觉到F8是Symbian系统的可能性很大,但我还是对它安装在PC上面的几个驱动文件和可执行
  程序进行了逆向的反编译.不过我也感觉我犯了一个很愚蠢的错误,因为这些驱动都是针对USB设备使用的,我既是把整个程序
  都逆向分析完也找不到任何可利用的地方,因为它根本和手机是无关的玩意,USB设备的通讯标准都成型很多年了.
  C: 其它测试
  这些测试可能对手机有害,就此带过.
  D: 结论
  发送F8的OS是Symbian的可能性达到了我认可指数的65%了.这个结果已经很使我满意了,最起码对下面我破解这个设备有很大
  的帮助:)
  
--] 如何隐藏自己?
  大家如果看电视的话,应该会无意间看到电视上面对于F8隐形功能的长篇大论,我们下面的部分会从原理上面来分析下F8是如何
  隐形的,但是具体实现的技术可能需要很强的无线方面的编程技术,这里我们就不进行讨论了.
  F8的隐形功能大体分以下几个功能,
  --设置来电接听方式,可以根据设置使对方收到不在服务区/对方电话忙/已关机等信息
  --隐藏短信,使别人无法查看短信内容
  --来电防火墙
  知道了原理,那么我们就一步步来实现我们的目标,对这个隐藏功能进行技术方面的剖析.
  
  A: F8对电话来电的隐藏功能
  其实想要隐藏自己是比较容易的事情,当然我说的这个容易是建立在对移动/联通手机通讯协议的基础上的.下面我大体的讲解下
  发送信号手机->移动/联通->接收信号手机->发送信号手机的一个基本过程.
  当然上面说的这个过程存在了以下几点可能存在的情况:
  1: 接收手机关机
  2: 接收手机不在服务区
  3: 接收手机在通话中
  4: 接收手机号码不存在
  5: 接收手机信号不稳定
  6: 接收手机可以接通
  单纯从上面五种情况以及手机与手机通话的过程分析,单纯从理论来分析,我们就可以很容易的制造自己隐身的目的:)
  大家应该都能想到,如果出现了上面五种情况的任何一种后,中国移动或者中国联通肯定有某种信息来进行以上五种情况的判断,
  我们这里进行一个设想,中国移动/联通的处理办法应该是通过某种标志位来进行判断的,就好像TCP/IP通讯那样:)
  当接收手机或者中国移动/联通的中继站返回的信号判断标志位是1,则证明手机关机,标准位是2则认为手机不在服务区...
  知道了这个基本原理后,对于隐藏自己来说就非常的easy了.
  首先,我们通过手机设置某种情况,然后F8应该会在某个号码打进的时候判断该号码是否已经进入受保护模式的号码.
  然后,针对该号码的相关保护设置返回某个信号标志位给中国移动/联通,这样类似于欺骗了中国移动/联通的信号设备,然后由
  中国移动/联通发送欺骗的信号给对方手机,这种情况下,对方手机就会接收到手机忙或者手机不在服务区的错误信息:)
  最后,给人的错觉就是对方手机的确正在忙或者不在服务区.
  
  B: 隐藏短信
  其实隐藏短信的功能实现也是比较简单的,为了大家能够看的明白,我以一个程序的方式来实现,看明白这个程序,那么也就清楚
  F8隐藏短信的能力了:)
  char strUser[] = "7all";
  char strPass[] = "7all";
  
  if (strCheckLogin(strUser, strPass))
  {
    printf("Login Success");//可以看短信
  }
  else
  {
    printf("Login Error");//登陆错误
  }
  bool strCheckLogin(char *strUser, char *strPass)
  {
    //与用户名密码存储数据库相连接,检查用户名,密码是否正确
    //正确返回1,错误返回0
  }

  看完上面的程序流程,大家也就明白F8对于短信隐藏的办法拉.原理就是这么简单,但是实际的做法...可能就复杂了很多,当然我们只是
  对原理来谈论.
  
  C: 对于如何实现来电防火墙
  这个功能和上面的A描述的基本相同,只不过实现原理比A要弱智了很多.
  
--] 如何实现短信远程控制F8
  我想这个功能的确是比较终于的功能,而且也是F8最值得骄傲的功能,这个功能代表了对无线设备开发的技术层面到了一个比较深的地步.
  当然这里所说的技术层面也是针对本人自己的技术而言:)未免有很多的高手,对这样的技术还是比较熟悉的.
  首先,既是拣到手机换了卡,也可以使用F8远程控制.
  其次,可以根据远程控制进行资料的传输与销毁.
  这个远程控制的功能我还没有测试完全,至于技术实现方面也很难抓住一个比较准确的办法,于是我进行了以下猜想.
  A: F8是运行用户设置F8机主信息的.
  B: 只有设置了F8的权限密码才可以使用远程控制功能.
  C: 远程控制功能可以进行其它号码绑定或者与任意号码绑定.
  
  如果删除本机信息的话,是比较简单的,远程控制的删除与本机删除方式是相同的.但F8是如何处理这个过程的?
  但我仔细分析了以下过程后,自己感觉其实F8的远程控制功能是相当简单的
  A: F8有一个防盗跟踪系统,这个系统是设置了一个当手机被换手机卡后,一个接收新换的手机卡的手机号码的手机。
     例如:我在防盗跟踪系统里面事先设置好13705405450为防盗跟踪号码,然后我把现在的手机卡换为另一个,当
     开机后,新手机卡的号码会给13705405450这个手机号码发送一条短信,短信的内容就是这个新换手机卡的手机
     号码:)
  B:F8的远程控制是根据新换的手机号码发送短信指令给被控制的手机。
     流程如下:
     任意手机发送短信指令-->F8
     -->F8根据接收的指令,验证F8系统密码是否正确
     -->正确则根据指令进行相关操作(错误则不操作)
     //下面流程为正确的情况
     F8接收到关机指令的短信格式-->在背后处理短信指令-->隐藏特殊指令短信-->关机
  C:OK,就这么简单...
  
--] 如何进行破解
  记得这些系统的编程都具体一些基本的DEBUG API,初步的设想是根据这些DEBUG API来使用C++ Or JAVA书写一些DEBUG程序,
  然后在F8内部运行看其反应,但因为这个部分比较罗嗦,加上最近有些忙,故以后我会专门书写DEBUG 移动设备的文档.