Yazılım C/C++ Raspberry Pi Pico 2W HID fare emülatörü için 2 bilgisayarlı kurulum

ny4rlk0

Hectopat
Katılım
3 Kasım 2020
Mesajlar
1.483
Çözümler
22
Yer
AraAra Island
Raspberry Pi Pico 2W üzerine kurulu donanım tabanlı bir fare emülatörü yayınlıyorum. Hedef (oyun) bilgisayarı meşru bir USB HID fare gibi sunulurken, ikinci bir bilgisayardan UART aracılığıyla hareket verileri alıyor. Oyun makinesinde hiçbir yazılım çalışmıyor, hiçbir dosya değiştirilmiyor ve hiçbir enjeksiyon gerçekleşmiyor; bu da onu çekirdek düzeyindeki hile önleme sistemleri tarafından algılanamaz hale getiriyor.

Bu proje, çekirdek düzeyinde sürekli çalışan, genellikle işletim sisteminden önce yüklenen ve kullanıcı gizliliğini ihlal eden saldırgan hile önleme sürücülerine doğrudan bir yanıttır. Ürün yazılımı, MİT lisansı altında açık kaynaklıdır, yalnızca eğitim ve araştırma amaçlıdır ve benim tarafımdan yazılmıştır.

🔗 GitHub Kaynak Kod ve Pico 2 W Firmwaresi: GitHub - ny4rlk0/fkernelanticheats: Raspberry Pi Pico 2W firmware that emulates a real USB mouse, receiving movement data from a second PC via UART. Designed to bypass kernel-level anti-cheat systems without touching game files or running code on the gaming machine.

Logitech M330 ve Lecoo MS108 ile test edilmiştir. Karmaşık tanımlayıcılara veya yüksek sorgulama hızlarına sahip oyun fareleri desteklenmez. Bir Pico 2W, bir CP2102 UART adaptörü ve desteklenen bir fareye ihtiyacınız olacak. Ayrıntılı kurulum talimatları README dosyasında mevcuttur.

Bu bir hile değil, çevresel düzeyde bir giriş emülatörüdür. Sorumlu bir şekilde kullanın.

⚠️ Yalnızca eğitim ve araştırma amaçlıdır. Bu proje, özellikle çekirdek düzeyinde çalışan ve kullanıcı gizliliğini ihlal eden müdahaleci hile önleme uygulamalarını eleştirel bir atıfta bulunmak için yazılmıştır.

Sürekli çalışan çekirdek hile önleme programları olmamalı! Oyuncular her zaman hile yapmanın bir yolunu bulur. Bu, AC'yi her zaman çekirdek düzeyinde çalıştırmayı, AC'yi işletim sisteminden önce başlatmayı veya başkalarının gizliliğini ihlal etmeyi mazur göstermez! Pico 2 W, taktığınız bilgisayarda gerçek bir USB fare gibi görünürken, görselde gösterilen Type-C UART CP2102'yi kullanarak ikinci bilgisayardan UART aracılığıyla fare hareketlerini alır. Bunun için bir demo Python kodu yazdım.

Yazılımı yalnızca belirli fare modelleriyle uyumludur. Şu anda Logitech M330 ve Lecoo MS108 ile test edilmiştir. Yüksek hızlı veya karmaşık oyun fareleri desteklenmeyebilir.

(Fare, 8 Bayt'tan büyük veya 1000 Hz'den hızlı bir rapor tanımlayıcısına sahip fareleri desteklemez.)

Şu anda yalnızca Logitech M330 veya Lecoo MS108 farelerini destekler. Demo yazılımını geliştirip kendi farenizi ekleyebilirsiniz ve bunları bizimle paylaşabilirsiniz, ancak her fare çalışmayacaktır. Razer, Logitech vb. markaların birden fazla arayüzü veya düğmesi olan oyun fareleri çalışmayacaktır. Tek arayüzlü farelerin çalışma olasılığı daha yüksektir. Python kodu, yalnızca ürün yazılımının nasıl kullanılacağını anlamanıza yardımcı olmak için örnek olarak verilmiştir.

Gerekli donanım:

  • 1 adet desteklenen fare.
  • 1 Raspberry Pi Pico 2W
  • 1 CP2102 Type-C UART veya 115200'ü destekleyen başka bir UART cihazı
  • 3 Dişi-Dişi Jumper Kablosu
  • 1 Mikro USB Kablosu
  • 1 Type-C Kablosu
Kablo Bağlantıları:

  • Pico 2W GP0 => CP 2102 RXD (Resimdeki Turuncu Kablo)
  • Pico 2W GP1 => CP 2102 TXD (Resimdeki Sarı Kablo)
  • Pico 2W GND => CP 2102 GND (Resimdeki Yeşil Kablo)


  • picture.png

Silicon Labs CP2102 UART Kurulumu:

