Closed petronny closed 5 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文件,有问题了也好改。
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.
我来看看,这个是新版本加了什么了,原来不需要的。
另外之前忘了说了。
需要先
npm install -d
然后是
node main.js -p xxx -v xxx
就能调用了。p和v分别是密码明文和验证码。
我就是再傻也不会不放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)
抱歉我刚才立刻就发现了。已经改掉了。正在看
我做了如下事情后能运行了。
$ = {};
navigator = {}
window = this
$ = window.$ || {};
$pt = window.$pt || {};
$pt
替换成$
exports.funcs = $
TEA
以外的TEA
替换成window.TEA
window.btoa
改成this.btoa
已经上传了改好的comm.js到xfcipher了。
根据我在#41 所说 腾讯换了密码加密手段,不是简单的密码md5+验证码再md5就完了。。 用了一个rsa, 也不知道密钥是什么。
加密js参见 http://imgcache.qq.com/ptlogin/ver/10114/js/comm.js 看起来非常头疼。。不想改了
我的想法是用nodejs本地调用加密js就完了,不知大家意向如何? 会添加node和一些python调用node的依赖关系, 不过以后TX再改基于js的加密手段就都可以应对了。