Sosyal açıldı! Bir göz at → Hemen gir →

OTOLOGİN MAKROSU ?

AdamKO

KY Kıdemli Üye
KAYIT
27 Kas 2024
Mesajlar
193
Tepki puanı
0
Çalışan basit bir oto login makrosudur.

win7 win10 da çalışır olması lazım win11 test edilmedi.
Interception gereklidir. Yüklü değilse çalışmaz.
1x satışı yada ürün desteği yoktur, çünkü satış değildir.
Bronz pre yada normal premiumlarda 1 ay sonra çalışmayacaktır, çünkü captcha desteği kapanacaktır.
Her karakter desteklenmemektedir.
Spoyler: desteklenen karakterler
"0": 0x30, "1": 0x31, "2": 0x32, "3": 0x33, "4": 0x34, "5": 0x35, "6": 0x36, "7": 0x37, "8": 0x38, "9": 0x39,
"a": 0x41, "b": 0x42, "c": 0x43, "d": 0x44, "e": 0x45, "f": 0x46, "g": 0x47, "h": 0x48, "i": 0xDE,
"j": 0x4A, "k": 0x4B, "l": 0x4C, "m": 0x4D, "n": 0x4E, "o": 0x4F, "p": 0x50,
"q": 0x51, "r": 0x52, "s": 0x53, "t": 0x54, "u": 0x55, "v": 0x56, "w": 0x57,
"x": 0x58, "y": 0x59, "z": 0x5A,
"ı": 0x49, # 'ı'
"ğ": 0xDB, # 'ğ'
"ü": 0xDD, # 'ü'
"ş": 0xBA, # 'ş'
"ö": 0xBF, # 'ö'de
"ç": 0xDC, # 'ç'
",": 0xBC,
".": 0xBE,
"!": (SHIFT_FLAG << 8) | 0x31, # Shift + '1'
"$": (ALTGR_FLAG << 8) | 0x34, # ALTgr + '4'
şifrenizde desteklenmeyen karakter varsa yanlış girer. (Tembellikten eklemedim.)
ScanCode ile çalışır o yüzden windowsda Klavye TRQ seçili olmalı.

Dosyayı indir otologier zip
dosya.co

Total Virüs:

VirusTotal

72 taramadan 19 ü virüslü yada trojanlı diyor ancak captcha resmi hariç hiçbir yere dosya göndermiyor :D (use at caution).

Kullanım:
OTP bilgisayara kurulu olmalı, eğer gireceğiniz serverde otp sormuyorsa yada hesbaınızda otp aktif değilse önemi yok.
C:\Program Files (x86)\AnyOTPSetup klasöründe SpoofInfo.txt dosyası olmalı.
isim şifre girilir.
server kanal karakter sırası seçilir. kendisi girecektir.
Makro videosu
(guisiz versiyonu)
NOT: Videoda mouse hareketleri insan eli mouseyi hareket ettiyormuş gibi(relative hareket) çalışır. Paylaşımdaki programda mouse hareketleri ışınlanarak çalışır.
NOT3: Görüntü işlemeyle çalışır, mainpng klasöründe gereksiz resimler mevcuttur ayıklamaya üşendim.
NOT4: Görselleri görmüyorsa, gelişmiş sistem ayarlarından görüntü efekti kısmında en iyi performans yerine diğerini seçip deneyiniz.
Şifreyi kaydet dediğinizde :

C:\Users\isim\ko-ayarlar.json a kaydeder.

