daisy icon indicating copy to clipboard operation
daisy copied to clipboard

账号

Open LovesAsuna opened this issue 2 years ago • 35 comments

账号好像没做?需要同步账号内容。是api没找到吗?

LovesAsuna avatar Apr 25 '22 00:04 LovesAsuna

还没看到那里

niuhuan avatar Apr 25 '22 01:04 niuhuan

遇到了点问题,登录的接口api改了,还不知道盐值怎么算的

niuhuan avatar May 03 '22 05:05 niuhuan

可能需要逆向官方app?

LovesAsuna avatar May 03 '22 06:05 LovesAsuna

可能需要逆向官方app?

之前用jadx简单看过他们的代码, 签名都放在的.so里面, 有空需要再逆向看看,。

接口地址 https://user.muwai.com/loginV2/m_confirm

niuhuan avatar May 03 '22 06:05 niuhuan

用vnet抓包,能确定就是md5再转大写,但是还是提示密码错误

niuhuan avatar May 04 '22 08:05 niuhuan

不能用网页端来抓包吗?,刚看了下网页端的js登录逻辑还挺清晰

LovesAsuna avatar May 04 '22 08:05 LovesAsuna

用的是APP协议, 跟Cookie不一样, 抓包之后注入token应该能用, 就是很麻烦

niuhuan avatar May 04 '22 08:05 niuhuan

主要是想要那个订阅功能?

niuhuan avatar May 04 '22 08:05 niuhuan

对,订阅和历史记录

LovesAsuna avatar May 04 '22 08:05 LovesAsuna

@niuhuan 我可以幫逆下官方app的簽名算法,有官方apk下載地址嗎

owen800q avatar May 04 '22 10:05 owen800q

@niuhuan 我可以幫逆下官方app的簽名算法,有官方apk下載地址嗎

我直接他们从官网下的, 密码md5再转大些, 还需要其他几个参数, 时间戳或者HEADER什么的, 我不知道是不是这个原因。没有总结出规律

niuhuan avatar May 04 '22 10:05 niuhuan

@niuhuan

你那個login api url 錯了?,我試了下是可以 拿到token的

應該是這個,我測試的是用戶名登入, 可能手機號登入有另外一個API, 我沒試手機的

https://nnuser.muwai.com/loginV2/m_confirm

pwd就是md5再转大写 nickname 是用戶名

其他參數_m, _a, _i那幾個都是硬編碼的, 沒有header

CURL sample 如下, 你改下nickname 和pwd試試

curl --location --request POST 'https://nnuser.muwai.com/loginV2/m_confirm'
--form 'channel="Android"'
--form 'timestamp="1651672251"'
--form 'version="3.7.10"'
--form '_debug="0"'
--form 'app_channel="101_01_01_000"'
--form '_m="D6132DCE99D329CACDE913C7FA952CF3"'
--form '_a="05CDFDA93076FC56950D6598B94FD986"'
--form '_i="8508AEE02C57308631D8E5F774D3AABC"'
--form 'terminal_model="SM-N976N"'
--form 'nickname="testing"'
--form 'pwd="DC483E80A7A0BD9EF71D8CF973673924"'

Response, data 我詳細數據就不發出來了, 裡面是有dmzj_token的

{"result":1,"msg":"登录成功","data":{}}

owen800q avatar May 04 '22 14:05 owen800q

似乎是地址的问题,按照别的软件里超过来的就没仔细看

niuhuan avatar May 04 '22 16:05 niuhuan

作者你好,我想请问一下请求nnv4api.muwai.com/novel/detail/obj_id的数据应该怎么解析呢?

suppiac avatar May 05 '22 12:05 suppiac

@suppiac 解析数据? 他的response body不是明文的嗎,不用特別處理吧

owen800q avatar May 05 '22 13:05 owen800q

@owen800q 不太清楚刚刚接触,fiddler抓包的时候读取小说详细信息的时候返回值是像加密了的,也有可能是我看错了。

suppiac avatar May 05 '22 13:05 suppiac

@suppiac 看了下, 后端回传的是经过RSA加密过

key是

