cari
RumahJavajavaTutorialBagaimana untuk menggunakan Java untuk membuka berbilang akaun pada WeChat PC?

Anda juga boleh membuka berbilang akaun WeChat pada komputer

Semalam, saya secara tidak sengaja mengetahui daripada rakan baik saya Xiao Lin (akaun awam WeChat: Xiao Lin Coding) bahawa komputernya sebenarnya boleh membuka dua WeChat ID pada masa yang sama.

Buka WeChat pada telefon mudah alih Saya tahu bahawa sistem telefon mudah alih seperti Huawei dan Xiaomi menyokong ini, tetapi bagaimana untuk memulakan dua WeChat pada komputer yang menjalankan sistem Windows Ini benar-benar menimbulkan rasa ingin tahu saya.

Xiao Lin memberitahu saya bahawa dia melakukan ini dan menulis proses kelompok:

<code>start D:\WeChat\WeChat.exe<br>start D:\WeChat\WeChat.exe</code> 

Kemudian dia terus mengklik dua kali fail kelompok untuk memulakan dua proses WeChat.

Saya mencubanya, dan pasti ia berkesan!

Kemudian saya menambah baris lain, dan saya dapat mengaktifkan 3 lagi:

Bagaimana untuk menggunakan Java untuk membuka berbilang akaun pada WeChat PC?

Kemudian saya mencari di Internet dan mendapati bahawa helah ini telah digunakan oleh orang lain sejak dahulu lagi. Tetapi mengapa anda boleh membuka lebih banyak pintu dengan cara ini saya benar-benar ingin tahu misterinya.

TIPS: Jika anda tidak berminat dengan bahagian analisis teknikal, anda boleh langkau dan pergi terus ke bahagian kebenaran di penghujung.

Mod tunggal WeChat

Dalam keadaan biasa, anda boleh terus klik dua kali pada ikon WeChat untuk memulakan proses yang dimulakan kemudian akan melakukan semakan mod tunggal global Jika didapati bahawa WeChat proses sudah wujud, ia akan terus Mengaktifkan tetingkap WeChat proses yang sepadan, meletakkannya di hadapan desktop, dan kemudian keluar sendiri.

Tetapi kenapa ia boleh diaktifkan menggunakan kaedah di atas? Mari kita ketahui.

Mula-mula, mari kita analisa cara satu contoh WeChat yang diterangkan di atas dilaksanakan.

Rakan yang telah membuat pembangunan aplikasi platform Windows mungkin biasa dengan ini, mutex dengan nama unik secara global dibuat selepas proses dimulakan, ia akan bermula seperti biasa penciptaan gagal, ia akan dinilai sama ada mutex adalah sama. repeller sudah wujud. Sekiranya ia sudah wujud, bermakna program yang berkaitan telah dimulakan sebelum ini.

Dengan tekaan ini, gunakan alat procexp untuk menyemak semua objek kernel yang dibuka oleh proses WeChat dan mencari bahagian mutex:

Bagaimana untuk menggunakan Java untuk membuka berbilang akaun pada WeChat PC?

Sudah pasti, terdapat mutex bernama _WeChat_App_Instance_Identity_Mutex_Name Daripada nama ini, kita boleh mengagak bahawa ini pasti berkaitan dengan mod tunggal WeChat.

Seterusnya, mulakan APIMonitor artifak, yang boleh membantu anda memantau panggilan API bagi proses yang ditentukan. Semak dua fungsi API Windows CreateMutex dan GetLastError. Apabila WeChat sudah berjalan, gunakan alat ini untuk memulakan proses WeChat yang lain dan lihat pada panggilan fungsi:

Bagaimana untuk menggunakan Java untuk membuka berbilang akaun pada WeChat PC?

Seperti yang anda lihat, selepas mencipta mutex dengan nama ini, fungsi GetLastError kemudiannya dipanggil dan 0x000000b7 telah dikembalikan, maksudnya:

Bagaimana untuk menggunakan Java untuk membuka berbilang akaun pada WeChat PC?

bermaksud ia sudah wujud.