Kaynak kodu paylaşıma açık değildir. Sadece giriş sürecini gösteren pythonda bir classa ait kodlar vardır.
Spoyler: kısmi kod
Python:
Kod:
class Login:
    def __init__(self, name=None, password=None,server=None,char=1,otp=None):
        self.name = name
        self.password = password
        self.driver = InputDriver()
        self.server = server
        self.char = char
        self.otp = otp

    def themepass(self):
        kom.client_click(self.driver, 0.5, 0.5, 0.3)
        time.sleep(0.2)
        self.driver.nameddown('esc')
        time.sleep(0.3)
        self.driver.namedup('esc')

    def _captcha(self):
        gizli


    def start_abas(self):
        if sonuc := resmi_bultr_v2('mainpng/Lstart1.png'):
            self.driver.leftclick(0.2, sonuc[0], sonuc[1], duration=0.05)
            time.sleep(1)
            self.driver.leftclick(0.2, sonuc[0], sonuc[1], duration=0.05)
            return self.driver.leftclick(0.2, sonuc[0], sonuc[1], duration=0.05)

    def login_id_pw(self):
        for _ in range(20):
            if resmi_bultr_v2('mainpng/login.png'):
                self.driver.type(self.name)
                self.driver.nameddown('tab')
                time.sleep(0.3)
                self.driver.namedup('tab')
                self.driver.type(self.password)
                self.driver.nameddown('enter')
                time.sleep(0.3)
                self.driver.namedup('enter')
                break
            else:
                time.sleep(0.3)
    def login_otp(self):
        for _ in range(10):
            if resmi_bultr_v2('mainpng/OTP.png'):

                generator = OTPGenerator()
                generator.otp_pass = self.otp
                generator.custom_path = "C:\\Program Files (x86)\\AnyOTPSetup\\SpoofInfo.txt"
                generator.use_custom_otp = True
                OTPKOD = generator.generate_otp()


                # OTPKOD = otp.main()
                self.driver.type(OTPKOD)
                self.driver.nameddown('enter')
                time.sleep(0.3)
                self.driver.namedup('enter')
                break
            else:
                if resmi_bultr_v2('mainpng/notice1.png'):
                    self.driver.nameddown('enter')
                    time.sleep(0.2)
                    self.driver.namedup('enter')
                    break
                time.sleep(0.3)

    def login_notice1(self):
        for _ in range(6):
            if resmi_bultr_v2('mainpng/notice1.png'):
                print('notice1found')
                self.driver.nameddown('enter')
                time.sleep(0.2)
                self.driver.namedup('enter')
                break
            else:
                time.sleep(0.5)

    def login_select_server(self):
        if not resmi_bultr_v2('mainpng/selectserver.png'):
            return
        server_name = self.server.lower().strip().replace(" ", "")  # örn: "dryds3" → "dryds3"
        # Üst grup adı = sadece harfler (örn. dryds3 → dryds)
        import re
        match = re.match(r"([a-z]+)", server_name)
        base_name = match.group(1) if match else "dryads"
        # Eşleştirme haritası: yazım → görsel
        visual_map = {
            "dryds": "Dryads",
            "agartha": "Agartha",
            "destan": "Destan",
            "felis": "Felis",
            "minark": "Minark",
            "oreads": "Oreads",
            "pandora": "Pandora",
            "zero": "Zero"
        }

        base_img = visual_map.get(base_name, "Dryads")
        upper_images = [f'mainpng/selectserver/{base_img}.png']
        if os.path.exists(f'mainpng/selectserver/{base_img}v2.png'):
            upper_images.append(f'mainpng/selectserver/{base_img}v2.png')

        # Üst gruba tıkla
        loc = resmi_bultr_v2(upper_images)
        self.driver.leftclick(0.2, loc[0][0], loc[0][1], duration=0.05)
        time.sleep(0.5)

        # Alt kanal resmi (örn: dryads3.png, pandora4.png vs)
        alt_img = f'mainpng/selectserver/{server_name}.png'
        for _ in range(5):
            if altloc := resmi_bultr_v2(alt_img):
                self.driver.leftclick(0.2, altloc[0], altloc[1], duration=0.05)
                time.sleep(0.2)
                self.driver.nameddown('enter')
                time.sleep(0.15)
                self.driver.namedup('enter')
                break
            else:
                time.sleep(0.5)

    def login_captchatest(self):

        if resmi_bultr_v2(['mainpng/captchatype.png','mainpng/captchatype2.png'])==None:
            return
        else:
            if exclaim:=resmi_bultr_v2('mainpng/captchatype2.png'):
                self.driver.leftclick(0.2,exclaim[0], exclaim[1], duration=0.05)
                time.sleep(0.4)
            return self.login_captcha()

    def login_captcha(self):
        while True:
            for deneme in range(6):
                if resmi_bultr_v2('mainpng/captchatype.png'):
                    cevap = self._captcha()
                    confirmloc = resmi_bultr_v2('mainpng/Confirm.png')
                    self.driver.leftclick(0.2, confirmloc[0] - 60, confirmloc[1], duration=0.05)
                    time.sleep(0.2)
                    self.driver.type(cevap)
                    time.sleep(0.2)
                    self.driver.leftclick(0.2, confirmloc[0], confirmloc[1], duration=0.05)
                    time.sleep(0.5)

                    captcha_retry = False

                    for _ in range(3):
                        if resmi_bultr_v2('mainpng/captchafailed.png'):
                            self.driver.nameddown('enter')
                            time.sleep(0.15)
                            self.driver.namedup('enter')

                            for _ in range(3):
                                if captchare:=resmi_bultr_v2('mainpng/captchare.png'):
                                    # captchare = resmi_bultr_v2(['mainpng/captchare.png'])
                                    self.driver.leftclick(0.2, captchare[0], captchare[1])
                                    time.sleep(1)
                                    captcha_retry = True
                                    break
                                else:
                                    time.sleep(0.5)
                            if captcha_retry:
                                break
                        else:
                            time.sleep(0.2)

                    if captcha_retry:
                        break

                    return
                else:
                    time.sleep(1)

                if deneme == 5:
                    print('no captcha detected')
                    return
            continue

    def login_start(self):
        for _ in range(12):
            if resmi_bultr_v2('mainpng/StartGame.png'):
                for _ in range(self.char - 1):
                    self.driver.nameddown('left')
                    time.sleep(0.15)
                    self.driver.namedup('left')
                    for _ in range(10):
                        if resmi_bultr_v2('mainpng/StartGame.png'):
                            break
                        else:
                            time.sleep(0.5)
                self.driver.nameddown('enter')
                time.sleep(0.15)
                self.driver.namedup('enter')
                break
            else:
                time.sleep(0.5)

    def login_after_clean(self):
        for _ in range(100):
            if resmi_bultr_v2('mainpng/Moradon.png'):
                print('logged in')
                break
            else:
                time.sleep(1)

        for _ in range(10):
            if resmi_bultr_v2('mainpng/notice2.png'):
                ixy = resmi_bultr_v2('mainpng/notice2close.png')
                self.driver.leftclick(0.2, ixy[0], ixy[1])
                break
            else:
                time.sleep(0.1)

        for _ in range(10):
            if resmi_bultr_v2('mainpng/mail.png'):
                jxy = resmi_bultr_v2('mainpng/mailconfirm.png')
                self.driver.leftclick(0.2, jxy[0], jxy[1])
                break
            else:
                time.sleep(0.1)

        for h in range(7):
            self.driver.wheel_down()
            time.sleep((h + 1) / 20)

EkstraNOT: Oyunagir butonuna birden fazla basmayın. ilk bastığınızda çalışmazsa kapatıp açın.
Ekstranot2: C:\NTTGame\KnightOnlineEn\Launcher.exe burada olması gerekiyor.
ekstraNOT3: win8 de şimdilik çalışmıyor gibi.
YENİ LİNK :

VirusTotal

20/72 use at caution. Önceki exeden farkı klavye ve mouse cihazını elle seçebilir hale getirilidi.( Daha önce 1 ve 11 defaulttu, sanallarda 0 seçmek gerekebiliyor)

Dosyayı indir otologierv2 rar
dosya.co
 
Anasayfa Kayıt ol Giriş yap
Üst Alt