PRIVATE_KEY = "MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAK8nNR1lTnIfIes6oRWJNj3mB6OssDGx0uGMpgpbVCpf6+VwnuI2stmhZNoQcM417Iz7WqlPzbUmu9R4dEKmLGEEqOhOdVaeh9Xk2IPPjqIu5TbkLZRxkY3dJM1htbz57d/roesJLkZXqssfG5EJauNc+RcABTfLb4IiFjSMlTsnAgMBAAECgYEAiz/pi2hKOJKlvcTL4jpHJGjn8+lL3wZX+LeAHkXDoTjHa47g0knYYQteCbv+YwMeAGupBWiLy5RyyhXFoGNKbbnvftMYK56hH+iqxjtDLnjSDKWnhcB7089sNKaEM9Ilil6uxWMrMMBH9v2PLdYsqMBHqPutKu/SigeGPeiB7VECQQDizVlNv67go99QAIv2n/ga4e0wLizVuaNBXE88AdOnaZ0LOTeniVEqvPtgUk63zbjl0P/pzQzyjitwe6HoCAIpAkEAxbOtnCm1uKEp5HsNaXEJTwE7WQf7PrLD4+BpGtNKkgja6f6F4ld4QZ2TQ6qvsCizSGJrjOpNdjVGJ7bgYMcczwJBALvJWPLmDi7ToFfGTB0EsNHZVKE66kZ/8Stx+ezueke4S556XplqOflQBjbnj2PigwBN/0afT+QZUOBOjWzoDJkCQClzo+oDQMvGVs9GEajS/32mJ3hiWQZrWvEzgzYRqSf3XVcEe7PaXSd8z3y3lACeeACsShqQoc8wGlaHXIJOHTcCQQCZw5127ZGs8ZDTSrogrH73Kw/HvX55wGAeirKYcv28eauveCG7iyFR0PFB/P/EDZnyb+ifvyEFlucPUI0+Y87F"

解密后之后是protobuf 协议。。。

owen800q avatar May 05 '22 14:05 owen800q

作者你好,我想请问一下请求nnv4api.muwai.com/novel/detail/obj_id的数据应该怎么解析呢?

rsa+protobuf ,key 和 proto文件可以去一个叫 dmzj_flutter的仓库找。

niuhuan avatar May 05 '22 17:05 niuhuan

@niuhuan 十分感谢!!!

suppiac avatar May 06 '22 00:05 suppiac

@owen800q 十分感谢!!!

suppiac avatar May 06 '22 00:05 suppiac

@owen800q

http://${v4}/comic/detail 接口使用的参数coreToken是.so算的。v3的接口里没有带是否被订阅这个字段。

现在能获取到在官方APP里订阅列表。可以订阅和取消。但是刚刷出来不知道这个漫画订阅了没。

niuhuan avatar May 06 '22 06:05 niuhuan

@niuhuan 我这边看到的是coreToken是明文, 没有看到类似sign的参数

Capture

可以截图看看你那边抓包看到的吗

owen800q avatar May 06 '22 10:05 owen800q

@niuhuan 我这边看到的是coreToken是明文, 没有看到类似sign的参数

@owen800q

这个token是根据时间戳算出来的, 每次请求都不一样, 想拿到这个

niuhuan avatar May 06 '22 10:05 niuhuan

@niuhuan coreToken算法有點麻煩,周未有時間 我再研究下

owen800q avatar May 06 '22 12:05 owen800q

如果弄不了,就只能做个本地书签和订阅了。后期再做个和官方账号的同步功能,

niuhuan avatar May 07 '22 07:05 niuhuan

@niuhuan

coreToken 已經分析出來了,我用python 寫了api sample, 你可以測試下

https://gist.github.com/owen800q/342229586ddec777f42ea21bd16e8806

算法不難,就是so 某地方 被VM 了,研究了一天....

owen800q avatar May 07 '22 12:05 owen800q

@niuhuan 右手邊那個地方, 對應python sample 的

right_part_core_token = [md5_hash[i:i+2] for i in range(0, len(md5_hash), 2)]

只是把md5後的結果 58d0ec998ab114830ff8d3d3194b2599

轉成這個格式

58:D0:EC:99:8A:B1:14:83:0F:F8:D3:D3:19:4B:25:99

owen800q avatar May 07 '22 12:05 owen800q

@niuhuan 另外想問下,接口相關的代碼不在這個repository 嗎? 我沒找到rust 相關的部份

owen800q avatar May 07 '22 13:05 owen800q

@niuhuan 另外想問下,接口相關的代碼不在這個repository 嗎? 我沒找到rust 相關的部份

没有在里面,native部分在私有仓库,之前看到有的jinman客户端被直接编译然后去收费的情况,我就把所有作品native和gui分开管理了。

rs部分主要是请求对接口,缓存,数据库的逻辑。

niuhuan avatar May 07 '22 16:05 niuhuan

@niuhuan 右手邊那個地方, 對應python sample 的

right_part_core_token = [md5_hash[i:i+2] for i in range(0, len(md5_hash), 2)]

只是把md5後的結果 58d0ec998ab114830ff8d3d3194b2599

轉成這個格式

58:D0:EC:99:8A:B1:14:83:0F:F8:D3:D3:19:4B:25:99

时间戳的md5吗?我试一下。

niuhuan avatar May 07 '22 16:05 niuhuan