能力值:
( LV2,RANK:10 )
|
-
-
2 楼
和原串的长度有关?比如字符串长度是1,2,3可以解密,长度是4无法解密
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
原字串长0x170,刚好可以循环5C次。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
放宽条件,原串4个字符运算后得到三个新字符,现不要求必须和原串相同,只要运算后能得到我所要的新字串即可,应该没有问题吧?
|
能力值:
( LV12,RANK:403 )
|
-
-
5 楼
a0a1a2a3a4a5a6a7| |
b0b1|b2b3b4b5b6b7 0 0|
| c0c1c2c3|c4c5c6c7 0 0 0 0
| | d0d1d2d3d4d5
----------------+----------------+----------------
[A] [B] [C]
x or y = z
0 0 0
0 1 1
1 0 1
1 1 1
完全恢复出原串需要穷举,如果不求与原串相同恢复是很容易的。
|
能力值:
( LV9,RANK:180 )
|
-
-
6 楼
base64吧
4byte->3byte 是解码
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
非常感谢,似乎是BAES64编码,整个流程如下:
软件通过网络验证得到一个很长的字串,假设为A,然后A字串从另一字串B中取位置,并保存为十六进制值C,C的每个值<<2,得到新十六进制值D,D再进行我上面提到的算法每四个十六进制值转成三个,得到E,再从E串里每隔一个取一个得到F字串,最后对F字串进行DES解密就得到关键数据了,我现在已经解了DES部分,再反推自己构造所需的网络验证返回串,有人知道这是哪个程序吗?某国产软件,软件名不方便公布。
没有编程经验,描述的不知能不能让大家看懂,唉!有时间好好学学编程。
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
非常感谢你的回复,不会编程,可能用这个方法推算。
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
Loka作的图示比较清楚。
这个不是base64编码算法,base64可逆,但LZ提供的算法不可逆。但正如Loka所说,由三字节结果逆推4字节原始信息时,需要穷举部分比特,但穷举时需要讲点技巧,比如(沿用Loka记号):
a6 OR b0 == A6
若A6=0,则必定a6=0,b0=0;
若A6=1,则有三种情况,这时就要穷举一下啦。
|
能力值:
( LV9,RANK:180 )
|
-
-
10 楼
只用到6个bit (高bit6'7皆为0)
你说呢 ?
00xxxxxx
|
能力值:
(RANK: )
|
-
-
11 楼
按楼主的说法, 确实只用到6个bit, 但不是高两位而是低两位. 即 xxxxxx00 . 所以不需要穷举, 直接可以还原.
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
感谢各位的帮忙,正在反推,纯人工算,还好只要修改一部分串。
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
|
能力值:
(RANK: )
|
-
-
14 楼
再仔细想想看, 其实从A到E这个流程就是Base64, 其中B字串就是Base, 它的长度应该是64个字节.
当然, 这个字串可能和我们常见的标准Base64那个 ABCD.... 不一样, 但算法和目的是一样的.
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
字串不同,顺序打乱的,我试过一个可以定义字串的,改为我调试这个软件的字串,也不能还原,当然,可能我哪个步骤弄错了,现在有时间就慢慢研究。今天手动推出原串后,发现不能解密,晕,可能DES部分弄错了,又得重新来过。
|
|
|