爱技术

 找回密码
 注册会员

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 1009|回复: 9
收起左侧

[原创]屏蔽SIM卡的尝试

[复制链接]
发表于 2005-8-12 00:00:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册会员 微信登录

x
通过mmiu35.exe模拟器找到了处理初始化SIM卡消息处理任务地方和SIM卡消息处理任务的函数。我做过两个尝试
; 第一种,不建立消息任务
;0x151D6C: DAC5A871 CC00CC00
; 第二种,在任务处理函数中不处理消息
;0x256D60: EA20906E FAC5906E
结论是:两种修改都成功了,SIM插入小八后开机亦显示未插SIM卡的画面,进去后一切如常
    但问题是:屏蔽SIM卡后关机好慢,两种修改后的关机均比正常慢了10秒
估计是SIM访问硬件的消息未得到处理所造成的,这样简单地修改后,SIM卡应该还是被启动了,只是小八未处理而已。
下面把修改原理大概说一下,让大家参考参考:
------------------- 第一种 -------------------------------------
B5000:1D6C DA C5 A8 71             calls 0C5h, Init_Chipkarte_PL_and_init_SIM_etc
        就把这行干掉,即是不初始化任务,里面的东东如下:
C5000:71A8                   Init_Chipkarte_PL_and_init_SIM_etc:     ;
C5000:71A8 E6 FC 50 35             mov r12, #3550h                   ; pid_CHIPKARTE_PL
C5000:71AC E6 FD 0E 00             mov r13, #0Eh                     ; 0:3B550
C5000:71B0 E6 FE 14 3F             mov r14, #3F14h
C5000:71B4 E6 FF 13 03             mov r15, #313h                    ; 0:C4FF14
C5000:71B8 DA B4 F6 6E             calls 0B4h, GbsInitProcess1   ; 初始化ChipKarte_PL这个任务
C5000:71BC DA C5 26 6B             calls 0C5h, Set_SIM_state_value_9_and_call_deal
C5000:71C0 E6 FC 58 35             mov r12, #3558h                   ; pid_CK?
C5000:71C4 E6 FD 0E 00             mov r13, #0Eh
C5000:71C8 E6 FE 1C 3F             mov r14, #3F1Ch
C5000:71CC E6 FF 13 03             mov r15, #313h
C5000:71D0 DA B4 F6 6E             calls 0B4h, GbsInitProcess1 ; 初始化CK?这个任务
C5000:71D4 E6 FC 50 35             mov r12, #3550h
C5000:71D8 E6 FD 0E 00             mov r13, #0Eh
C5000:71DC E6 FE 2B 00             mov r14, #2Bh ; '+'
C5000:71E0 FA B4 80 79             jmps 0B4h, jump_to_Send_Msg_then_Return
C5000:71E0                   ; End of function Init_Chipkarte_PL_and_init_SIM_etc
                 --------------
