Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
petronny opened this issue Mar 17, 2015 · 8 comments
Closed

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

petronny opened this issue Mar 17, 2015 · 8 comments

Comments

@petronny
Copy link
Contributor

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

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

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

@wihoho
Copy link

wihoho commented May 8, 2015

来我们一起搞!

@petronny
Copy link
Contributor Author

不好意思最近挺忙的。。要写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
Copy link

wihoho commented May 12, 2015

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.

@petronny
Copy link
Contributor Author

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

另外之前忘了说了。

需要先

npm install -d

然后是

node main.js -p xxx -v xxx

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

@wihoho
Copy link

wihoho commented May 13, 2015

我就是再傻也不会不放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
Copy link
Contributor Author

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

@petronny
Copy link
Contributor Author

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

  • 先把comm.js改的好看一点。。
  • 替换第一个$.RSA之前的部分为
$ = {};
navigator = {}
window = this
  • 删除第一个$.Encryption前面这这两句
$ = window.$ || {};
$pt = window.$pt || {};
  • 把所有的$pt替换成$
  • 在文件最后添加exports.funcs = $
  • 把除了第一个TEA以外的TEA替换成window.TEA
  • 把所有的window.btoa改成this.btoa

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants