V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
liemehoc
V2EX  ›  问与答

[求助]解码被换表的 base64 数据

  •  
  •   liemehoc · 155 天前 · 724 次点击
    这是一个创建于 155 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有一批被编码的数据,原文可能为包含中文字符的 csv (分隔符不详)。初步观察,猜测编码方式可能为 base64 (用# $字符替换了标准码表中的+ /字符,且可能打乱了码表顺序)。

    • 都说用频率分析可以很容易地完成逆向解码,具体应该怎么做?
    • 可能存在固定分隔符的模式特征应该如何利用?
    • 是否有类似quipqiup的工具完成自动分析?

    以下为部分样例数据 k8ldlnWrkokGkbcGkR#KkbOGkRWGkb#Kkb#MkR4Gkn#tlngKjbcpkb#Gk7#Lmb#nkRWGkRcpknSrjbWplQLclnd$jb#Gkb#Kkb#Kkb#Kkb#Kkb#KkaKMkbcLkR#LkRcnkncpkRknjb#Gkn#tlngKjbcpkb#GkRSKkaKLkb#GkaKKjb#GkaKKjb#GjaKGkRcLkRcLkRcLkRcLkRcLkO== k8ldlngsl7gGkbcGkR#KkbOGkRSGkb#Kkb#Mk7OGk7gMk78KjbgpkaKMkbcskbkLl6KLkRSnlbcGlnOKjcTcOn#GkaKKkb#Kkb#Kkb#Kkb#Kkb#KjbgKkRcLkbcLkRknkRSLknkGkaKMk7gMmR#Gk7SKjbgpkaKLkb#GkaKKjb#GkaKKjb#GjaKGkRcLkRcLkRcLkRcLkRcLkO== k8ldln8tPbkGkbcGkR#KkbOGkROGkb#Kkb#olbgGlR0okn#GkR8ol6KMkbcskbkLl6KLkRSMk7WGkn0njbStlbgGkaKKkb#Kkb#Kkb#Kkb#Kkb#KjbgKkRcLkbcLkRknkRSLknkGkaKplnOnkaKLmROqjbctlbWGkR#Kjb#GkaKKjb#GkaKKjaKGjbcLkRcLkRcLkRcLkRcLkRc= k8ldln9$PRSGkbcGkR#KkbOGkRkGkb#Kkb#MkROGk70rl7OKjbcqkb#Gk7#Lmb#nkRWGkRcpkbktjbcLkbcGPR0qkQKKjb#Kkb#Kkb#Kkb#Kkb#Kkb#Gk7#LkRcKkRcLknkLlRcnkMKKjbgrlnWokaKLl7#Kjbcqkb#GkR#Kjb#GkaKKjb#GkaKKjaKGjbcLkRcLkRcLkRcLkRcLkRc= k8ldlnWtOR0GkbcGkR#KkbOGkRgGkb#Kkb#MlbcGlnSrlRSGkRWKkaKMkbcskbkLl6KLkRSKk74GlbkojcTaP7SGkaKKkb#Kkb#Kkb#Kkb#Kkb#KjbgKkRcLkbcLkRknkRSLknkGkaKrlR0plQKLl7#Kjbcqkb#GkR#Kjb#GkaKKjb#GkaKKjaKGjbcLkRcLkRcLkRcLkRcLkRc= k8ldl8Wtkb4GkbcGkR#KkbOGkRcGkb#Kkb#LkR4GkRkMlnOKjbcpmRWGk7#Lmb#nkRWGkRcpkb#pjbSrk6LbPcgnjb#Gkb#Kkb#Kkb#Kkb#Kkb#KkaKMkbcLkR#LkRcnkncpkRknjb#GkRkMlnOKjbcpmRWGkRStl6KLkb#GkaKKjb#GkaKKjb#GjaKGkRcLkRcLkRcLkRcLkRcLkO== k8ldln$$mSgGkbcGkR#KkbOGkR#Gkb#Kkb#nlR0GkRgpln0KjbOMkb#Gk7#Lmb#nkRWGkRcomRkLjbOMmQKomb1bjb#Gkb#Kkb#Kkb#Kkb#Kkb#KkaKMkbcLkR#LkRcnkncpkRknjb#GkRgpln0KjbOMkb#GlbgKkaKLkb#GkaKKjb#GkaKKjb#GjaKGkRcLkRcLkRcLkRcLkRcLkO== k8ldlnhdmcWGkbcGkR#KkbOGmQKKkb#KkbkomaKLkRWMmb#GkRStmb#Gk7#Lmb#nkRWGkRcombgsjbOrmQKnloOojb#Gkb#Kkb#Kkb#Kkb#Kkb#KkaKMkbcLkR#LkRcnkncpkRknjb#GkRcqk74KjbcpmR4KjbcpmR4KjbcKkaKKjb#GkaKKjb#GkaKGjaKLkRcLkRcLkRcLkRcLkRcL lb#tlRkolR#GkbcGkR#KkbOGmaKKkb#KkbSKmaKsmb4MkaKMlR#KjbgKkR4KkncqjbcLlbSMlMKskQLeO8cLjb#Gkb#Kkb#Kkb#Kkb#Kkb#KkaKMkbcLkR#LkRcnkncpkRknjb#Gmb4sk7#Gk7SKkaKMlR#KjbcKkaKKjb#GkaKKjb#GkaKGjaKLkRcLkRcLkRcLkRcLkRcL lb#tkbOLk7#GkbcGkR#KkbOGlMKKkb#KkbSMkQKMl74KkaKLlR#KjbgKkR4KkncqjbcLlbkpl6KLkn#GOR$$laKKjb#Kkb#Kkb#Kkb#Kkb#Kkb#Gk7#LkRcKkRcLknkLlRcnkMKKjbgqmb#Kjbcpkb#GkRSKkaKLkb#GkaKKjb#GkaKKjb#GjaKGkRcLkRcLkRcLkRcLkRcLkO== lb#tkbOLk7#GkbcGkR#KkbOGl6KKkb#KkbSMkQKMln4KkaKLkb#KjbgKkR4KkncqjbcLlbcMkMKLk78GOR$$laKKjb#Kkb#Kkb#Kkb#Kkb#Kkb#Gk7#LkRcKkRcLknkLlRcnkMKKjbgrmb#KjbcKkb#GkR#KkaKLkb#GkaKKjb#GkaKKjb#GjaKGkRcLkRcLkRcLkRcLkRcLkO== k8ldlnXambOGkbcGkR#KkbOGlQKKkb#KkbcnlQKLlb8slb#Gl7#KkaKMkbcskbkLl6KLkRknk7kGl7WojbXdkcOGkaKKkb#Kkb#Kkb#Kkb#Kkb#KjbgKkRcLkbcLkRknkRSLknkGkaKLlb8slb#Gl7#KkaKqkb#KjbcKkaKKjb#GkaKKjb#GkaKGjaKLkRcLkRcLkRcLkRcLkRcL k8ldl8WKPRkGkbcGkR#KkbOGlaKKkb#KkbkslQKskbgMkaKLl7#KjbgKkR4KkncqjbcLkncnkQKpknkGPRSKOMKKjb#Kkb#Kkb#Kkb#Kkb#Kkb#Gk7#LkRcKkRcLknkLlRcnkMKKjb4Kk7gKjbcqkb#GkRWKkaKLkb#GkaKKjb#GkaKKjb#GjaKGkRcLkRcLkRcLkRcLkRcLkO== k8ldln0tPcSGkbcGkR#KkbOGkMKKkb#KkbcnkaKqmR#KkaKskb#Gk7#Lmb#nkRWGkRcnkR#ojb4qmQKqkcgqjb#Gkb#Kkb#Kkb#Kkb#Kkb#KkaKMkbcLkR#LkRcnkncpkRknjb#Gl78Kkb#Gmb#Kjb4KkaKLkb#GkaKKjb#GkaKKjb#GjaKGkRcLkRcLkRcLkRcLkRcLkO== k8ldlnhaOogGkbcGkR#KkbOGk6KKkb#Kkbcnk6Kokn8MkaKskb#Gk7#Lmb#nkRWGkRcnkbOsjb4okQLcOnWtjb#Gkb#Kkb#Kkb#Kkb#Kkb#KkaKMkbcLkR#LkRcnkncpkRknjb#Glbcqkn#Gmb#Kjb4KkaKLkb#GkaKKjb#GkaKKjb#GjaKGkRcLkRcLkRcLkRcLkRcLkO== k8ldl8Srk7gGkbcGkR#KkbOGkQKKkb#KkbctkaKMmR0MkaKMlb#KjbgKkR4KkncqjbcLkn#LmaKLkbksjbldkSOGkaKKkb#Kkb#Kkb#Kkb#Kkb#KjbgKkRcLkbcLkRknkRSLknkGkaKMmRctkaKMlb#Kjbgokb#GkR#Kjb#GkaKKjb#GkaKKjaKGjbcLkRcLkRcLkRcLkRcLkRc=

    5 条回复    2024-06-17 10:12:24 +08:00
    virusdefender
        1
    virusdefender  
       155 天前
    频率分析需要大概知道明文是什么类型的,包含中文比只有英文应该要难。
    timethinker
        2
    timethinker  
       155 天前
    由于不知道编码前的数据到底是字符串还是二进制数据,逆向结果不可知,所以最好是先确定一下编码前的数据是啥。
    NoOneNoBody
        3
    NoOneNoBody  
       155 天前
    目测 Kkb#频繁出现
    InDom
        4
    InDom  
       155 天前
    给一点小小的思路,首先对这个文本简单分析了一下,Gk RcLk 出现的频率非常高,首先怀疑是在这些位置出现了重复的内容。

    然后再从 前四个字符 k8ldl 尝试将这 4 个字符替换为任意内容后尝试解码,如果解码出来的内容以可见字符或汉字开头,则怀疑是有效信息。

    再对 LkO== 以同样的方式穷举,计算量不会很大, 这样交叉验证,你起码可以确定码表中 6 个字符,然后再取前 8 位继续穷举,这样你的穷举量绝对比 36^36 次方小很多。
    jifengg
        5
    jifengg  
       152 天前
    但凡有一个明文都好搞。
    按照你说的 csv ,假如分隔符是逗号(,),在控制台自行 btoa(',,,,,,,,,,,,,,,,,')输出'LCwsLCwsLCwsLCwsLCwsLCw='可以猜测,
    #Kkb 分别对应 LCws
    其他的就不清楚了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2602 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 15:40 · PVG 23:40 · LAX 07:40 · JFK 10:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.