解决WAH-WAY电脑管家在非国区电脑上锁功能的问题
本帖最后由 maozhenyu 于 2019-11-29 06:38 编辑PS. 在搞定之后我发现了这篇文章https://www.52pojie.cn/thread-1049569-1-1.html,不过我们的思路不太一样。我的方法可以完美解决https://www.52pojie.cn/thread-930803-1-1.html提出的问题
PS2. 这是第一次写二进制分析的文章,也许不是那么清晰?如果有问题、意见、建议欢迎提出,以后改正。
---ZCZC正文开始-----
一朋友(R/M)是忠实WAH-WAY粉丝,全套WW装备,手机是从国内买过来的,Matebook是从ebay上买的美版。在最近升级电脑管家后,他发现电脑管家的“我的手机”功能消失了,相应的快传、一碰传、备份管理、多屏协同功能也一起不见了,他怀疑是电脑管家对非大陆购买的产品“锁区”了,于是找到了我让我帮他破解一下。
(目前的情况是这样的)
猜想程序通过读取OEM信息,判断电脑序列号、购买销售的区域,如果不是中国大陆就关闭一些功能(据说是政策原因?)
首先先看了一下程序的目录结构,没想到下一子就有了些新发现。目录下的plugins文件夹里面有hwa_plugin_myphone.dll, hwa_plugin_myshare.dll,不就是他所描述的那些功能么?
这些插件都带有下列导出函数:
打开InitializePlugin,发现call了 CSynergyUtil::IsSupportPlugin这个function,返回一个bool值
通过断点跟踪的方式,发现这个函数是在Util.dll里实现的,那么打开Util.dll
进入函数
看样看到是4次判断,第一次调用sub_18001E2F0,然后再调用IsSupportIT、IsSupportDevice、IsSupportDeviceModel。如果全部检验通过>1,那么就返回TRUE(大于1)看起来很有可能就是这个函数判断了功能?
做一下实验,断点打在这个函数retn的地方,看看返回值rax在实际运行中是怎么样的呢
(此部分没有截图,因为当时是在Windows电脑的IDA上动态调试的,现在没有Windows电脑可以给我用来截图了)
这个断点被触发了N次,我们可以在栈上看到caller来自不同的dll,在AfterSale.dll(我的服务)等插件运行时,rax的al部分是1,在hwa_plugin_phonebreif/myphone call这个function时,rax的al部分为0。
当al部分为0的时候,很快该插件会走进Unintialize func,主动卸载。
嘿嘿,有戏!说明这个函数的确起了很大的作用?
再跑一遍,这次手动手动修改hwa_plugin_phonebreif.dll call时rax的值,让al部分为1。
发现没有再跑Unintialize,而是进入autoload func,又call了IsSuportPlugin,再改rax的值……
这次启动的时候,“我的手机”显示出来了(虽然点不进去)。那就说明这个function对功能锁起了决定性的作用。
接下来就很简单了,就直接很粗暴地,在函数入口的地方,覆盖原先的代码,al设个1,然后返回就行。(其实把push rdi 变成retn也可以,因为rax送进来的第一个参数al部分一定!=0的)
相当于C代码中直接return true;
修改Util.dll,重新打开,全部功能工作正常
-----NNNN正文结束------
总感觉好像太顺利了一些?以后找个有挑战性的试试。
--------补充,第二部分:一碰传-----
后来他又来找我说一碰传的问题,由于他电脑上没有NFC标签。但是想试一下
前面的参照:https://www.52pojie.cn/thread-1049576-1-1.html,制作了二维码,顺利地进入了“请触碰HUAWEI SHARE的标签”这个步骤。
哪儿有标签呢?
灵机一动,从桌上拿来了变色龙,设置ISO14443A/ATQA: 0x0400/SAK:0x28; M-1模式,放在手机上一碰。。
居然就成功了。。。
扫一下我的变色龙就可以传文件了。
发现他在1/2扇区里写进了连接信息,手机扫一下就可以
--------- @maozhenyu 大神,我的美版matebook D 14遇到同样的情况,在华为服务中心加装了NFC贴纸,但是华为电脑管家中没有手机连接的功能,能不能求大神直接发一个这种区域导致功能被限制的Util.dll覆盖文件?本人小白一枚,很用力的看了文章,但是感觉无从下手。求助。 感谢分享经验,很详细 用心讨论,共获提升! - Fri Nov 29 2019 08:08:35 GMT+0800 (中国标准时间) 谢谢楼主分享
好文章!谢谢楼主的分享! 学习了,感谢分享! 可以,新的方法不错 感谢分享。。。 明白了谢谢 谢谢分享