Mari kita lihat susunan panggilan CreateMutex ini dan lihat di mana kod mencipta mutex global ini:

Bagaimana untuk menggunakan Java untuk membuka berbilang akaun pada WeChat PC?

Daripada timbunan, dapat dilihat bahawa panggilan itu datang daripada perpustakaan dinamik WeChatWin.dll dalam direktori WeChat. Kedudukan khusus ialah arahan sebelumnya pada offset 0x8e271b.

Langkah seterusnya ialah memperkenalkan artifak di kalangan artifak, perisian pembongkaran terkenal IDA Lelaki ini menyokong x86, x64, ARM, MIPS dan seni bina pemproses lain serta Windows, Linux, Android, MacOS, Program JVM. analisis pada pelbagai platform sistem.

Buka fail WeChatWin.dll dengan IDA dan cari di offset 0x8e271b:

Bagaimana untuk menggunakan Java untuk membuka berbilang akaun pada WeChat PC?

Seperti yang ditunjukkan dalam rajah di atas, tindakan mencipta mutex, Berlaku dalam fungsi sub_108e26d0.

Lapisan atas ialah fungsi sub_108e2660 yang memanggilnya:

Bagaimana untuk menggunakan Java untuk membuka berbilang akaun pada WeChat PC?

Gambar di atas mencerminkan logik penghakiman selepas mencipta mutex:

  • Jika nilai pulangan sub_108e26d0 ialah 0, ia bermakna tiada ralat dan fungsi semasa akan kembali terus 0.

  • 如果sub_108e26d0的返回值不为0,表示出现了错误,则依次判断     WeChatMainWndForPC和     WeChatLoginWndForPC两个窗口是否存在,如果存在则使用     BringWindowToTop函数将其置顶弹出。这两个窗口分别代表的是微信的主界面窗口和登陆界面窗口,如果一个微信实例已经存在,则势必处于这两种状态之一。

问题就出在上面这个判断中,汇编代码看起来有点辣眼睛,咱们F5来还原一下C代码(还原效果只能凑合看,能看清楚逻辑就行):

Bagaimana untuk menggunakan Java untuk membuka berbilang akaun pada WeChat PC?  

上面图片的注解已经说明了,函数sub_108e2660的返回值将决定是否启动微信实例进程,还是直接退出。 

真相只有一个

事情到这里就真相大白了,来总结一下。

微信判断是否启动的2个条件:

  • 如果能成功创建互斥体对象,则启动微信

  • 如果不能创建互斥体:

    • 如果找到对应窗口,则置顶之,自己退出

    • 如果没有找到,则启动微信

用伪代码来表示一下:

<code>if (CreateMutex() == SUCCESS) {<br>  启动微信<br>} else {<br>  if (FindWindow() == SUCCESS) {<br>    将已有窗口置顶<br>  } else {<br>    启动微信<br>  }<br>}</code> 

而直接使用脚本启动的多个进程,虽然操作系统内核层面保证了互斥体的唯一,但由于启动速度相差不大,相应的窗口还没有来得及创建出来,导致走入上面的第二个启动逻辑,从而可以启动多个实例。 

小发现

在分析的过程中,发现了一个有趣的事情:

在WeChatWin.dll中,上面的创建互斥体再上一级函数名字叫StartWaChat,也是作为导出函数被该DLL导出:

Bagaimana untuk menggunakan Java untuk membuka berbilang akaun pada WeChat PC?

Atas ialah kandungan terperinci Bagaimana untuk menggunakan Java untuk membuka berbilang akaun pada WeChat PC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Artikel ini dikembalikan pada:亿速云. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Prestasi jvm vs bahasa lainPrestasi jvm vs bahasa lainMay 14, 2025 am 12:16 AM

JVM'sperformanceiscompetitiveWithotherRuntimes, menawarkanbalanceofspeed, keselamatan, dan produktiviti.1) jvmusesjitcompilationfordynamiciptimizations.2) c menawarkanSnativePerformanceButLacksjvm'sSafetyFeatures.3) pythonissloweSiSiSiSiSiSiS.3) pythonissloweSiSiSiSiSiS.3) pythonissloweSiSiSiSiSiS.3)

