kikyous / xfdown

QQ旋风离线下载程序
170 stars 54 forks source link

关于新的密码加密策略 #42

Closed petronny closed 5 years ago

petronny commented 9 years ago

根据我在#41 所说 腾讯换了密码加密手段,不是简单的密码md5+验证码再md5就完了。。 用了一个rsa, 也不知道密钥是什么。

加密js参见 http://imgcache.qq.com/ptlogin/ver/10114/js/comm.js 看起来非常头疼。。不想改了

我的想法是用nodejs本地调用加密js就完了,不知大家意向如何? 会添加node和一些python调用node的依赖关系, 不过以后TX再改基于js的加密手段就都可以应对了。

wihoho commented 9 years ago

来我们一起搞!

petronny commented 9 years ago

不好意思最近挺忙的。。要写paper..

首先是访问 http://ui.ptlogin2.qq.com/ptui_ver.js 可以得到js_ver, 比方说现在已经到10122了

接下来是访问http://imgcache.qq.com/ptlogin/ver/刚才的js_ver/js/comm.js

最好把它按版本缓存到一个固定的地址, 比如~/.xfdown/comm_10122.js之类的

然后是用node运行这个repo里面的main.js 就可以从终端得到加密过的东西了

关于如何从python调用node. 我不太想增加其他依赖,不如直接shell调用。 不过好像只能写绝对路径。不如直接都放在~/.xfdown/下 原来的.xfdown.cookie .xfdown.cache最好也都放在这里

还有就是我希望这部分能够独立成一个py文件,有问题了也好改。

wihoho commented 9 years ago

Hi, 我简单地测试了一下。 在node环境下,var $=require('./comm.js').funcs; 无法initialize

If node.js can not initialize pt object in comm.js, I am thinking of using selenium to mock the login process. After that, we may still use the current xfdown api to do what we want.

wihoho commented 9 years ago

突然找到了这个 https://chrome.google.com/webstore/detail/mblmc%E8%BF%85%E9%9B%B7%E7%A6%BB%E7%BA%BFqq%E6%97%8B%E9%A3%8E%E7%99%BE%E5%BA%A6%E7%BD%91%E7%9B%98360%E4%BA%91%E7%9B%98%E7%AD%89ar/iamaphkapjbdhhpdapkalhanifedeged

petronny commented 9 years ago

我来看看,这个是新版本加了什么了,原来不需要的。

另外之前忘了说了。

需要先

npm install -d

然后是

node main.js -p xxx -v xxx

就能调用了。p和v分别是密码明文和验证码。

wihoho commented 9 years ago

我就是再傻也不会不放comm.js.

你测试成功了?我的error是

/Users/GongLi/WebstormProjects/xfcipher/comm.js:1
").replace(/"/g,""");return a}},init:function(){if(pt.t_appid==g_appid){i
                                                                    ^
ReferenceError: g_appid is not defined
    at Object.pt.init (/Users/GongLi/WebstormProjects/xfcipher/comm.js:1:3911)
    at Object.<anonymous> (/Users/GongLi/WebstormProjects/xfcipher/comm.js:1:14956)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/Users/GongLi/WebstormProjects/xfcipher/main.js:4:7)
    at Module._compile (module.js:456:26)
petronny commented 9 years ago

抱歉我刚才立刻就发现了。已经改掉了。正在看

petronny commented 9 years ago

我做了如下事情后能运行了。

$ = {};
navigator = {}
window = this
$ = window.$ || {};
$pt = window.$pt || {};

已经上传了改好的comm.js到xfcipher了。