Skip to content

Instantly share code, notes, and snippets.

View trkyshorty's full-sized avatar
🏠
Working from home

Türkay Tanrikulu trkyshorty

🏠
Working from home
View GitHub Profile
@trkyshorty
trkyshorty / Readme.md
Last active May 30, 2024 00:36
KnightOnline-VMWare-Multiclient

KnightOnline Code Protection amaçlı Themida kullanmakta aynı zamanda Themidanın sağladığı Virtual Machine Protector özelliğini kullanmaktalar bu istemcinin Sanal Makineler üzerinde çalışmasını engelliyor ancak Bypass edilmesi kolay aşağıdaki adımları uygulayarak VMWare üzerinden sanal makine oluşturarak MultiClient kullanabilirsiniz

Bu işlem KnightOnline.exe üzerinde herhangi bir müdahale oluşturmamaktadır bu nedenle TPT olarak adlandırılan cezaya takılmıyorsunuz XIGNCode normal şekilde çalışmaya devam eder Sanal Makine üzerinde kendi bilgisayarınızda olduğu gibi KnightOnline çalıştırmanız yeterlidir.

1. Adım

VMWare Workstation üzerinden kullanacağınız Windows Sanal Makineye sağ tıklayıp "Open VM Directory" seçeneğine tıklayın. Açılan klasör penceresinde .vmx uzantılı dosyayı metin editörüyle açıp aşağıdaki parametreleri ekleyin

monitor_control.restrict_backdoor = "TRUE"
alloc(ko_rota_start_fnc, 512)
createthread(ko_rota_start_fnc)
ko_rota_start_fnc:
mov ecx,[00EFE228] //KO_PTR_CHR
mov [eax], (float)807 //X
mov [eax+4],0 //Z
mov [eax+8],(float)460 //y
push eax
call 0056A1D0 //KO_ROTA_START
alloc(ko_rota_stop_fnc, 512)
createthread(ko_rota_stop_fnc)
ko_rota_stop_fnc:
mov ecx,[00EFE228] //KO_PTR_CHR
call 00569B50 //KO_ROTA_STOP
ret
//KO_ROTA_STOP - 83EC08535556578BF98BAFQQ39AFQQ8DB7
import ctypes
from mem_edit import Process
KO_PTR_CHR = 0x10131C0
KO_OFF_MAX_HP = 0x6B8
pid = Process.get_pid_by_name('KnightOnLine.exe')
with Process.open_process(pid) as p:
KO_CHR_ADDR = p.read_memory(KO_PTR_CHR, ctypes.c_int())
CHARACTER_MAX_HP = p.read_memory(KO_CHR_ADDR.value + KO_OFF_MAX_HP, ctypes.c_int())
using System;
using System.Threading;
private void MyThread()
{
try
{
while (true)
{
//Thread içerisinde ne çalışacaksa buraya
public Vector3 MoveTowards(Vector3 current, Vector3 target)
{
float maxDistanceDelta = 6.75f;
switch (MySelf.Speed)
{
case 67: //Sprint - Swift
maxDistanceDelta = 10.125f;
break;
case 90: //Light Feet
@trkyshorty
trkyshorty / ko-aes.txt
Last active November 29, 2023 00:29
Knight Online AES IV & Private Key
// IV HEX: : 324EAA58BCB3AEE36BC74C56364734F2
// PRIVATE HEX : 871FE52378A188AD22CF5EAA5B181E67
// KEY : 0x2B 'den gelen key var - > aa5515002b490c103656494a4142555251435739475435480055aa - > KEY: 3656494a414255525143573947543548
private readonly byte[] InitialVector = { 0x32, 0x4E, 0xAA, 0x58, 0xBC, 0xB3, 0xAE, 0xE3, 0x6B, 0xC7, 0x4C, 0x56, 0x36, 0x47, 0x34, 0xF2 };
private readonly byte[] PrivateKey = { 0x87, 0x1F, 0xE5, 0x23, 0x78, 0xA1, 0x88, 0xAD, 0x22, 0xCF, 0x5E, 0xAA, 0x5B, 0x18, 0x1E, 0x67 };
@trkyshorty
trkyshorty / ko_snd_fnc.txt
Created November 17, 2022 10:45
Knight Online Send Packet
alloc(ko_packet,512)
alloc(ko_send_packet, 512)
ko_packet:
dec eax //4800 Town Packet (String to Byte)
ko_send_packet:
mov ecx,[01005074] //KO_PTR_PKT
push 00000002 //Packet Length
push ko_packet //Packet Address
@trkyshorty
trkyshorty / ko_login.txt
Created November 17, 2022 10:46
ko login function
alloc(ko_login, 512)
ko_login:
pushad
mov edx,[0100429C] //pointer
mov ecx,[edx+000000A8] //offset
mov eax,[ecx]
mov esi,[010050B8] // idbase
mov esi,[esi+2C]
mov esi,[esi+110]
@trkyshorty
trkyshorty / ko_button_left.txt
Created November 17, 2022 10:47
Character Select Left Button
alloc(ko_button_left, 512)
ko_button_left:
pushad
mov ecx,[01005098]
call 006BE660
popad
ret
[ENABLE]