C5000:6B26                   Set_SIM_state_value_9_and_call_deal:    ;
C5000:6B26 E6 00 32 00             mov DPP0, #32h ; '2'
C5000:6B2A E0 9C                   mov r12, #9
C5000:6B2C F6 8E A2 09             mov w_for_SIM_Low?, ZEROS
C5000:6B30 F6 8E A4 09             mov w_for_SIM_Hi?, ZEROS
C5000:6B34 D7 40 32 00             extp #32h, #1 ; '2'
C5000:6B38 F6 FC CC 09             mov sim_state?, r12
C5000:6B3C E0 1C                   mov r12, #1
C5000:6B3E F2 FD A4 09             mov r13, w_for_SIM_Hi?
C5000:6B42 5C 2D                   shl r13, #2
C5000:6B44 D7 50 13 03             extp #313h, #2
C5000:6B48 D4 4D 84 3D             mov r4, [r13+3D84h]               ; #9  please goto  0:C566D2
C5000:6B4C D4 5D 86 3D             mov r5, [r13+3D86h]               ; C4000:FD84 func_Array_for_SIM_notify
C5000:6B50 DA C7 88 EE             calls 0C7h, callR5R4              ; R5 for seg,  R4 for offset
C5000:6B54 E6 00 32 00             mov DPP0, #32h ; '2'
C5000:6B58 CC 00                   nop
C5000:6B5A F6 8E 9E 09             mov word_C899E, ZEROS
C5000:6B5E DB 00                   rets
C5000:6B5E                   ; End of function Set_SIM_state_value_9_and_call_deal
-------------------- 第二种 ----------------------------
在消息处理函数中,收到消息后就马退出,即不处理:
C5000:6D32                   proc_CHIPKARTE_PL:        ; 上面说的任务的处理函数
C5000:6D32 DA B4 36 7E             calls 0B4h, sub_B47E36
C5000:6D36 48 41                   cmp r4, #1
C5000:6D38 3D 06                   jmpr cc_NZ, loc_C56D46
C5000:6D3A DA B4 4E 7E             calls 0B4h, sub_B47E4E
C5000:6D3E 48 40                   cmp r4, #0
C5000:6D40 3D 02                   jmpr cc_NZ, loc_C56D46
C5000:6D42 E0 1C                   mov r12, #1
C5000:6D44 0D 01                   jmpr cc_UC, loc_C56D48
C5000:6D46                   ; -------------
C5000:6D46                  
C5000:6D46                   loc_C56D46:                             ;
C5000:6D46                                                           ;
C5000:6D46 E0 0C                   mov r12, #0
C5000:6D48                  
C5000:6D48                   loc_C56D48:                             ;
C5000:6D48 E6 00 32 00             mov DPP0, #32h ; '2'
C5000:6D4C E6 FD 32 00             mov r13, #32h ; '2'
C5000:6D50 F6 FC DA 09             mov word_C89DA, r12
C5000:6D54 E6 FC C8 09             mov r12, #9C8h
C5000:6D58 E0 1E                   mov r14, #1
C5000:6D5A DA B4 E2 7A             calls 0B4h, ReceiveMessage?
C5000:6D5E 48 40                   cmp r4, #0
C5000:6D60 FA C5 90 6E             jmps 0C5h, exit_proc_Chip_Karte_PL
革命尚未成功,同时仍需努力呀。
[此贴子已经被作者于2004-8-15 1:03:04编辑过]

发表于 2005-8-12 00:01:00 | 显示全部楼层
不错~~~~~~~~~~~~~~~~~~请问你是用什么工具来找这段地址的啊?
发表于 2005-8-12 00:02:00 | 显示全部楼层
看模拟器确实是比较有意思的事,从我的中文模拟器还可以看是在一位刘女士(candyliu我猜是女士)的机器上编译的!
发表于 2005-8-12 00:03:00 | 显示全部楼层
系统的大多数进程都可以通过模拟器(得到名字,从调试信息中)和FireWare的对应找出来,相应的就可以找到启动进程的位置。不过需要对两方面都有些了解才可以。
 楼主| 发表于 2005-8-12 00:04:00 | 显示全部楼层
我对模拟器的分析是在Mamaich给出的IDB文件的基础上进行的,所以我也只好找了个英文版的来用了。英文版的编译时间比中文版的晚两个小时。通过对模拟器的分析,我了解了小八OS的调度是通过什么触发的,但现在还没掌握,所以我打算学习一下uc/OS-ii,估计小八的OS在消息、内存管理方面是差不多的,但同时也看到,小八的OS并不是实时的。不知道国外现在对小八的掌握情况如何,也不知道他们也有写硬件级模拟器的想法。
谁有了解呢?
发表于 2005-8-12 00:05:00 | 显示全部楼层
有一个,用这种方法,用电会不会减少。(这样才可加长待机时间)另外如果能做成可选,就可以对付乱打电话的人了
发表于 2005-8-12 00:06:00 | 显示全部楼层
有2128的模似器吗!我想研究一下!
eggboss 该用户已被删除
发表于 2005-8-12 00:07:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2005-8-12 00:08:00 | 显示全部楼层
严重支持~~[em06]
发表于 2005-8-12 00:09:00 | 显示全部楼层
看看高手们的研究和讨论,受益非浅!!
您需要登录后才可以回帖 登录 | 注册会员 微信登录

本版积分规则

小黑屋|Archiver|手机版|爱技术 ( 沪ICP备08115260号-3 )

GMT+8, 2024-5-20 03:06

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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