Wxylkxy 发表于 2021-8-1 16:20

完美世界登陆接口js逆向问题

在做完美世界js逆向时遇到的几个问题。在找到了需要的rsa数据包时 我直接整个扔进了js调试工具里 第一个问题来了,部分数据出现了乱码, 图1
第二个诡异的问题,我如果手动打出 s = "…" 中间这三个点 这个字符串搜索会搜不到复制原文中的却可以搜到s = "…"这两个明明一样啊图2
即便我手动修改了 s = "…" 这个字符串 后面仍然有其他的错误 图3
这时我想会不会这个js调试工具格式化的问题   索性我没有格式化直接加载的 仍然有这个s字符串问题好在不是方块了而且只有这一处问题了我手动修改了它成功加载

最大的问题来了
这是原本代码块的实现
公钥我也拿到了但是python执行会爆错找不到这个变量求解!!            

我想不明白这个点 实测在js调试工具里是可以的拿到密文的。

幽溪左畔 发表于 2021-8-1 22:11

没网址 也没图 ==怎么帮你

Wxylkxy 发表于 2021-8-2 07:41

幽溪左畔 发表于 2021-8-1 22:11
没网址 也没图 ==怎么帮你

啊第一次发帖 当时有图 但是发出来就没了。。。不知道哪里错了我补上

Wxylkxy 发表于 2021-8-2 07:42

本帖最后由 Wxylkxy 于 2021-8-2 07:44 编辑

Jack2002 发表于 2021-8-2 09:06

混淆过的JS片段看得头晕。
python报的错是没有定义JSEncrypt,检查一下js代码全不全,另外要注意文件的编码,不同的编码可能会影响代码的运行结果。
浏览器的控制台上也能写js调用加密解密函数,写完按回车就能看到运行结果;
我遇到了登陆需要加密的直接模拟登陆,登陆成功截取cookie后续使用,简单粗暴。

幽溪左畔 发表于 2021-8-2 09:17

本帖最后由 幽溪左畔 于 2021-8-2 09:22 编辑

Wxylkxy 发表于 2021-8-2 07:42

乱码可能是因为 这款JS工具开发时的问题 不算大问题 目测是易语言开发的 你可以勾选UTF8解码试试

搜索不到是因为 双引号里面的是一个中文的省略号 (中文模式下shift + 6) 不是三个点

既然有了publicKey为什么不用python的RSA加密呢?使用execjs执行需要补充不少变量

pip install pycryptodome
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5 as Cipher_pkcs1_v1_5
    def encryptPassword(self,password, publicKeyStr):
      # 1、base64解码
      publicKeyBytes = base64.b64decode(publicKeyStr.encode())
      # 3、生成publicKey对象
      key = RSA.import_key(publicKeyBytes)
      cipher = Cipher_pkcs1_v1_5.new(key)
      cipher_text = base64.b64encode(cipher.encrypt(password.encode())).decode()
      # 4、对原密码加密
      #encryptPassword = base64.b64encode(rsa.encrypt(password.encode(), key)).decode()
      return cipher_text

Wxylkxy 发表于 2021-8-2 10:04

Jack2002 发表于 2021-8-2 09:06
混淆过的JS片段看得头晕。
python报的错是没有定义JSEncrypt,检查一下js代码全不全,另外要注意文件的编 ...

确实 控制台也可以正常拿到加密后的那个密码。 应该是python模块问题把感觉我把我最后那个图的2827行 前面的 t. 去掉后可以正常拿到了。

Wxylkxy 发表于 2021-8-2 10:07

幽溪左畔 发表于 2021-8-2 09:17
乱码可能是因为 这款JS工具开发时的问题 不算大问题 目测是易语言开发的 你可以勾选UTF8解码试试

搜索 ...

嗷嗷是六个点啊。{:301_973:}      我还没学过 这个模块因为。我去试试!
我把 我那个js代码2827行 前面的t. 去掉以后execjs可以拿到了。 应该是变量的问题。
页: [1]
查看完整版本: 完美世界登陆接口js逆向问题