金山&Q管win10|金山&Q管win10 锁定Edge算法分析
文章图片
Edge主页设置保存在
当前用户:
Software\\Classes\\LocalSettings\\Software\\Microsoft\\Windows\\CurrentVersion\\AppContainer\\Storage\\microsoft.microsoftedge_8wekyb3d8bbwe\\MicrosoftEdge\\Protected - It is a violation of Windows Policy to modify. See aka.ms/browserpolicy
文章图片
并不是明文,发现金山和Q管可以锁定Edge,于是来了兴趣搞下。
那关键代码怎么定位?
既然是写注册表 ,那么直接注册表写入.于是有了下面的代码
文章图片
写入ProtectedHomepages时断下.
安装好金山后,点开浏览器保护,点击主页锁定。
此时Windbg断下
文章图片
可以知道9号是开始设置了,返回地址6c4f753.
看下模块信息
文章图片
可以发现在dedendmon.dll
打开IDA,重置基地址
跳动9号call返回地址06c4f753
文章图片
那么接下来就可以找找Data是怎么计算出来的了
看下谁调用这个函数
文章图片
Windbg对这个调用的地方下断,看参数是什么
文章图片
Bp 06BDC908
方便调试 我们设置主页为www.12.com 点击锁定 此时Windbg断下
查看esp
得到第三个参数为我们设置的主页url字符串
文章图片
那么这个函数
取名为QbSetEdgeHomePage
此时调用
ObSetEdgeHomePage(
L"Software\\Classes\\Local Settings\\Software\\Microsoft\\Windows\\CurrentVersion\\AppContainer\\Storage\\microsoft."
"microsoftedge_8wekyb3d8bbwe\\MicrosoftEdge\\Protected - It is a violation of Windows Policy to modify. See aka.ms/browserpolicy",
L"ProtectedHomepages",
url
);
函数内部IDA F5得到
文章图片
首先会判断是否开启保护和是否是支持的系统 由于跟算法无关 这里不做详细分析
接着会去判断当前是不是admin登陆(非内置管理员 如果是内置管理员没有这个主页的这个Key)
接着去打开Key
如果dwDisposition = 1 则做一些处理 这里不管
如果打开成功 则进行下一步操作
Sub_6b5bdb7是在初始化数据结构(待考证)
接着开始跟算法有关
QbGetTempBuff
发现实在填充数据
文章图片
这里sub_6b90c0e里面调用很多sub函数
于是找了Q管的看下
文章图片
发现是url.....
金山在这里就直接返回了 可以看下返回的数据
这个函数被优化过 参数分别为eax和ecx
两个都是out参数 一个是buff缓冲区指针 一个是接收buff长度的指针
文章图片
其中接收缓冲区指针的是ecx
调用前:
文章图片
调用后:
文章图片
接着调用QbGetHashData:
文章图片
具体参数确定跟前面方法一致 断下 dd esp看就可以了
参数为:
1.刚才得到的buff地址
2.buff长度
3.接收计算后的数据指针
4.接收数据长度指针
文章图片
进入后判断是不是SystemUser
如果是则使用WTSGetActiveConsoleSessionId获取Sid
否则使用标准方法获取Sid
文章图片
接着去获取MiachneGuid
文章图片
接着调用QbGetHashDataSub组合数据
文章图片
有几个参数不确定 不过不影响分析
文章图片
这里的操作是将Sid,Guid连接起来在家前面填充的数据后面(有url那个)
文章图片
Eax 是这块数据的长度
剩下的一个参数是传出buff
文章图片
不言而喻 md5计算
接着进行WordSwap和Reversible计算
这个跟IE11是一样的。
接着低位与低位 高位与高位进行^运算
接着调用sub_6c4394a
这个函数是纯c代码 可以直接抄
文章图片
Sub_6c48e6b是替换函数
将计算出来的”尾巴”进行替换
没替换前:
文章图片
替换后:
文章图片
实现:
文章图片
没错 这个就是QbGetHashDataSub的功能 就是计算“尾巴”
接着调用QbGetRegData
文章图片
dwAboutUrllen = wcslen(url) * 2 + 0x22;
Hash = 尾巴
lpTempBuff = 没有sid和Guid的那个buff
后面两个是返回buff
文章图片
所有的数据都知道了
这里关注下v12的数据就可以了
文章图片
接着调用DbObfuscateData
这个函数就不多说了~跟IE11一致
文章图片
接着就是填充数据返回~
返回的数据:
文章图片
长度是5c
到此写入注册表
文章图片
最后:
文章图片
写个小程序测试下:
文章图片
我不知道我坚持的是不是就是正确的,我不知道我看到的是不是就是真实的,我不知道我向往的是不是就是美好的,我不知道我依赖的是海岸还是浮木,我不知道我选择的是千钧一发还是沧海一粟,可我没有时间思考这些问题,也没有资格犹豫,我只知道在黑暗里的人,看到光,就得走下去.
【金山&Q管win10|金山&Q管win10 锁定Edge算法分析】本文由看雪论坛 放学打我不 原创转载请注明来自看雪社区
推荐阅读
- 力扣之只出现一次的数字&多数元素
- Tampermonkey究竟有什么用?
- OpenIM重大升级-群聊读扩散模型发布 群管理功能升级
- jsp+ssm+mysql实现的租车车辆管理系统汽车租赁
- 500强企业都在学的管理秘籍,你一定还不知道!
- Kubernetes|k8s创建pv&pvc
- k8s持久化存储PV&PVC部署
- 关于项目管理的反思
- 前海人寿健康管理中心盛大开业|前海人寿健康管理中心盛大开业 创新“健康+保险”服务模式行业引领
- IT行业的项目管理知识领域简述(一)