Kemerdekaan Platform Java: Contoh PenggunaanKemerdekaan Platform Java: Contoh PenggunaanMay 14, 2025 am 12:14 AM

Javaachievesplatformindependencethroughthejavavirtualmachine (jvm), membenarkancodetorunonanyplatformwithajvm.1) codeiscompiledintobytecode, notmachine-specificcode.2) byteCodeisinterpretedbybspretedbspretedbspretedbspretedbspretspretedbspretspret

Senibina JVM: menyelam mendalam ke mesin maya JavaSenibina JVM: menyelam mendalam ke mesin maya JavaMay 14, 2025 am 12:12 AM

TheJVMisanabstractcomputingmachinecrucialforrunningJavaprogramsduetoitsplatform-independentarchitecture.Itincludes:1)ClassLoaderforloadingclasses,2)RuntimeDataAreafordatastorage,3)ExecutionEnginewithInterpreter,JITCompiler,andGarbageCollectorforbytec

JVM: Adakah JVM berkaitan dengan OS?JVM: Adakah JVM berkaitan dengan OS?May 14, 2025 am 12:11 AM

Jvmhasacloserelationshipwiththeosasittranslatesjavabytecodeintomachine-specificinstructions, managesmemory, andhandlesgarbagecollection.Thisrelationshipallowsjavatorunonvariousosenvi,

Java: Tulis sekali, jalankan di mana sahaja (wora) - menyelam mendalam ke dalam kemerdekaan platformJava: Tulis sekali, jalankan di mana sahaja (wora) - menyelam mendalam ke dalam kemerdekaan platformMay 14, 2025 am 12:05 AM

Pelaksanaan Java "Tulis Sekali, Jalankan Di Mana -mana" disusun menjadi bytecode dan dijalankan pada mesin maya Java (JVM). 1) Tulis kod Java dan menyusunnya ke dalam bytecode. 2) Bytecode berjalan pada mana -mana platform dengan JVM dipasang. 3) Gunakan antara muka asli Java (JNI) untuk mengendalikan fungsi khusus platform. Walaupun terdapat cabaran seperti konsistensi JVM dan penggunaan perpustakaan khusus platform, Wora sangat meningkatkan kecekapan pembangunan dan fleksibiliti penempatan.

Kemerdekaan Platform Java: Keserasian dengan OS yang berbezaKemerdekaan Platform Java: Keserasian dengan OS yang berbezaMay 13, 2025 am 12:11 AM

Javaachievesplatformindependencethroughthejavavirtualmachine (JVM), membenarkancodetorunondifferentoperatingsystemswithoutmodification.thejvmcompilesjavacodeintoplatform-bebastbytecode, yang mana-mana

Ciri -ciri apa yang menjadikan Java masih kuatCiri -ciri apa yang menjadikan Java masih kuatMay 13, 2025 am 12:05 AM

Javaispowerfulduetoitsplatformindantrectence, orientednature orientednature, richstandardlibrary, perfanksapabilities, andstrongSecurityfeatures.1) PlatformIndendenceAllowsApplicationStorAnanydeviceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceDeviceViceDeviceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceD

Ciri -ciri Java Teratas: Panduan Komprehensif untuk PemajuCiri -ciri Java Teratas: Panduan Komprehensif untuk PemajuMay 13, 2025 am 12:04 AM

Fungsi Java teratas termasuk: 1) pengaturcaraan berorientasikan objek, menyokong polimorfisme, meningkatkan fleksibiliti kod dan pemeliharaan; 2) mekanisme pengendalian pengecualian, meningkatkan keteguhan kod melalui blok percubaan-catch-finally; 3) pengumpulan sampah, memudahkan pengurusan memori; 4) generik, meningkatkan keselamatan jenis; 5) Ekspresi AMBDA dan pengaturcaraan berfungsi untuk menjadikan kod lebih ringkas dan ekspresif; 6) Perpustakaan standard yang kaya, menyediakan struktur data dan algoritma yang dioptimumkan.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Nordhold: Sistem Fusion, dijelaskan
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

mPDF

mPDF

mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual