免责声明
- 仅技术学习研究未对外传播过任何相关工具
前言
经常搞 .NET 的都知道 ReSharper ,非常好用,就是要收费。所以研究了下他是如何生成注册码的。
核心
主要代码如下,需要依赖 BigInteger,PrivateKey 和 PublicKey 已经打码,咋们仅仅是技术学习研究。
1 | using System; |
截图

经常搞 .NET 的都知道 ReSharper ,非常好用,就是要收费。所以研究了下他是如何生成注册码的。
主要代码如下,需要依赖 BigInteger,PrivateKey 和 PublicKey 已经打码,咋们仅仅是技术学习研究。
1 | using System; |

最近在公司和同事一起处理问题的时候,发现他的 QQ 群消息提醒,QQ 群的名字很熟悉,于是我回到自己工位看了下自己的 QQ,发现我们在一个技术群里面。这就很尴尬了,之前没少在这群里吹牛,都被我同事静静的看着。
我看了下,我有近 100 个 QQ 群,为了避免以后有类似的尴尬,我想到能不能写一个工具来查询这些群里面有哪些是我的好友。
要获取相关数据,肯定是要先登录授权的。找到了 QQ 群的官方网站 https://qun.qq.com/,打开开发者工具-网络,然后再进行登录进行网络请求查看。
发现不少参数是通过计算后得到的,而且登录时大概率是会遇到验证码的。
考虑到这类工具的特点,所以首选直接通过 WebBrowser 把https://qun.qq.com/打开,手动登录后,再去获取相关 cookies 等数据信息即可。
但今天稍微改变下,还是通过WebBrowser 把https://qun.qq.com/打开,不过WebBrowser是完全隐藏不可见的。
我们自己搞一个界面,把输入的账号密码传递给 WebBrowser,再进行登录操作,如果遇到验证码,再把验证码传递回来,在自己的界面输入后再给到 WebBrowser 完成登录。
最终的登录界面如下:

通过一段时间的探索,在 QQ 官方网站里面,找到了相关接口:
1 | var url = $"http://user.qzone.qq.com/p/r/cgi-bin/tfriend/friend_show_qqfriends.cgi?uin={Account}&follow_flag=0&groupface_flag=1&fupdate=1&g_tk={Gtk}&callbackFun=GetGroupAndFriends"; |
1 | var url = $"http://qun.qzone.qq.com/cgi-bin/get_group_member?uin={Account}&groupid={groupId}&g_tk={Gtk}&callbackFun=GetGroupMember"; |
上面的 Gtk 的生成方式参考代码:
1 | public int GetGtk(List<Cookie> cookies) |
因为一次只能获取到一个群里的成员,需要调用很多次接口,所以再加了一个加载界面:

使用的 echarts 简单的展示出来,鼠标放在圆点上会显示出好友名称或 QQ 群名。

仔细看了上面的数据,得到以下一些数据:
最关键的来了,查出 3 名现在公司的同事在不同的技术群里。于是我给这几个技术群的群名备注了下,完美解决了问题。Windows7 操作系统已经发布了 2 个月左右了,今天发现室友新买的联想笔记本电脑登录界面和我安装的 Windows7 登录界面并不一样,他的是包含了联想 Logo 的背景图片,而我的是官方默认的。
然后我搜索研究了下,果然找到了修改方法。
主要是通过修改注册表中的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background 下的 OEMBackground 键值。然后把图片放置到 C:\Windows\System32\oobe\info\backgrounds\backgroundDefault.jpg 即可。
于是有了这个工具,并增加了每次开机随机更换一个图片的功能。
我已经发布到电脑报、天极网、天空软件等知名站点,欢迎大家下载使用。
