精易论坛

标题: 4399 password 加密分析,并还原纯易语言代码算法。 [打印本页]

作者: hmlyn    时间: 2024-11-19 20:48
标题: 4399 password 加密分析,并还原纯易语言代码算法。
本帖最后由 hmlyn 于 2024-11-19 20:57 编辑

百度和论坛找了一圈,password都是调用js方式的,我觉得它是一个aes加密,有必要用cryptoJs吗?于是自己动手分析了下,觉得这个东西确实没那么简单。定位了下,这里是调用cryptoJs的AES加密算法。

[attach]1347384[/attach]

lzYW5qaXVqa ,是短密钥,直接打上断点,往下跟
[attach]1347385[/attach]
跳转到了cryptojs-aes.js里来了。
我们直接扣下完整的代码保存,本地使用Vs Code来调试,方便点。
[attach]1347386[/attach]
走到这里,跟进看下
[attach]1347387[/attach]
[attach]1347388[/attach]
这里生成一个8个字节的随机盐,难怪AES加密会动态变化。
继续跟下compute 方法看下。

继续。
[attach]1347389[/attach]
使用工具,测试下加密结果:
[attach]1347390[/attach]
完全是aes cbc模式。
但是为啥最终结果不一样呢,还会动态变化呢
[attach]1347391[/attach]
来到这里,我们看下,它是由多个字节数组拼接成的。
f.create([1398893684, 1701076831]).concat(c).concat(b)


我们来看下,b是加密值,c是生成的随机盐值,[1398893684, 1701076831]转换成字符串的话,是Salted标识。
那么知道了整个加密过程,那么就动手翻译成易语言的。

[attach]1347392[/attach]

由于密钥和iv都是动态算出来的,所以我们只需要知道盐的值,然后易语言上面也需要根据盐的值加密出一样的值即可。


[attach]1347393[/attach]





作者: 广西彭于晏    时间: 2024-11-20 00:47
厉害了可以可以
作者: aini126    时间: 2024-11-20 14:15
666666666666666666
作者: apollo吴    时间: 2024-11-29 14:31
提示: 作者被禁止或删除 内容自动屏蔽
作者: q644014653    时间: 2025-4-10 16:14
这个可以
作者: 大音斤    时间: 2025-4-20 14:43
4399卡布西游key登录是什么原理




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4