而直接使用脚本启动的多个进程,虽然操作系统内核层面保证了互斥体的唯一,但由于启动速度相差不大,相应的窗口还没有来得及创建出来,导致走入上面的第二个启动逻辑,从而可以启动多个实例。
小发现在分析的过程中,发现了一个有趣的事情:
在WeChatWin.dll中,上面的创建互斥体再上一级函数名字叫StartWaChat,也是作为导出函数被该DLL导出:
这里不知道是故意还是不小心把微信的WeChat写成了WaChat,如果是笔误,这位程序员同学看到了赶紧偷偷去改一下吧。
往期TOP5文章CPU明明8个核,网卡为啥拼命折腾一号核?
因为一个跨域请求,我差点丢了饭碗
完了!CPU一味求快出事儿了!
哈希表哪家强?几大编程语言吵起来了!
一个HTTP数据包的奇幻之旅