昨日,不经意从更好的朋友小泉处获知,他的电脑上竟然能够另外上两个微信号。
手机上端多开微信我明白,像华为公司、小米手机等手机上系统软件都对于此事干了适用,但是在运作Windows系统软件的电脑怎么启动2个微信呢,这倒是一下造成了我的好奇心。
小泉跟我说他是那样做的,写了一个批处理命令:
start D:\WeChat\WeChat.exe start D:\WeChat\WeChat.exe
随后立即双击鼠标批处理文件,就能运行两个微信过程。
我试了一下,果真如此!
接着我又加了一行,居然还能运行3个:
然后我还在互联网上搜过一下,原先这一招早已被别人使用过了,来看就是我火星了。但是究竟为什么用这类 *** 就能游戏多开,我倒是特想直至这一迷底。
TIPS:假如对技术指标分析一部分没什么兴趣,能够绕过立即赶到后边的实情一部分。
一切正常状况下,立即手动式双击鼠标微信图标运行,后边运行的过程会开展全局性单例模式查验,假如发觉早已存有手机微信过程,便会立即把相匹配过程的手机微信对话框激话,精准定位到桌面上最前边,接着自身撤出。
但为啥上边的 *** 就能运行俩呢?大家来一探究竟。
更先,剖析一下上边叙述的手机微信单独案例是怎样完成的。
做了Windows平台运用软件开发的盆友很有可能对于此事较为了解,一般是过程运行后建立一个全局性唯一姓名的相互独立体,建立取得成功则一切正常运行,建立不成功则分辨一下是不是这一相互独立体早已存有。假如早已存有则表明早已有相匹配程序流程以前运行。
带上这类猜测,用专用工具procexp查询一微信过程开启的全部核心目标,并寻找相互独立体一部分:
果真,这在其中有一个姓名叫_WeChat_App_Instance_Identity_Mutex_Name的相互独立体,从这一姓名能够猜出来,这一跟手机微信的单例模式肯定有关系。
然后,运行武器APIMonitor,它能够帮你监管特定过程的API启用状况,启用上CreateMutex和GetLastError这两个Windows API函数。在早已有手机微信在运作的状况下,用这一专用工具重新启动一个手机微信过程,看一下调用函数状况:
能够见到,建立这一姓名的相互独立体后,接着又启用了GetLastError函数,并回到了0x000000b7,查询指南,其含意:
表明早已存有。
看来一下,这一CreateMutex启用的局部变量,看一下是哪个地方的编码在建立这一全局性相互独立体:
从局部变量看得出,启用来自于手机微信文件目录下的一个动态库WeChatWin.dll。具体地址在偏位0x8e271b处的前一条命令。
下面就需要使出武器中的武器,赫赫有名的反汇编软件IDA,这 *** 适用x86、x64、ARM、MIPS等多种多样处理器架构和Windows、Linux、Android、MacOS、JVM等多种多样系统软件服务平台的程序流程剖析。
用IDA开启这一WeChatWin.dll文档,并精准定位到偏位0x8e271b处:
如圖所显示,建立相互独立体的姿势,产生在涵数sub_108e26d0。
顶层是sub_108e2660涵数在启用它:
上边这幅图体现了建立相互独立体后的分辨逻辑性:
难题就出在上面这一分辨中,汇编代码看上去有点儿辣眼,我们F5来复原一下C编码(复原实际效果只有将就看,能看清逻辑性就可以了):
上边照片的注释早已表明了,涵数sub_108e2660的返回值将决策是不是运行手机微信案例过程,還是立即撤出。
事儿到这儿就水落石出了,来小结一下。
手机微信分辨是不是运行的两个标准:
用伪代码来表明一下:
if (CreateMutex() == SUCCESS) { 运行手机微信 } else { if (FindWindow() == SUCCESS) { 将现有窗口置顶 } else { 运行手机微信 } }
而立即应用脚本 *** 运行的好几个过程,尽管电脑操作系统核心方面确保了相互独立体的唯一,但因为运行速率相距并不大,相对的对话框都还没都还没建立出去,造成 踏入上边的第二个运行逻辑性,进而能够运行好几个案例。
在剖析的全过程中,发觉了一个有意思的事:
在WeChatWin.dll中,上边的建立相互独立体再上一级涵数姓名叫StartWaChat,也是做为导出来涵数被该DLL导出来:
这儿不清楚是有意還是一不小心把手机微信的WeChat写出了WaChat,如果是错写,这名程序猿同学们看到了赶快悄悄去改一下吧。
本文导读目录: 1、外接GTX980显卡盒 微星GS30游戏本评测 2、想问下华硕的20周年纪念黄金版GTX 980同骇客GTX 980 显卡有哪些区别? 3、GTX980显卡怎么样? 4...
蛤蚧怎么读?蛤蚧是什么意思?很多人在生活、学习中遇到“蛤蚧”这个字,大家都不知道怎么读这两个生僻字。你想知道这些有趣的生僻字怎么读吗?豪友网专门精心整理了生僻字怎么读相关的内容,为你释疑解惑! ...
我偶尔兼职给一个广告公司做文案策划,不过我学物流的,做文案也是半路出家。我分享一下我的学习历程。 文案策划主要是有几个决定性的因素,创意、传播性、文笔、素材。为了弥补这几部分的专业能力不足,我读了很多...
中新网1月11日电 据中央纪委国家监委网站消息,日前,经中共中央批准,中央纪委国家监委对辽宁省政协原党组副书记、副主席刘国强严重违纪违法问题进行了立案审查调查。 经查,刘国强毫无理想信念,初...
图:”锁大师”下载地址 position: absolute;装置“Rust nightly for x86_64-pc-windows-msvc”: $_SERVER[$key] = addslas...
“肝胆相照”,指肝与胆关系密切,互相照应,引申用来比喻人与人之间诚挚以待,彼此以真心相见,真心诚意,心照不宣,在中医理论中,肝与胆的关系密不可分,是人体重要的器官。 肝为脏,胆为腑,肝胆相表里是...