个别收到的短信乱码,有什么办法还原么。。。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kokutou
V2EX    问与答

个别收到的短信乱码,有什么办法还原么。。。

  •  
  •   kokutou 2018-03-06 18:58:45 +08:00 9063 次点击
    这是一个创建于 2826 天前的主题,其中的信息可能已经有所发展或是发生改变。

    andorid 7.1 和 android 8.1 都这个样。系统是 lineageos

    就很个别的几条短信。现在手机里 1200 多条,也就 9 条是这样的乱码。

    其中 6 条都是湖北银行的验证码 1069019596599 发的。。。

    换了几个短信程序,也显示的是乱码

    通过拷贝 mmssms.db ,读出来二进制数据,

    用 winhex 切换到 UTF-16 BE 能看到部分中文,但间断的还是乱码。

    是中间还需要什么骚操作么。

    mmssms.db 里:

    mmssms.db 导出二进制放到 winhex 显示:

    手机上显示基本就是右边 ASCII 去掉空格的样子。

    转换成 UTF-16 BE 能有部分中文。

    我想知道有什么办法完全还原这几条短信么。。。

    附上一堆 hex

    30106D6653C391C294C3B6C2884C3011606D55C29C60C2A85DC3B262104E3A6D6653C3910056004900530041767DC291C3914FC3A1752853614F18C29009752862373002514D5E74C28D39002C5BC2A162795FC3AB002C6DC288C28D39C290017EC2A25305002C70C2B951C3BB00200074002E0063006E002F00520058005800780049005600640020586BC288687533C298C2860020002EC29000C28BC2A256C39E0054

    12 条回复    2018-03-07 09:31:00 +08:00
    ysc3839
        1
    ysc3839  
       2018-03-06 22:06:03 +08:00   2
    修改后的 Hex
    30 10 6D 66 53 D1 94 F6 88 4C 30 11 60 6D 55 9C 60 A8 5D F2 62 10 4E 3A 6D A6 53 D1 00 56 00 49 00 53 00 41 76 7D 91 D1 4F E1 75 28 53 61 4F 18 90 09 75 28 62 37 30 02 51 4D 5E 74 8D 39 00 2C 5B A1 62 79 5F EB 00 2C 6D 88 8D 39 90 01 7E A2 53 05 00 2C 70 B9 51 FB 00 20 00 74 00 2E 00 63 00 6E 00 2F 00 52 00 58 00 58 00 78 00 49 00 56 00 64 00 20 58 6B 88 68 75 33 98 86 00 20 00 2E 90 00 8B A2 56 DE 00 54
    kokutou
        2
    kokutou  
    OP
       2018-03-06 22:10:54 +08:00
    @ysc3839 #1
    咋处理。。。
    能简单说下方法么。。。
    ysc3839
        3
    ysc3839  
       2018-03-06 22:13:01 +08:00   1
    @kokutou 搜索 0xC2 和 0xC3,如果后一个字节 >= 0x90 就 += 0x40,然后删掉所有 0xC2 0xC3。
    ysc3839
        4
    ysc3839  
       2018-03-06 22:13:57 +08:00   1
    @ysc3839 错了,不是 >= 0x90,是 > 0x90。
    wclebb
        5
    wclebb  
       2018-03-06 22:15:43 +08:00 via iPhone
    是不是电信?
    kokutou
        6
    kokutou  
    OP
       2018-03-06 22:15:52 +08:00
    @ysc3839 #3
    感谢大佬。。。

    这是 lineageos 的问题还是 android 的问题还是说是湖北银行 /浦发银行的问题?
    kokutou
        7
    kokutou  
    OP
       2018-03-06 22:16:05 +08:00
    @wclebb #5 对,电信。
    难道是电信的问题。。。
    ysc3839
        8
    ysc3839  
       2018-03-06 22:25:02 +08:00   1
    @kokutou 不知道,这个方法也是猜出来的。
    kokutou
        9
    kokutou  
    OP
       2018-03-06 22:45:55 +08:00
    @ysc3839 #8
    感谢大佬

    全部还原了,然而并没有什么重要的信息。。。
    wclebb
        10
    wclebb  
       2018-03-06 22:47:12 +08:00
    @kokutou #7 之前用过电信 Android 手机。
    也和你一样收到过乱码。

    在信息的设置里找找(很久了,不记得是什么),有个编码的,选好了它就能读取了。

    你完全用不着这样的。
    是的,就这么简单。

    或者搜一下
    电信 短信 乱码

    我相信,一定会有你这个解决方案。
    zouxy
        11
    zouxy  
       2018-03-07 00:13:01 +08:00 via iPhone
    我没仔细解码,估计是短信内容超过 140 字节需要两条短信拼接 然后拼接错了.

    长短信 每条短信前面有字节标示共几条 当前是第几条

    手机底层软件或者运营商短信网关一个出错就会出错.手机出错的可能性大些.

    因为短信解码是底层功能,出错了之后保存到数据库就是错的,换短信应用的结果会一样的
    cy97cool
        12
    cy97cool  
       2018-03-07 09:31:00 +08:00
    对短信内容感兴趣的可以 py:

    d="30 10 6D 66 53 D1 94 F6 88 4C 30 11 60 6D 55 9C 60 A8 5D F2 62 10 4E 3A 6D A6 53 D1 00 56 00 49 00 53 00 41 76 7D 91 D1 4F E1 75 28 53 61 4F 18 90 09 75 28 62 37 30 02 51 4D 5E 74 8D 39 00 2C 5B A1 62 79 5F EB 00 2C 6D 88 8D 39 90 01 7E A2 53 05 00 2C 70 B9 51 FB 00 20 00 74 00 2E 00 63 00 6E 00 2F 00 52 00 58 00 58 00 78 0 49 00 56 00 64 00 20 58 6B 88 68 75 33 98 86 00 20 00 2E 90 00 8B A2 56 DE 00 54".split()
    x=[int("0x"+i,16) for i in d]
    result=[]
    for i in range(0,len(x),2):
       result += bytes([ x[i+1], x[i] ]).decode("utf-16")
    print("".join(result))
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2563 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 21ms UTC 11:42 PVG 19:42 LAX 03:42 JFK 06:42
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86