[讨论]Common_Kang请进,关于AT
我找到了AT+CGSN的地址:你看一下,但有一个难点,具体如下:
AT+CGSN
4022C :84 11 E5-〉
00000 : E0 04 MOV R4,#00H
00002 : BB 07 CALLR 0012H
00004 : 9D FE JMPR CC_NC,0002H
00006 : CB 00 RET
00008 : E0 04 MOV R4,#00H
0000A : BB 03 CALLR 0012H
0000C : 8D 01 JMPR CC_C,0010H
0000E : BB 01 CALLR 0012H
00010 : CB 00 RET
00012 : D7 40 11 00 EXTP #11H,#1 ->难点,存放命令的RAM的page
00016 : 99 2C MOVB RL1,
00018 : 27 F2 30 00 SUBB RL1,#0030H
0001C : 8D 0C JMPR CC_C,0036H
0001E : 47 F2 0A 00 CMPB RL1,#000AH
00022 : 8D 06 JMPR CC_C,0030H
00024 : 67 F2 DF 00 ANDB RL1,#00DFH
00028 : 29 27 SUBB RL1,#7
0002A : 47 F2 0F 00 CMPB RL1,#000FH
0002E : ED 03 JMPR CC_UGT,0036H
00030 : 5C 44 SHL R4,#04H
00032 : 71 82 ORB RL4,RL1
00034 : CB 00 RET
00036 : 1F 88 BSET C
00038 : CB 00 RET
0003A : 88 50 MOV [-R0],R5
0003C : 88 E0 MOV [-R0],R14
0003E : 88 F0 MOV [-R0],R15
00040 : 88 D0 MOV [-R0],R13
00042 : F1 82 MOVB RL4,RL1
00044 : 7C 44 SHR R4,#04H
00046 : F1 92 MOVB RH4,RL1
00048 : 66 F4 0F 0F AND R4,#0F0FH
0004C : 47 F9 0A 00 CMPB RH4,#000AH
00050 : 8D 01 JMPR CC_C,0054H
00052 : 09 97 ADDB RH4,#7
00054 : 47 F8 0A 00 CMPB RL4,#000AH
00058 : 8D 01 JMPR CC_C,005CH
0005A : 09 87 ADDB RL4,#7
0005C : 06 F4 30 30 ADD R4,#3030H
00060 : 88 40 MOV [-R0],R4
00062 : F0 C0 MOV R12,R0
00064 : 66 FC FF 3F AND R12,#3FFFH
00068 : F2 FD 02 FE MOV R13,DPP1
0006C : DA CD 4C B0 CALLS Invalid Coding ->DAE6745E
00070 : 08 04 ADD R0,#4
00072 : 98 F0 MOV R15,
00074 : 98 E0 MOV R14,
00076 : 98 50 MOV R5,
00078 : CB 00 RET
0007A : F0 1E MOV R1,R14
0007C : 7C 81 SHR R1,#08H
0007E : E0 0D MOV R13,#00H
00080 : BB DC CALLR 003AH
00082 : F0 1E MOV R1,R14
00084 : E6 FD 20 00 MOV R13,#0020H
00088 : BB D8 CALLR 003AH
0008A : CB 00 RET
00090 : E6 FC B3 08 MOV R12,#08B3H ->难点,存放命令的RAM的offset
00094 : D7 40 11 00 EXTP #11H,#1
00098 : 99 3C MOVB RH1,
0009A : 27 F3 2A 00 SUBB RH1,#002AH
0009E : 9D 02 JMPR CC_NC,00A4H
000A0 : FA CC D0 9D JMPS CC9DD0 ->E51184
000A4 : BB AD CALLR 0000H
000A6 : F0 F4 MOV R15,R4
000A8 : BB AB CALLR 0000H
000AA : F0 E4 MOV R14,R4
000AC : 49 30 CMPB RH1,#0
000AE : 2D 15 JMPR CC_Z,00DAH
000B0 : 29 34 SUBB RH1,#4
000B2 : 2D 1F JMPR CC_Z,00F2H
000B4 : 27 F3 12 00 SUBB RH1,#0012H
000B8 : 2D 16 JMPR CC_Z,00E6H
000BA : E0 DD MOV R13,#0DH
000BC : BB BE CALLR 003AH
000BE : E1 7B MOVB RH5,#07H
000C0 : E1 FA MOVB RL5,#0FH
000C2 : E6 FD 20 00 MOV R13,#0020H
000C6 : DC 4F EXTP R13,#1
000C8 : 99 2E MOVB RL1,
000CA : BB B7 CALLR 003AH
000CC : E0 DD MOV R13,#0DH
000CE : 29 A1 SUBB RL5,#1
000D0 : 2D FA JMPR CC_Z,00C6H
000D2 : 9D F7 JMPR CC_NC,00C2H
000D4 : 29 B1 SUBB RH5,#1
000D6 : 9D F4 JMPR CC_NC,00C0H
000D8 : 0D 25 JMPR CC_UC,0124H
000DA : BB 96 CALLR 0008H
000DC : 8D 23 JMPR CC_C,0124H
000DE : DC 4F EXTP R13,#1
000E0 : B9 8E MOVB ,RL4
000E2 : 08 E1 ADD R14,#1
000E4 : 0D FA JMPR CC_UC,00DAH
000E6 : DA C7 68 D8 CALLS 2768D8 ->FUN1
000EA : BB C7 CALLR 007AH
000EC : F0 EF MOV R14,R15
000EE : BB C5 CALLR 007AH
000F0 : 0D 19 JMPR CC_UC,0124H
000F2 : 26 F0 40 00 SUB R0,#0040H
000F6 : F0 20 MOV R2,R0
000F8 : BB 87 CALLR 0008H
000FA : 8D 03 JMPR CC_C,0102H
000FC : B9 82 MOVB ,RL4
000FE : 08 21 ADD R2,#1
00100 : 0D FB JMPR CC_UC,00F8H
00102 : 20 20 SUB R2,R0
00104 : A7 58 A7 A7 SRVWDT
00108 : 08 E1 ADD R14,#1
0010A : 2D 0A JMPR CC_Z,0120H
0010C : F0 10 MOV R1,R0
0010E : F0 DE MOV R13,R14
00110 : F0 C2 MOV R12,R2
00112 : DC 4F EXTP R13,#1
00114 : 99 8D MOVB RL4,
00116 : 49 8D CMPB RL4,
00118 : 3D F5 JMPR CC_NZ,0104H
0011A : 28 C1 SUB R12,#1
0011C : 3D FA JMPR CC_NZ,0112H
0011E : BB AD CALLR 007AH
00120 : 06 F0 40 00 ADD R0,#0040H
00124 : FA CD 00 66 JMPS CD6600 ->E6302E
FUN1:
00128 : EC FF PUSH R15
0012A : EC FE PUSH R14
0012C : DB 00 RETS
这是E51184的程序
seg229:1184 AT_CGCN:
seg229:1184 sub r0, #12h
seg229:1188 calls 0E6h, sub_E66228
seg229:118C mov r12, r0
seg229:118E and r12, #3FFFh
seg229:1192 mov r13, DPP1
seg229:1196 calls 0DEh, sub_DE05DE
seg229:119A mov r12, #1
seg229:119C add r12, r0
seg229:119E and r12, #3FFFh
seg229:11A2 mov r13, DPP1
seg229:11A6 calls 0E6h, sub_E65E74
seg229:11AA calls 0E6h, sub_E6302E
seg229:11AE add r0, #12h
seg229:11B2 rets
谢谢,看了一下应该是这个地方,有工夫写段程序刷进去搜索一下字串的页地址和偏移trytry, 对了您平时就用Adis16X写汇编么?我一开始是用acidmrp的那个c166单行汇编器,但是后来发现那个东西生成的代码有时候是错的,adis16x的操作又不是很方便 对,那个程序写的不完善,好多错误。我一般用手写汇编和机器码。不熟的指令在Adis16X里查一下。因为做补丁常用的命令就那几个。
搜索的代码你可以用我发在[测试求助]里的那个补丁,那个只需改一下page和要搜索的内容就可以了。搜到后放在来电的姓名中。 失败,自己写了一个从 0 段开始搜索到 80 段,用串口连接输出结果(参考了那个AT+CGSN patch)的程序刷进去, 结果输出的是乱码,还关机了。现在手机电量不足,正在充电中:( 还是失败,faint,我似乎找到了多份拷贝,
0002:0227
0007:1EF7
0011:008A
我用修改出来的改了一下,结果标准的 AT+CGSN 没问题
用 AT+CGSN:2,227就死机了,得拔电池
AT+CGSN:0,0 没有效果
这是我的 patch , 您可否看看哪里有问题?
04022C: FFFFFF 90EBFD
7DEB00: FFFFFFFFFFFFFFFF E004BB079DFECB00
7DEB08: FFFFFFFFFFFFFFFF E004BB038D01BB01
7DEB10: FFFFFFFFFFFFFFFF CB00D7400200992C
7DEB18: FFFFFFFFFFFFFFFF 27F230008D0C47F2
7DEB20: FFFFFFFFFFFFFFFF 0A008D0667F2DF00
7DEB28: FFFFFFFFFFFFFFFF 292747F20F00ED03
7DEB30: FFFFFFFFFFFFFFFF 5C447182CB001F88
7DEB38: FFFFFFFFFFFFFFFF CB00885088E088F0
7DEB40: FFFFFFFFFFFFFFFF 88D0F1827C44F192
7DEB48: FFFFFFFFFFFFFFFF 66F40F0F47F90A00
7DEB50: FFFFFFFFFFFFFFFF 8D01099747F80A00
7DEB58: FFFFFFFFFFFFFFFF 8D01098706F43030
7DEB60: FFFFFFFFFFFFFFFF 8840F0C066FCFF3F
7DEB68: FFFFFFFFFFFFFFFF F2FD02FEDAE6745E
7DEB70: FFFFFFFFFFFFFFFF 080498F098E09850
7DEB78: FFFFFFFFFFFFFFFF CB00F01E7C81E00D
7DEB80: FFFFFFFFFFFFFFFF BBDCF01EE6FD2000
7DEB88: FFFFFFFF BBD8CB00
7DEB90: FFFFFFFFFFFFFFFF E6FC2702D7400200
7DEB98: FFFFFFFFFFFFFFFF 993C27F32A009D02
7DEBA0: FFFFFFFFFFFFFFFF FAE58411BBADF0F4
7DEBA8: FFFFFFFFFFFFFFFF BBABF0E449302D15
7DEBB0: FFFFFFFFFFFFFFFF 29342D1F27F31200
7DEBB8: FFFFFFFFFFFFFFFF 2D16E0DDBBBEE17B
7DEBC0: FFFFFFFFFFFFFFFF E1FAE6FD2000DC4F
7DEBC8: FFFFFFFFFFFFFFFF 992EBBB7E0DD29A1
7DEBD0: FFFFFFFFFFFFFFFF 2DFA9DF729B19DF4
7DEBD8: FFFFFFFFFFFFFFFF 0D25BB968D23DC4F
7DEBE0: FFFFFFFFFFFFFFFF B98E08E10DFADAFD
7DEBE8: FFFFFFFFFFFFFFFF 28ECBBC7F0EFBBC5
7DEBF0: FFFFFFFFFFFFFFFF 0D1926F04000F020
7DEBF8: FFFFFFFFFFFFFFFF BB878D03B9820821
7DEC00: FFFFFFFFFFFFFFFF 0DFB2020A758A7A7
7DEC08: FFFFFFFFFFFFFFFF 08E12D0AF010F0DE
7DEC10: FFFFFFFFFFFFFFFF F0C2DC4F998D498D
7DEC18: FFFFFFFFFFFFFFFF 3DF528C13DFABBAD
7DEC20: FFFFFFFFFFFFFFFF 06F04000FAE62E03
7DEC28: FFFFFFFFFFFF ECFFECFEDB00
这个是我的搜索 patch, 在串口命令行显示查找结果的
搜索的命令是 AT+CGSN@XKP!
程序查找的是 @XKP!
04022C: FFFFFF 00EBFD
7DEB00: FFFFFFFFFFFFFFFF F2F400FEE00DE00C
7DEB08: FFFFFFFFFFFFFFFF F6FD00FEA92C47F2
7DEB10: FFFFFFFFFFFFFFFF 40003D16F42C0100
7DEB18: FFFFFFFFFFFFFFFF 47F258003D11F42C
7DEB20: FFFFFFFFFFFFFFFF 020047F24B003D0C
7DEB28: FFFFFFFFFFFFFFFF F42C030047F25000
7DEB30: FFFFFFFFFFFFFFFF 3D07F42C040047F2
7DEB38: FFFFFFFFFFFFFFFF 21003D020D110000
7DEB40: FFFFFFFFFFFFFFFF 08C146FCFC3F3DE2
7DEB48: FFFFFFFFFFFFFFFF 08D146FD60003DDC
7DEB50: FFFFFFFFFFFFFFFF F6F400FEFAE62E30
7DEB58: FFFFFFFFFFFFFFFF 0000000000000000
7DEB60: FFFFFFFFFFFFFFFF F6F400FEECFCF0ED
7DEB68: FFFFFFFFFFFFFFFF BB07FCFEBB05FAE6
7DEB70: FFFFFFFFFFFFFFFF 2E30000000000000
7DEB78: FFFFFFFFFFFFFFFF F01E7C81E00DBB05
7DEB80: FFFFFFFFFFFFFFFF F01EE6FD2000BB01
7DEB88: FFFFFFFFFFFFFFFF CB00885088E088F0
7DEB90: FFFFFFFFFFFFFFFF 88D0F1827C44F192
7DEB98: FFFFFFFFFFFFFFFF 66F40F0F47F90A00
7DEBA0: FFFFFFFFFFFFFFFF 8D01099747F80A00
7DEBA8: FFFFFFFFFFFFFFFF 8D01098706F43030
7DEBB0: FFFFFFFFFFFFFFFF 8840F0C066FCFF3F
7DEBB8: FFFFFFFFFFFFFFFF F2FD02FEDAE6745E
7DEBC0: FFFFFFFFFFFFFFFF 080498F098E09850
7DEBC8: FFFFFF CB0000
[此贴子已经被作者于2003-7-17 4:37:18编辑过]
好的,我中午看一下,现在工作中。。
呵呵,刚发现comman_kang奋战到深夜。 以上两位都辛苦了,我把你们这些高手都设为贵宾了,至少上传什么方便些:) @cool_lang
搞定了,谢谢狼兄的帮助
昨天一开始自己写的程序偷懒了,试图一次读一个WORD然后比较,结果只要搜索必定死机,折腾了半天才反应过来这个CPU可能要求WORD要地址对齐,改成一次读一个BYTE就好了。
然后是搜到的地址有很多,试验了半天,才发现其中只有一个是真正的命令地址,其他的都是第一次输入 AT+CGSN时候的命令行复件。
最后终于搞定了,那个地址是 0014:35EB
@院长
谢谢啦 :) 最终结果 patch
; AT+CGSN debug patch
; author: rizapn, chaos
; ported to 6618_v24 by kxn
; great thanks to cool_lang & all friends @ www.36518.com
04022C: FFFFFF 90EBFD
7DEB00: FFFFFFFFFFFFFFFF E004BB079DFECB00
7DEB08: FFFFFFFFFFFFFFFF E004BB038D01BB01
7DEB10: FFFFFFFFFFFFFFFF CB00D7401400992C
7DEB18: FFFFFFFFFFFFFFFF 27F230008D0C47F2
7DEB20: FFFFFFFFFFFFFFFF 0A008D0667F2DF00
7DEB28: FFFFFFFFFFFFFFFF 292747F20F00ED03
7DEB30: FFFFFFFFFFFFFFFF 5C447182CB001F88
7DEB38: FFFFFFFFFFFFFFFF CB00885088E088F0
7DEB40: FFFFFFFFFFFFFFFF 88D0F1827C44F192
7DEB48: FFFFFFFFFFFFFFFF 66F40F0F47F90A00
7DEB50: FFFFFFFFFFFFFFFF 8D01099747F80A00
7DEB58: FFFFFFFFFFFFFFFF 8D01098706F43030
7DEB60: FFFFFFFFFFFFFFFF 8840F0C066FCFF3F
7DEB68: FFFFFFFFFFFFFFFF F2FD02FEDAE6745E
7DEB70: FFFFFFFFFFFFFFFF 080498F098E09850
7DEB78: FFFFFFFFFFFFFFFF CB00F01E7C81E00D
7DEB80: FFFFFFFFFFFFFFFF BBDCF01EE6FD2000
7DEB88: FFFFFFFF BBD8CB00
7DEB90: FFFFFFFFFFFFFFFF E6FCEB35D7401400
7DEB98: FFFFFFFFFFFFFFFF 993C27F32A009D02
7DEBA0: FFFFFFFFFFFFFFFF FAE58411BBADF0F4
7DEBA8: FFFFFFFFFFFFFFFF BBABF0E449302D15
7DEBB0: FFFFFFFFFFFFFFFF 29342D1F27F31200
7DEBB8: FFFFFFFFFFFFFFFF 2D16E0DDBBBEE17B
7DEBC0: FFFFFFFFFFFFFFFF E1FAE6FD2000DC4F
7DEBC8: FFFFFFFFFFFFFFFF 992EBBB7E0DD29A1
7DEBD0: FFFFFFFFFFFFFFFF 2DFA9DF729B19DF4
7DEBD8: FFFFFFFFFFFFFFFF 0D25BB968D23DC4F
7DEBE0: FFFFFFFFFFFFFFFF B98E08E10DFADAFD
7DEBE8: FFFFFFFFFFFFFFFF 28ECBBC7F0EFBBC5
7DEBF0: FFFFFFFFFFFFFFFF 0D1926F04000F020
7DEBF8: FFFFFFFFFFFFFFFF BB878D03B9820821
7DEC00: FFFFFFFFFFFFFFFF 0DFB2020A758A7A7
7DEC08: FFFFFFFFFFFFFFFF 08E12D0AF010F0DE
7DEC10: FFFFFFFFFFFFFFFF F0C2DC4F998D498D
7DEC18: FFFFFFFFFFFFFFFF 3DF528C13DFABBAD
7DEC20: FFFFFFFFFFFFFFFF 06F04000FAE62E30
7DEC28: FFFFFFFFFFFF ECFFECFEDB00 好的,有了这个就方便多了。否则我也不会作来电图标那么辛苦。
可惜的是:我还不能用:( 这东东是干什么用的?刷了手机会多什么功能? 刚才我刷,提示不对
http://www.scnjw.gov.cn/tfgd/scgd/dz/images/temp/error.bmp 这个是给Patcher用的。是一个辅助作Patch用的Patch。具体用法如下:
*** Advanced debugging with AT+CGSN ***
I modified debugging patch written by Riza, to add some
useful things: improved search, write to memory, call procedures.
Commands are:
AT+CGSN
Display IMEI, as usual
AT+CGSN:page,offset
Dump 128 bytes of memory starting at address page:offset
AT+CGSN.page,offset,data
Search data on the given page, starting from offset. Data is a hexadecimal string without spaces. Offset is in range 0...3FFF.
AT+CGSN*page,offset,data
Write data to memory at address page:offset. Data is a hexadecimal string without spaces.
AT+CGSN@seg,offset
Inter-segment call to address seg:offset. On return, values of r14 and r15 will be displayed. Note that seg is the segment, not the page (eg. if you wrote procedure to 11:500, call it at 4:4500). Procedure should end with far return. If the procdure consumes much time, make sure to insert srvwdt instruction in its loop.
第一行有问题,可能是Kang兄一直是强刷的,改成
04022C:8411E5 90EBFD
就不会警告了,否则没办法UNDO。
[此贴子已经被作者于2003-7-17 11:58:56编辑过]
刷了,表面上没看出什么变化,我再找找 一般人没什么用的,他可以查看特定地址的RAM和ROM内容,其他的还有搜索,修改,执行等功能。 呵呵,谢谢高手的指教,打搅了
我回去吃饭了 看人家的交流也是一种学习的方法。。
:)
页:
[1]
2