CP2102 üzerindeki Sarı Jumper Anahtarını çıkarın ve resimde gösterildiği gibi VCCIO ve 5V'u kapatacak şekilde yeniden bağlayın. Bunu yanlış yapmak, 3V devresine 5V vererek karta zarar verebilir. Silicon Labs CP2102 sürücüsünü Aygıt Yöneticisi aracılığıyla ikinci bilgisayara bağlı UART COM portuna yükleyin. Aygıt Yöneticisi ile UART hızını 115200 olarak ayarlayın.

Genel Mantık şu şekildedir:

Pico 2 W, oyun bilgisayarına kendini gerçek bir HID fare olarak tanıtır. Pico 2 W, ikinci bilgisayardan UART (SL CP2102) aracılığıyla fare komutlarını alır. Desteklenen bir fareyi ikinci bilgisayara bağlayın ve Zadig kullanarak WINUSB sürücüsünü yükleyin.

Mouse_filter.py dosyasında desteklemek istediğiniz farenin yorum satırı işaretini kaldırın. İkinci bilgisayara Desteklenen bir fare bağlıyken, yine ikinci bilgisayarda mouse_filter.py dosyasını çalıştırın ve doğru COM portunu seçin. İkinci bilgisayardan yapılan fare hareketleri, UART aracılığıyla ilk oyun bilgisayarında fare olarak görünen Pico 2 W'ye aktarılır. Bu, ikinci bilgisayarın faresini etkilemez.

İlk bilgisayarı OBS ile kaydedebilir, ikinci bilgisayardan ekranı izleyebilir ve herhangi bir cihaz veya yazılımla nişan alabilirsiniz. Bu nişanı send_aim.py dosyasındaki örneği kullanarak gönderebilirsiniz. Ya da, ilk bilgisayarın görüntü çıkışını monitöre göstermeden bir ekran kaydedici kart kullanabilir ve USB çıkışını ikinci bilgisayara bağlayabilirsiniz. Herhangi bir cihaz veya yazılımla nişan alın. Nişanı send_aim.py dosyasıyla gönderebilirsiniz.

Send_aim.py hakkında not: Buraya girilen bilgiler, doğrudan Pico 2 W aracılığı ile ilk oyun bilgisayarına fare tanımlayıcı raporu olarak gönderilir.

İletilen hareket çok hızlıysa, Anti-Cheat'in insan dışı hareket özelliğini tetikleyebilirsiniz. Bu, fareniz 20 metre gibi saçma bir mesafe kat ederse bir sorunla karşılaşabileceğiniz anlamına gelir. Hareket göndermeden önce yavaşlatın, yumuşatın ve küçük hatalar ekleyin. Tek seferde çok fazla hareket göndermeyin! Yazılım, farenin x ve y hareketlerini 128 civarlarına sınırlandırıyor. Bu, düzgün bir yazılım ve cihaz için yeterli.
 
Son düzenleme:
Merak ettiğim bir husus var. FACEIT mesela simüle fareleri engelleyebiliyordu AC ile. Acaba bu FACEIT'de çalışıyor mu hiç denediniz mi veya deneme şansınız var mı?

Aktif olarak oyunu oynamıyorum. Ben en son böyle bir şey yapmaya çalıştığımda orada test etmiştim ve çalışmadığını görmüştüm o yüzden merak ettim.
 
Merak ettiğim bir husus var. FACEIT mesela simüle fareleri engelleyebiliyordu AC ile. Acaba bu FACEIT'de çalışıyor mu hiç denediniz mi veya deneme şansınız var mı?

Aktif olarak oyunu oynamıyorum. Ben en son böyle bir şey yapmaya çalıştığımda orada test etmiştim ve çalışmadığını görmüştüm o yüzden merak ettim.

Hangi Anti-Cheat olduğu fark etmez. Var olan veya sonradan yazılacak hepsinde çalışır. Pico 2 W ile sanal bir fare oluşturuyorum. Bilgisayar bunu gerçek bir donanımı olan fare olarak görüyor. Tek yapabilecekleri taklit ettiğim fareyi kara listeye almak, onu ise sadece fareyi Firmware kodundan değiştirerek aşabilirim.

Bu basit bir Python fare emülasyonu değil. C dilinde aylarca kodladığım gerçek fare gibi davranan bir bare metal Firmware. Bunu da kolay kolay kimse açık kaynak yayınlamaz.

FACEIT denemedim ama ismi v ile başlayan oyunun içinde sorunsuz çalışıyor. (Artık halka açık olduğu için fareyi kara listeye alabilirler tabii.)

Benim önerim eğer kendiniz kullanacaksanız, taklit ettiği fareyi kendinize özel bir fare ile değiştirin ve kara listeye alınırsa siz hiçbir şekilde etkilenmeyin.

Aslında Wi-Fi üzerinden çalışan, UART kablosu gerektirmeyen bir sürümü yazmıştım ilk olarak, ama baktım ki UDP/TCP ile istediğim fare akıcılığını alamıyorum, kodu UART iletişimi için baştan yazdım.
 
Son düzenleme:
Üniversitede kendim bir tane geliştirmiştim. Bir fırsat bulursam bakacağım. Teşekkürler paylaşım için.
 

Technopat Haberler

Geri
Yukarı