2020電腦微信多開超強防封號 電腦多開微信怎么操作( 二 )


真相只有一個事情到這里就真相大白了 , 來總結一下 。
微信判斷是否啟動的2個條件:

    如果能成功創建互斥體對象 , 則啟動微信
    如果不能創建互斥體:
      如果找到對應窗口 , 則置頂之 , 自己退出
      如果沒有找到 , 則啟動微信
用偽代碼來表示一下:
if (CreateMutex() == SUCCESS) {  啟動微信} else {  if (FindWindow() == SUCCESS) {    將已有窗口置頂  } else {    啟動微信  }}而直接使用腳本啟動的多個進程 , 雖然操作系統內核層面保證了互斥體的唯一 , 但由于啟動速度相差不大 , 相應的窗口還沒有來得及創建出來 , 導致走入上面的第二個啟動邏輯 , 從而可以啟動多個實例 。
小發現在分析的過程中 , 發現了一個有趣的事情:
在WeChatWin.dll中 , 上面的創建互斥體再上一級函數名字叫StartWaChat , 也是作為導出函數被該DLL導出:
2020電腦微信多開超強防封號 電腦多開微信怎么操作

文章插圖

【2020電腦微信多開超強防封號 電腦多開微信怎么操作】這里不知道是故意還是不小心把微信的WeChat寫成了WaChat , 如果是筆誤 , 這位程序員同學看到了趕緊偷偷去改一下吧 。

推薦閱讀