UWA Free'nun temel gücü, kullanıcıların özel otomasyon görevlerini sisteme entegre edebilmelerini sağlayan modüler yapısıdır. Sistem, açılışta ve çalışma zamanında kullanıcı dizinini (User Directory) tarayarak eklenen modülleri dinamik olarak çözer. Ayrıca tüm insan davranışları (fare hareketlerinde insansı titreşimler; düz bir çizgide ilerlemeyen, her bir pixelden pixele geçişlerde farklı hızlarda kaydırma; her harf arası rastgele kısa gecikmeli, nokta, virgül ve boşluklarda daha uzun rastgele gecikmeli (yazarken düşünme simülasyonu), yanlış yazıp düzeltme içeren insansı klavye kullanımı vb.)) çekirdek seviyede kodlanmıştır, bu sayede modül geliştiren kullanıcıların sadece hazır davranış kalıplarını çağırmaları yeterlidir.
- Örnek Missions (Görevler): Otomasyonun hedef sayfada gerçekleştireceği temel eylemleri tanımlar. Örneğin; sayfada gezinme (surfing) veya sadece ziyaret etme (just visit).
- Örnek Navigators (Yönlendiriciler): Hedef sayfaya nasıl ulaşılacağını belirler. Doğrudan URL girme, Google araması üzerinden gitme veya başka bir sitedeki bağlantı üzerinden (backlink) ulaşma gibi seçenekler sunar.
- Örnek Extensions (Eklentiler): Görevler ve yönlendiriciler içinde kullanılabilen, SMS doğrulaması veya 2FA kod üretimi gibi bağımsız özellikleri sağlayan modüllerdir. Kullanıcılar ExtensionsOrchestrator üzerinden shortcode'lar ile bu eklentileri çağırabilir.
Bu modüllerin hepsi örnektir, her kullanıcı dilediği modülleri değiştirebilir, dilediği modüller ile kendi sistemini inşa edebilir.
İnsansı Davranışlar (Human Behaviors) Motoru
UWA Free, tespit edilebilen bot hareketlerini önlemek amacıyla tüm etkileşimleri "insansı davranış" standartlarına göre yürütür. Bu özellikler interaction-utils gibi çekirdek bileşenlerde tanımlanmıştır:
- Mouse Movement (Fare Hareketi): Fare hareketleri doğrusal değildir; belirli bir ivmeleme (easing), mikro sapmalar (jitter) ve ara duraklamalar (pauseChance) içerecek şekilde rastgele hızlarda gerçekleşir.
- Scrolling (Kaydırma): Sayfa kaydırmaları pürüzsüz (smooth) şekilde, rastgele duraklamalar (pause) ile ve fare imlecinin ekranın rastgele yerlerine sürüklenmesiyle (drift) birlikte senkronize olarak yapılır.
- Typing (Yazma): Klavye veri girişlerinde harfler arası rastgele gecikmeler (delay) uygulanır ve insansı yazım hataları (typos) simüle edilir.
- Clicks & Delays (Tıklamalar ve Beklemeler): Tıklamalar öncesinde "hover" (üzerinde bekleme) gecikmeleri uygulanır, mousedown ve mouseup arasında gecikme eklenir ve her görev döngüsü arasında rastgele sürelerde (random wait) beklemeler yapılır.
Modül Geliştiricileri İçin Not: Bu mekanizmalar çekirdek seviyede interactionService üzerinden sunulmaktadır. Geliştiricilerin bu zorlukları sıfırdan yazması gerekmez; yalnızca hazır etkileşim kalıplarını (örn: scroll, mouseMove, textSelection, linkClick) çağırmaları yeterlidir.
Fingerprint (Parmak İzi) Spoofing Sistemi
UWA Free, otomasyon oturumlarının gerçek bir kullanıcı gibi görünmesini sağlamak için her oturuma özel, benzersiz donanım ve yazılım verileri üretir.
- Oturum Bazlı Üretim: Her tarayıcı oturumu için (WebGL, Canvas, User Agent, Ekran çözünürlüğü vb.) benzersiz parmak izi (fingerprint) verisi rastgele üretilir ve outurum boyunca aynı değerler korunur.
- Cookie ile Birlikte Dışa Aktarım: Oturum başarıyla tamamlandığında, o oturuma ait parmak izi verisi (spoofing snapshot) çerezlerle (cookie) birlikte dışa aktarılabilir. Böylece, daha sonra bu çerezler içe aktarıldığında, ilgili oturum tamamen aynı cihaz ve tarayıcı özellikleri kullanılarak devam ettirilebilir. Örneğin Gmail doğrulama işlemleri yapan bir otomasyon süreciniz var, Gmail hesaplarına çerezlerle dahi olsa daha sonra yeniden girdiğinde bot, hep aynı çerez ile ama hep farklı cihaz ile girmiş olur, ancak bu özellik sayesinde aynı çerez ile ve hep aynı cihaz ile Gmail hesabına girmiş olunur. Gmail hesapların sağlığı korunur.
Kullanıcı Arayüzü ve Ayarlar
Tasks (Görevler) Form Alanları
Yeni bir görev oluştururken veya düzenlerken aşağıdaki alanlar kullanılır:
- Task Name: Görevinizi tanımlayan açıklayıcı isim.
- Target URL: Görevin (Mission) gerçekleştirileceği asıl hedef web sitesinin adresi.
- Mission Type:Hedef sayfada yapılacak işlemi seçmenizi sağlar.
- Just Visit: Hızlı işlem için ziyaret odaklı minimal davranış.
- Surfing: Gerçek insan davranışlarıyla kapsamlı web gezintisi simülasyonu.
- Example Mission: Tüm yetenekleri gösteren geliştirici referans görevi.
- Navigator Type:Hedef URL'ye nasıl ulaşılacağını belirler.
- Direct URL: Hedef URL'ye doğrudan gider.
- Google Search: Google ana sayfasında arama yapar ve sonuçlardan hedefe gider. (Seçildiğinde 'Search Terms' alanı görünür).
- Google Search Smart: Google araması yapar, hedef URL'nin konumunu öğrenir ve sonraki çalışmalarda doğrudan o sayfaya atlar. (Seçildiğinde 'Search Terms' alanı görünür).
- Backlink Navigation: Önce belirtilen kaynak URL'ye gider, ardından orada bulunan hedef URL bağlantısına tıklar. (Seçildiğinde 'Source URL' alanı görünür).
- Search Terms: (Sadece Google Search navigatörlerinde) Hedef URL'yi Google arama sonuçlarında bulmak için kullanılacak arama terimleri (virgülle ayrılabilir).
- Source URL: (Sadece Backlink Navigator'da) Hedef URL'ye ait bağlantının bulunduğu kaynak web sitesinin adresi.
- Select Proxy:Görev için kullanılacak proxy stratejisini belirlemenizi sağlar. Sistemde yüklü olan ve durumu "error" olmayan proxyler arasından seçim yapılır.
- Without Proxy: Görev doğrudan kendi bağlantınız üzerinden çalışır.
- Any (All): Sistemdeki tüm proxyler arasından her oturum için rastgele bir proxy seçilir.
- Any (Singles): Hiçbir gruba dahil edilmemiş "tekil" (single) proxyler arasından her oturum için rastgele biri seçilir.
- Group: Seçtiğiniz belirli bir proxy grubundaki (Group) proxyler arasından rastgele seçim yapılır.
- Specific Proxy: Listeden seçtiğiniz tek bir proxy kullanılır.
- Cookies Import: Etkinleştirildiğinde, seçilen klasördeki çerezleri (cookie) her oturum öncesi içe aktarır.
- Cookies Export:Etkinleştirildiğinde, başarıyla tamamlanan oturumların çerezlerini seçilen klasöre dışa aktarır.
- Repeat Cookies: İçe aktarılacak çerez kalmadığında, processed dizinine taşınan kullanılmış çerezleri tekrar içe aktarma (import) klasörüne taşıyarak döngüyü sürdürür.
- Import SpoofingData: Çerezlerle birlikte kaydedilmiş cihaz parmak izi verilerini de içe aktarır.
- Export SpoofingData: Oturumun cihaz parmak izi verilerini çerezlerle birlikte kaydeder.
- Localization:
- Locale: Tarayıcı dilini ayarlar. Playwright'ın Chromium tabanlı tüm locale formatlarını (BCP 47 dil etiketleri) destekler (örn: tr-TR, en-US, en-GB, de-DE, fr-FR, es-ES, pt-BR, ru-RU, zh-CN, ja-JP vb.).
- Timezone: Tarayıcı saat dilimini ayarlar (örn: Europe/Istanbul).
- Internet Optimization:Etkinleştirildiğinde, bant genişliğinden tasarruf etmek için belirli kaynak türlerini yüklemeyi engeller. Aynı zamanda önemli ölçüde CPU ve Memory tasarrufu da sağlar.
- Blocked Resource Types: Engellenecek kaynak türleri (örn: image, stylesheet).
- Exception List:Belirli domainler için engelleme kurallarını esnetmek veya tamamen devre dışı bırakmak için kullanılır. Format domain:kaynaktürü1,kaynaktürü2 şeklindedir.
- google.com:script,fetch -> google.com üzerinde script ve fetch türündeki kaynakların yüklenmesine her koşulda izin verilir (diğerleri Blocked Resource Types listesine göre engellenmeye devam eder).
- example.com:all -> example.com üzerindeki hiçbir kaynak engellenmez, sayfa normal şekilde tam olarak yüklenir.
- Target Sessions: Bu görevin başarıyla tamamlanması gereken toplam oturum sayısı.
- Time (Hours): Görevin oturumlarının ne kadar süreye yayılacağını saat cinsinden belirler (0 girilirse tam tempo çalışır, belirli bir zamana yayma çabasına girmez).
Proxy Yönetimi
Sisteme eklenecek proxy adreslerini tekil veya toplu olarak yönetebilirsiniz.
Add Proxy (Tekil Proxy Ekleme) Formu:- Proxy Type: Proxy protokolü (HTTP, HTTPS, SOCKS4, SOCKS5).
- Is IPv6?: İşaretlenirse proxy'nin IPv6 olduğu belirtilir (doğrulama atlanır ve WebRTC kapatılır).
- Proxy URL: Proxy sunucusunun IP adresi veya host adı.
- Port: Proxy sunucusunun bağlantı noktası numarası.
- Username (Opsiyonel): Proxy erişimi için kullanıcı adı.
- Password (Opsiyonel): Proxy erişimi için şifre.
- IP Change URL (Opsiyonel): Oturum bittiğinde IP değiştirmek için tetiklenecek servis sağlayıcı API bağlantısı.
- Remark (Opsiyonel): Proxy'yi hatırlatıcı özel bir not/isim.
- Check Proxy: Girilen bilgilerin çalışıp çalışmadığını test eder ve ping süresi, ülke gibi bilgileri gösterir.
Bulk Add (Toplu Proxy Ekleme) Formu:- Proxy Type: Toplu eklenecek proxylerin protokolü.
- Input Format: Kutuya yapıştırılacak proxy listesinin formatı (IP:PORT:USERNAME:PASSWORD gibi).
- Import as IPv6: Listelenen tüm proxyler IPv6 olarak işaretlenir.
- Proxy List: Belirlenen formata uygun olarak her satıra bir proxy yazılacak metin alanı.
- Group Name (Opsiyonel): Eklenen proxyleri belirli bir grup altında toplamak için kullanılır.
Modules (Modüller) Ayarları
Bu sayfada sistemde yüklü olan Mission, Navigator ve Extension modülleri listelenir. Dinamik modül altyapısı sayesinde, eklenti (Extension) geliştiricileri kendi yazdıkları modüllerin arayüz alanlarını kod üzerinden belirleyebilirler. Extension sınıfları, getSettingsUI ve getInfoUI metodları aracılığıyla bu ekranda görünmesini istedikleri form alanlarını (metin, şifre, seçim kutusu vb.) tanımlayabilir.
- Örnek olarak; SMS Doğrulama Eklentileri (5Sim, GrizzlySMS) bu sayfada API Key, Servis Adı, Ülke vb. ayarlarını kullanıcından dinamik olarak talep eder ve kaydedilen bu değerler doğrudan modülün kullanımına sunulur. Mission ve Navigator modülleri ise varsayılan olarak bu sayfada sadece bilgi (Title, Version, Description) amaçlı listelenmekte olup, kendi içlerinde ayar formları barındırmazlar.
Settings (Global Ayarlar)
UWA Free'nun genel davranışlarını kontrol eden ayarlardır:
- User Directory: Kullanıcı modüllerini, dosyalarını, veritabanını ve loglarını içeren ana klasör yolu. Yeni modüller bu klasörün altındaki ilgili dizinlere konulur.
- Session Stagger Delay (ms): Paralel başlatılan oturumlar arasındaki bekleme süresi.
- Session Timeout (ms): Donmuş bir oturumun sonlandırılması için beklenecek maksimum süre.
- Max Concurrent Sessions: Aynı anda çalışabilecek maksimum paralel oturum (tarayıcı) sayısı.
- Max Consecutive Failures: Task'ın "error" statüsüne geçmeden önce tolere edeceği art arda başarısızlık sayısı. Burada değeri 10 yaparsanız mesela, bir task'da ardışık olarak 10 tane başarısız oturum olursa bu task'ın statüsü "error" olarak ayarlanır ve durdurulur. Böylece internet, proxy limiti bitme gibi problemlerde task sonsuza kadar boşuna çalışmaya çabalamaz.
- Page Load Timeout (ms): Bir sayfanın yüklenmesi için beklenecek maksimum süre.
- Navigation Timeout (ms): Bir gezinme eyleminin (örn: tıklama sonrası) tamamlanması için beklenecek süre.
- Navigation State Timeout (ms): Gezinme sonrası sayfa durumunun kararlı hale gelmesini bekleme süresi.
- Element Wait Timeout (ms): Sayfadaki bir elementin (buton, input vb.) görünmesi için beklenecek süre.
- Browser Launch Timeout (ms): Tarayıcının başlatılması için beklenecek maksimum süre.
- Proxy Connection Timeout (ms): Proxy sunucusuna bağlanmak için beklenecek maksimum süre.
- Max Retry Attempts: Çekirdek seviyedeki mekanizmalar için özel bir deneme sayısı (retry) değeri girilmediğinde kullanılan varsayılan (fallback) değerdir.
- Base Delay (ms): Çekirdek seviyedeki mekanizmalar için özel bir bekleme süresi tanımlanmamışsa kullanılan varsayılan (fallback) süredir. Yeniden deneme girişimleri arasında beklenecek temel gecikmeyi belirler.
- Captcha Challenge Timeout (ms): Tek bir Captcha çözüm girişimi için beklenecek süre.
- Captcha Detection Interval (ms): Sayfada Captcha olup olmadığını kontrol etme aralığı.
Not: Captha Handler şu anda çekirdek seviyede sadece Cloudflare Turnstile destekler. Dileyen extensions olarak kendi captha solver modüllerini yazabilir.
------------------------------
Herhangi bir yapay zekâya yeni bir modül nasıl yazdıracağız?
Bunun için öncelikle gerekli selektörlere sahip olmanız lazım, şimdi size selektör bulmanın kolay yolunu bir örnek ile uygulamalı olarak anlatacağım, yazdırmak istediğimiz bir mission modülü olsun ve görevi
https://tests.uwas.dev/behaviors.html şu sayfada form doldurmak olsun.
https://tests.uwas.dev/behaviors.html adresine gidin
formdaki Name yazma kısmına sağ tıklayıp "İNCELE" seçeneğine tıklayın.
İncele seçeneğine tıkladığınızda Developer Tools açılmış olacak ve Name yazma alanı elementi zaten seçili olarak karşınıza gelecek: <input type="name" id="name" name="name" placeholder="For formFocusName">
Developer Tools'da bu elementin üstüne sağ tıklayın ve Copy ve ardından Selector seçeneği ile selektörü kopyalayıp bir yere kaydedin, elinizde şöyle bir selector olacak: #name
Artık isim yazma alanının selektörüne sahipsiniz, aynı işlemleri Surname, Email, Comment ve Send butonu için de yapın.
Şimdi elimizde şu selektörler var:
Name alanı için : #name
Surname alanı için: #surname
Email alanı için : #email
Comment alanı için: #comment
Send butonu için: #test-form > input[type=submit]:nth-child(9)
Şimdi yapay zekâya zaten yazılım ile hazır gelen ve User C:Users/SIZIN_KULLANICI_ADINIZ/AppDataLocal/UWA-User/missions içinde yer alan example-mission.js'nin tüm kodlarını örnek olarak verin ve şu promptu yazın:
senden example-mission'u örnek alarak aşağıdaki işlemleri yapan bir mission modülü yazmanı istiyorum:
- random mousemove yap
- random scroll yap
- #name tıkla
- #name alanına "John" ismini 0-1 yazım hatası ile yaz
- #surname selektörüne tıkla
- #surname alanına "John" ismini 0-1 yazım hatası ile yaz
- #email selektörüne tıkla
- #email selektörüne test@testmail.com eposta adresini 0-2 yazım hatası ile yaz
- #comment selektörüne tıkla
- #comment selektörüne şu metni 0-4 yazım hatası ile "merhaba ben John Doe, benimle iletişime geçebilir misiniz rica etsem, numaram 012345677, teşekkür ederim" metnini yaz.
- #test-form > input[type=submit]:nth-child(9) selektörlü send butonuna tıkla ve 2-4 saniye arası rastgele bekle.
- "Success! The button was clicked." mesajını kontrol et eğer var ise görevi başarıyla tamamla.
Not: tıklama işlemlerinde hover + wait gibi önsel insansı davranışlar eklemeyi unutma!
Arkadaşlar, bir bug görürseniz ya da beceremediğiniz bir nokta olursa konu altından bilgi verirseniz hızlı şekilde yardımcı olmaya çalışırız. Github'da yıldızlayanlara şimdiden teşekkür ederiz. Arkadaşlar, "Google Hit Botu, Youtube izleme botu, İnstagram hit botu, X (Twitter) Botu, Google Haritalar Botu, Trendyol Botu, Hepsiburada Botu" olarak kullanabilirmiyim sorularına peşin cevap verelim, örnek modül anlatımlarına sadık kalarak yazdıracağınız tek sayfa modül ile herşeyin botu olarak kullanabilirsiniz. Şu anda içinde zaten Google Search Navigator modülü vardır, yani Google Hit Botu olarak şu anda bile, hiç bir ek modül yazmadan kullanabilirsiniz.
EĞER MODÜL YAZDIRIRKEN BAŞARISIZ OLURSANIZ KULLANICI DİZİNİNİN İÇERİSİNDEKİ logs DİZİNİNDE BULUNAN SON TARİHLİ LOGUN HATA İLE İLGİLİ BÖLÜMLERİNİ YAPAY ZEKAYA ATIN, HATAYI ANLAYIP ÇÖZECEKTİR. KULLANICI DİZİNİ VARSAYILAN OLARAK ŞURADA OLUŞUR: "C:UsersSİZİN_KULLANICI_ADINIZAppDataLocalUWA-User" (Uygulamada Settings sayfasında görebilir ve değiştirebilirsiniz). BU DİZİN ALTINDAKİ logs DİZİNİNDE LOGLARI BULABİLİRSİNİZ. 11.05.2026 Güncelleme: Çalışan Youtube Arama navigator modülü ile Youtube Video izleme mission modül örnekleri eklendi paket içine. 14.05.2026 Güncelleme: "Trendyol Sepete Ekle" misison modülü eklendi: [https://www.r10.net/1090987482-post23.html] R10 Üyeleri UWA Free Hakkında Ne Diyor?