找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 7718|回复: 59

[写号相关] CDMA TREO 800W 中文短信初步探索以及请求K版支招

[复制链接]
发表于 2009-5-31 11:23 | 显示全部楼层 |阅读模式
呵呵,大家好,我是PALM新手,但是对于WINDOWS MOBILE系统来讲,不算新手了。最近突然对800W有兴趣,入手一台,感谢斑竹的写号教程,已经可以正常接听 拨打电话以及上网了。
9 V; e2 y# Q2 k7 P- w0 z: S$ X这两天浏览了一下坛子里相关的帖子,也对800W的中文短信问题做了初步探索,过程简列如下:$ T) y9 Z% _# ~" i. _2 f* T
800w的短信服务程序没有使用默认的WM内置的tmail.exe,而是使用了自己的messagingapp.exe。所以一开始怀疑这个应用将中文短信过滤掉了。所以我从SMS_PROVIDERS这一层,嵌入了调试代码,发现SMS_PROVIDERS接收到的信息,含有中文的都为空。也就是说,RILMESSAGE结构体中的 rbMsg 字段是空的,全是0x0。另外,识别出的编码是 8BITASCII,按理说应该是UCS之类。看来问题不出在这一层。+ Z9 w8 s# `7 {7 J4 X/ C
于是,我写了一个RIL钩子程序,监视了一下RIL的MSG_IS637INDELIVERY消息,发现RIL返回系统的消息中。比如接收“你好”两个字,dwCoding 值为0x2,长度为0x2,内容为全0,也就是说 RIL驱动层已经丢失了中文短信。对于800w来讲,系统认为这是一条空短信,只显示一个 please call 138xxxxxxxxx
1 b$ q9 S2 i: _. R" L% {TREO800W跟700W一样,RIL驱动程序是 TelephonyInterfacelayer.dll,这个DLL是厂商根据基带芯片种类和自身设备特点开发的CE系统跟基带MODEM通讯的桥梁。在不同机型上是不一样的,比如GSM机型多数是rilgsm.dll,HTC的机型有用rilphone.dll的,也有用rilcdma.dll之类。
- T9 q" a- j* U" ]针对这一点,特此请教K版以及各位,对于700W的WM5中文短信,以及700W 的WM6初步完成版,你们的Telephonyinterfacelayer.dll 驱动是从何得来的,是通过原版本逆向工程修改关键字节还是其他渠道。相同方法是否可以作为800W中文短信的参考。个人感觉,只要从这一层解决了中文短信问题,剩下的都应该不难。以上为个人拙见,有不对的地方,敬请指正。敬请K版以及各位前辈多多指教。" d' Z& d0 d  Y  s% Q" m/ `' p

5 R/ }  w: F7 G( B/ M[ 本帖最后由 surf98 于 2009-5-31 11:26 编辑 ]

评分

参与人数 4威望 +50 收起 理由
CyberVsQ + 20 谢谢分享
qwedsa + 5 精品文章,加油!
厚朴 + 5 谢谢!
卒子 + 20 加油!

查看全部评分

回复

使用道具 举报

发表于 2009-5-31 11:40 | 显示全部楼层
支持楼主,你的确不是新手。
回复 支持 反对

使用道具 举报

发表于 2009-5-31 12:02 | 显示全部楼层
  你分析得没错,问题的根源就在这个TelephonyInterfacelayer.dll。你可以看一下700w的WM5、WM6的短信补丁,也正是对这个文件做了修改。但是800w和700w的Radio芯片不同,这个文件的程序结构也有很大不同,所以这个文件不是通用的,而且修改方法也有所不同。另外,最关键的问题是,在800w正式版上,这个补丁方法完全不起作用,要不早就有进展了,所以还在想其他的办法。具体的情况你可以试试看。
回复 支持 反对

使用道具 举报

发表于 2009-5-31 12:03 | 显示全部楼层
如果你熟悉ARM汇编、反汇编知识和ROM基础,应该可以更进一步。
回复 支持 反对

使用道具 举报

发表于 2009-5-31 12:14 | 显示全部楼层
呵呵!!现在就是一直卡在这里。。。。
9 G$ n8 Q- x! o1 a& W8 ~7 x而且。。关键是提取了的ROM没用办法刷回去。。
回复 支持 反对

使用道具 举报

发表于 2009-5-31 13:16 | 显示全部楼层

楼主的能上网是指WIFI还是1X或DO

楼主的能上网是指WIFI还是1X或DO,能提供方法不
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-5-31 13:38 | 显示全部楼层
回K版,ARM汇编我只是略懂,谈不上精通。IDA PRO对TELEPHONYINTERFACELAYER.DLL做了反汇编,东西太多了,无从下手。所以再请教一下,700w当时从汇编级解决此问题的思路或方法,可否告知,以做参考。另外,PLATFORM BUILDER里面可以看到RILGSM的全部实现例子,我粗略翻看了一下,已经基本确定了2个函数可能存在问题。但从IDA的反汇编结果来看,TREO800W应该是在MS提供DEMO基础上做了较大改动。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-5-31 13:42 | 显示全部楼层
原帖由 lfc0859 于 2009-5-31 13:16 发表
; e( v: P2 F+ Y楼主的能上网是指WIFI还是1X或DO,能提供方法不
$ K% F1 h0 S' B( ^+ h

0 U) p; }$ s3 S2 g2 M. v- D; ?我1X和EVDO都可以上。EVDO我只有每月5小时的尝鲜,所以很少用。方法本版好像有专贴,请搜索一下看。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-5-31 13:43 | 显示全部楼层

回复 地下室5# ooo000 的帖子

如果其他方面处理好了,itsutils的pdocwrite可否凑效?
回复 支持 反对

使用道具 举报

发表于 2009-5-31 20:41 | 显示全部楼层

回复 9楼 surf98 的帖子

不可以。。。至少目前没发现方法。。。
: M9 F4 T: U( N  r# N' |5 b$ J# @6 i7 }8 }
所以。。首要的任务是解决补丁做好以后应用到rom中去的问题。。* n+ P3 W9 E" k1 a* S+ o7 D, \
, ^- }. i* ?' i8 t( F/ |3 R9 b( y
另外。。既然会写hook。。那就直接hook那个til吧。。。因为hook反而是目前最有可能的办法。。反汇编的希望不大。。
回复 支持 反对

使用道具 举报

发表于 2009-5-31 21:03 | 显示全部楼层
我有正式版的rom 。。2 I1 C5 r- D1 B* \
楼主需要的话。。我可以给你。。
/ @, S9 s( G+ s: J: b3 \9 q1.03版本的。。- r2 ^; _3 W6 E% m- B3 E* O
猴版提取出来的。。
回复 支持 反对

使用道具 举报

发表于 2009-5-31 21:03 | 显示全部楼层
另外。。楼主似乎对wm的rom也很懂。。那可以研究一下把til复制回ram后开不了电话模块的问题。。若该问题能解决。。则800w的短信问题也就可以解决了。。
回复 支持 反对

使用道具 举报

发表于 2009-5-31 21:05 | 显示全部楼层
原帖由 ooo000 于 2009-5-31 21:03 发表 6 `8 g; P$ }7 C3 n7 y( R
我有正式版的rom 。。' V9 Z, C0 k9 E+ E5 _& O
楼主需要的话。。我可以给你。。  s* d9 u# B: }; ]# ?) m
1.03版本的。。" u. ?8 P% ]! f0 {
猴版提取出来的。。

+ Y. m! z# H$ ^: D8 Q9 R0 |
1 F+ A! d( {# Y# Q. V7 x楼主既然提到了pdocwrite。。也一定会用pdocread提出rom的。。。
回复 支持 反对

使用道具 举报

发表于 2009-5-31 21:07 | 显示全部楼层
原帖由 snowmonkey 于 2009-5-31 21:05 发表
6 |* C. |- o! p/ }
- d5 c2 I' W- o9 j5 N8 _4 }, A( U: n
楼主既然提到了pdocwrite。。也一定会用pdocread提出rom的。。。
% ]2 S/ x! u7 M) {
不知道楼主的机子是什么版本的。。。
  Q1 c. w* B9 s: Q# F呵呵。。。
回复 支持 反对

使用道具 举报

发表于 2009-5-31 21:12 | 显示全部楼层
技术帖,支持!
回复 支持 反对

使用道具 举报

发表于 2009-5-31 21:59 | 显示全部楼层
高手云集哦!支持!!
回复 支持 反对

使用道具 举报

发表于 2009-6-1 02:16 | 显示全部楼层
该贴技术氛围浓厚啊~~
7 ?" \) @" L  n- I; ]4 r- [; I3 K# Y2 k/ H+ X' q* M0 L9 K
唉,palm的怎么就这么难搞,看看HTC的,同样是WM系统,ROM是一个接一个,改卡的也已经铺天盖地,而且当初好像也没在中文短信的问题遇到什么难关,好像改改注册表就行了……
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-1 10:47 | 显示全部楼层
谢谢猴版以及圈圈兄的回复。
0 _9 J3 ~0 R8 ?) B* E/ M我现在用的就是SPRINT 1.03版,ROM已经提取出来,模块也都DUMP了。TIL看来是以模块形式,而不是DLL形式加载的,所以出现打不开无线的情况。
! Y/ y9 Q6 S4 r1 ~# c4 h! g8 uHOOK消息的方法恐怕不能解决问题了,因为跳到TIL层,其工作模式已经跟RIL层的消息回调机制不同了。. X* d' s8 Q2 m8 v, N* C4 _/ v
我现在正试图HOOK TIL的RIL_IOControl API,这方面没大做过,只能慢慢啃。目前归纳出的是,RIL.DLL通过RIL PROXY界面,向TIL发了一个IOCTL_RIL_READMSG的消息,TIL返回一个RILMESSAGE结构体,我希望能HOOK这个API,然后用自己的返回结果代替原TIL的返回,不知道是否异想天开。; V- B( `3 A$ ], f( ?7 }
另,我跟猴版意见一致,反汇编的方式恐怕难以走通。
, N2 O' f2 k& y% v6 R3 D欢迎大家继续讨论,提供思路。# T  [$ H+ d" I, x4 Y
原帖由 snowmonkey 于 2009-5-31 20:41 发表 + K$ }. u8 J! x) J$ S
不可以。。。至少目前没发现方法。。。7 R0 B" R0 y8 I) W  O# E4 n% H# \
% [) t# f7 O# V4 J; }
所以。。首要的任务是解决补丁做好以后应用到rom中去的问题。。8 o8 h8 C) p% g, M
" b: A) {+ L) c" F" m2 h8 r) B' A
另外。。既然会写hook。。那就直接hook那个til吧。。。因为hook反而是目前最有可能的办法。。反汇编的希 ...
回复 支持 反对

使用道具 举报

发表于 2009-6-1 11:30 | 显示全部楼层
不是很懂这些技术
3 F) Z" I& ]$ p/ U% M- l: b但支持你,也感谢你和猴哥的辛苦!
回复 支持 反对

使用道具 举报

发表于 2009-6-1 16:35 | 显示全部楼层
楼上的几位都相当专业
回复 支持 反对

使用道具 举报

发表于 2009-6-1 18:53 | 显示全部楼层

版主提供一下QCN备份呀

照着搜索到的方法,不只我不能上网,还有N多TERO友也上不了网哟
回复 支持 反对

使用道具 举报

发表于 2009-6-1 22:09 | 显示全部楼层
原帖由 surf98 于 2009-6-1 10:47 发表
5 {$ K, H! ^' P- O# C谢谢猴版以及圈圈兄的回复。
3 z4 k: f9 G3 @2 ^3 L, D; W我现在用的就是SPRINT 1.03版,ROM已经提取出来,模块也都DUMP了。TIL看来是以模块形式,而不是DLL形式加载的,所以出现打不开无线的情况。0 r! I7 A# b! u9 ~. E) @9 |) ]
HOOK消息的方法恐怕不能解决问题了,因为跳 ...

6 E6 a* P7 f' ]/ V$ e; D0 O* Z; F1 Q  Y
; R: K4 ?+ _% \. G  m& zTIL是模块形式。。或许是打不开无线的情况。。。不过有个情况楼主可以分析一下。。在工程版的rom上。。TIL拷回去是可以用的。。。这个TIL也是模块形式。。
回复 支持 反对

使用道具 举报

发表于 2009-6-2 00:33 | 显示全部楼层
太专业了,不懂,你们继续
3 T* }' I8 g- u' C" c9 l我顶
回复 支持 反对

使用道具 举报

发表于 2009-6-2 02:06 | 显示全部楼层
半夜起来顶一下
回复 支持 反对

使用道具 举报

发表于 2009-6-2 02:36 | 显示全部楼层
楼上的几位,如果需要机器测试中文短信的的话,我可以免费提供几台机器提供测试,刷坏不需要你们承担责任,我的联系QQ:463166527% f( R1 V* s) P$ A$ [3 j
电话15920098495
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-2 22:15 | 显示全部楼层
猴版有没有工程机的ROM DUMP,发一份给我。 surf98@sina.com/ m: G1 Q, n/ R1 Y2 f/ H. g
原帖由 snowmonkey 于 2009-6-1 22:09 发表
3 h/ w, l/ Z7 A0 z! v8 K: Q/ z/ L& @" X' o  q9 o) k2 D
; L- J0 o6 v8 E
TIL是模块形式。。或许是打不开无线的情况。。。不过有个情况楼主可以分析一下。。在工程版的rom上。。TIL拷回去是可以用的。。。这个TIL也是模块形式。。
回复 支持 反对

使用道具 举报

发表于 2009-6-3 13:43 | 显示全部楼层
我有的,等有时间我上传一个。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-3 21:26 | 显示全部楼层
我用QPST的SERVICE PROGRAMMING功能将原内置的SPRINT PROVISION帐号禁用了,不能上网看是不是没有进行这个操作。2 k$ q3 p0 a' k4 @+ v$ D. p

5 c0 ?, \: {0 k2 U5 `  a# T
原帖由 lfc0859 于 2009-6-1 18:53 发表 % v1 d  b2 w8 o; X
照着搜索到的方法,不只我不能上网,还有N多TERO友也上不了网哟
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-3 21:27 | 显示全部楼层
OK,感谢K版。等待中。。。这两天有个比较紧的项目,天天跑项目,所以进展不大。只能周末努力了。
" t" {; x2 ?. L* ?$ q1 N
原帖由 KING 于 2009-6-3 13:43 发表
; u4 Q# P' v6 w7 r5 y1 n我有的,等有时间我上传一个。
回复 支持 反对

使用道具 举报

发表于 2009-6-3 21:35 | 显示全部楼层
原帖由 surf98 于 2009-6-3 21:27 发表
, [5 [! L3 B3 E; vOK,感谢K版。等待中。。。这两天有个比较紧的项目,天天跑项目,所以进展不大。只能周末努力了。) h/ Z1 {/ k" \+ S
: ^: {# n! Q1 U
盼星星盼月亮早日破解啊。。
回复 支持 反对

使用道具 举报

发表于 2009-6-3 21:41 | 显示全部楼层
原帖由 surf98 于 2009-6-3 21:26 发表
# @+ C2 ^$ q0 k' s, x5 v2 g! b0 _我用QPST的SERVICE PROGRAMMING功能将原内置的SPRINT PROVISION帐号禁用了,不能上网看是不是没有进行这个操作。
& |5 q# ~6 P) N; F
6 g& V9 N6 E; M% p' Y, ^2 T  h/ S

- Y( Y# C4 o1 d" x
# {/ Y5 \$ q4 n9 |+ M上图说明一下?
回复 支持 反对

使用道具 举报

发表于 2009-6-4 10:19 | 显示全部楼层
LZ你的手机能不能用GPS啊?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-4 18:41 | 显示全部楼层
我换了N种格式,都提示无效图片格式,晕。只好压缩。

My Pictures.rar

34.48 KB, 下载次数: 502

回复 支持 反对

使用道具 举报

发表于 2009-6-4 20:22 | 显示全部楼层
原帖由 surf98 于 2009-6-4 18:41 发表
& L8 y- R/ ~- g2 s# t我换了N种格式,都提示无效图片格式,晕。只好压缩。

. G; t( H; G) W( k& `
6 j! Q* S& H" `' x, I& }我帮你发一下图。无法发图应该是浏览器设置的问题,你看站务区有个帖子可以参考。
1.gif
2.gif
回复 支持 反对

使用道具 举报

发表于 2009-6-4 23:30 | 显示全部楼层
高手云集啊,中文短信要是能解决,我就下手了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-5 05:38 | 显示全部楼层
刚刚试了一下,从原机DUMP出来的Telephonyinterfacelayer.dll ,经过特权签名后,做成CAB,将CAB也做特权签名,安装覆盖原文件,无线可以启动。功能都正常,只是感觉启动好像慢了点,不知是否心理作用。
9 a$ A, a* [7 l$ S: V: U9 Z
原帖由 snowmonkey 于 2009-6-1 22:09 发表 ) N2 b! w+ P7 o' Q# d

) p- D) H1 d) e9 `! D& E; v8 e  \+ x
% g; v' u# t1 `, Y) VTIL是模块形式。。或许是打不开无线的情况。。。不过有个情况楼主可以分析一下。。在工程版的rom上。。TIL拷回去是可以用的。。。这个TIL也是模块形式。。
回复 支持 反对

使用道具 举报

发表于 2009-6-5 08:41 | 显示全部楼层

回复 36楼 surf98 的帖子

( A+ o3 ?* n! Y( M% O
牛人!4 n$ @, W0 `3 N6 x! Y# A( P; W* h
等待你们的好结果
回复 支持 反对

使用道具 举报

发表于 2009-6-5 10:21 | 显示全部楼层
原帖由 surf98 于 2009-6-5 05:38 发表
% D+ \+ o, ]5 ]4 K5 M刚刚试了一下,从原机DUMP出来的Telephonyinterfacelayer.dll ,经过特权签名后,做成CAB,将CAB也做特权签名,安装覆盖原文件,无线可以启动。功能都正常,只是感觉启动好像慢了点,不知是否心理作用。$ E/ J; o1 C& j9 b* u% x- F

  i  [! {1 Y6 B# X3 x, A1 Q" [, A8 w* v' |' R% s7 n8 z# \6 O
700w的补丁就是这样做的。测试过,在800w工程机上也可以这么做,但正式版不行。你的是什么版本?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-5 11:36 | 显示全部楼层
SW:TREO800W-1.03-SPNT
& F9 t; a5 v% }# @  ?OS: Windows Mobile 6.1 Professional CEOS 5.2.19216
( o8 B1 G0 w0 FRadio:1169 L( ^) G, b4 @9 n7 m
HW: Zeppelin-A
- {7 ~& s( u2 U" f应该是正式版吧。
: Y( Y1 k/ f9 g我是使用从800w DUMP出的原TIL签名再覆盖进去,正常工作。K版是不是用修改了的TIL覆盖进去,不工作呀。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-5 11:40 | 显示全部楼层
另外,我FAKE了TIL,将API调用记录入日志。发现一个奇怪的问题,使用原系统的文件,IOCTL_READMSG 和 IOCTL_SENDMSG并不走TIL,难道800W的短信没有经过TIL?, U- c) i# D5 U8 K
我使用了其他机型的messaging.exe替换掉了800W默认的,发现发送短信的时候,IOCTL_SENDMSG经过了TIL,但接收还是不经过。' p7 `5 N1 l0 j3 o& G. N1 W
不知道恢复800W的默认SMS服务程序为tmail.exe,这两个消息是否走TIL。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

QQ|Archiver|手机版|小黑屋|吹友吧 ( 京ICP备05078561号 )

GMT+8, 2024-6-16 22:23 , Processed in 0.423558 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表