İlk Önce FreeBasic googleden bulup
indiriyoruz..Bilgiseyarımıza kuruyoruz..
Bi not Defteri Açıp içine bu
kodu yapıstırıyoruz...
Kod:
#Include "windows.bi"
SetConsoleTitle "ByOner Multi & APR Fixer"
Color 0, 2
Print "############ ByOner MultiClient v1839 ############"
Print ""
sleep (500)
Dim MutexName As String * 20
Dim M As String * 20
Dim AffinityAddress As DWORD
Dim ExitCode As DWORD
Sub OpcodePatch(hProcess As Handle, StartAddress As DWORD, Opcodes As String)
Dim Patch As DWORD
Dim PatchValue As DWORD
For Patch = 1 To Len(Opcodes) Step 2
PatchValue = Val("&H" + Mid(Opcodes, Patch, 2))
WriteProcessMemory(hProcess, StartAddress + (Patch \ 2), @PatchValue, 1, NULL)
Next
End Sub
Function InjectDLL(hProcess As Handle, dllpath As String) As HMODULE
Var kernel32 = GetModuleHandle("Kernel32")
Var addr = VirtualAllocEx(hProcess, Null, Len(dllpath) + 1, MEM_COMMIT, PAGE_READWRITE)
If addr = NULL Then Return NULL
WriteProcessMemory(hProcess, addr, Strptr(dllpath), Len(dllpath) + 1, NULL)
Var hThread = CreateRemoteThread(hProcess, Null, 0, GetProcAddress(kernel32, "LoadLibraryA"), addr, Null, Null)
VirtualFreeEx(hProcess, addr, Len(dllpath) + 1, MEM_RELEASE)
If hThread = NULL Then Return NULL
WaitForSingleObject(hThread, INFINITE)
Dim hDllModule As HMODULE
GetExitCodeThread(hThread, @hDllModule)
If hDllModule = NULL Then Return NULL
CloseHandle (hThread)
Return hDllModule
End Function
Var shlwapi = LoadLibrary("shlwapi")
Dim IsOS As Function(As Dword) As BOOL = GetProcAddress(shlwapi, 437)
#Define OS_NT 1
If IsOS = NULL OrElse IsOS(OS_NT) = FALSE Then
Print "operating system not supported"
sleep
FreeLibrary (shlwapi)
End
End If
FreeLibrary (shlwapi)
Color 10, 0
input "Client Isim Giriniz :",M
Print ""
Dim pi As PROCESS_INFORMATION
Dim si As STARTUPINFO
If CreateProcess( NULL, "knightonline.exe usa_knightonline", NULL, NULL, FALSE, NULL, NULL, NULL, @si, @pi ) = FALSE Then
sleep
End
End If
Var hDllModule = InjectDLL(pi.hProcess, "Multi.dll")
If hDllModule = Null Then
sleep
End
End If
While MutexName <> "Knight OnLine Client"
ReadProcessMemory(pi.hProcess, &H00A58F04, @MutexName, 20, NULL)
GetExitCodeProcess(pi.hProcess, @ExitCode)
If ExitCode <> STILL_ACTIVE Then End
Wend
MutexName = Str(pi.dwProcessId)
WriteProcessMemory(pi.hProcess, &H00A58F04, @M, 20, NULL)
AffinityAddress = GetProcAddress(GetModuleHandle("kernel32.dll"), "SetThreadAffinityMask")
OpcodePatch (pi.hProcess, AffinityAddress, "C20800")
' close handles
CloseHandle (pi.hProcess)
CloseHandle (pi.hThread)
Color 10, 0
Print "Oyun Aciliyor..."
Print ""
Color 0, 2
Print "##### ByOner MultiClient Kullandiginiz Icin Tesekkurler #####"
farklı kaydet diyoruz..
"multi.bas" koyuyoruz..
daha sonra bu modulu
freebasic yüklü oldugu klasöre atıyoruz..
"start_shell" komutunu açıyoruz ve
içine şunu yazıyoruz..
Kod:
fbc multi.bas
ve
exemiz olustu..bunu ko klasörüne atıyoruz ve oyuna ordan
giriyoruz..
dikkat :::
kırmızı olan yerler multi pointeridir her
patch güncellenmesi gerekir aksi taktirde güncellenmesse çalısmaz ban
verebilir..
gerekli dll'ler :::
[Linkleri görebilmek için üye olun veya giriş yapın.]
2 dll yi indirip
hem ko klasörüne hemde freebasic klasörüne kopyalıyoruz..
bu kdr anlatım
bitmiştir.multiniz hayırlı olsun..
sleep (10000)
indiriyoruz..Bilgiseyarımıza kuruyoruz..
Bi not Defteri Açıp içine bu
kodu yapıstırıyoruz...
Kod:
#Include "windows.bi"
SetConsoleTitle "ByOner Multi & APR Fixer"
Color 0, 2
Print "############ ByOner MultiClient v1839 ############"
Print ""
sleep (500)
Dim MutexName As String * 20
Dim M As String * 20
Dim AffinityAddress As DWORD
Dim ExitCode As DWORD
Sub OpcodePatch(hProcess As Handle, StartAddress As DWORD, Opcodes As String)
Dim Patch As DWORD
Dim PatchValue As DWORD
For Patch = 1 To Len(Opcodes) Step 2
PatchValue = Val("&H" + Mid(Opcodes, Patch, 2))
WriteProcessMemory(hProcess, StartAddress + (Patch \ 2), @PatchValue, 1, NULL)
Next
End Sub
Function InjectDLL(hProcess As Handle, dllpath As String) As HMODULE
Var kernel32 = GetModuleHandle("Kernel32")
Var addr = VirtualAllocEx(hProcess, Null, Len(dllpath) + 1, MEM_COMMIT, PAGE_READWRITE)
If addr = NULL Then Return NULL
WriteProcessMemory(hProcess, addr, Strptr(dllpath), Len(dllpath) + 1, NULL)
Var hThread = CreateRemoteThread(hProcess, Null, 0, GetProcAddress(kernel32, "LoadLibraryA"), addr, Null, Null)
VirtualFreeEx(hProcess, addr, Len(dllpath) + 1, MEM_RELEASE)
If hThread = NULL Then Return NULL
WaitForSingleObject(hThread, INFINITE)
Dim hDllModule As HMODULE
GetExitCodeThread(hThread, @hDllModule)
If hDllModule = NULL Then Return NULL
CloseHandle (hThread)
Return hDllModule
End Function
Var shlwapi = LoadLibrary("shlwapi")
Dim IsOS As Function(As Dword) As BOOL = GetProcAddress(shlwapi, 437)
#Define OS_NT 1
If IsOS = NULL OrElse IsOS(OS_NT) = FALSE Then
Print "operating system not supported"
sleep
FreeLibrary (shlwapi)
End
End If
FreeLibrary (shlwapi)
Color 10, 0
input "Client Isim Giriniz :",M
Print ""
Dim pi As PROCESS_INFORMATION
Dim si As STARTUPINFO
If CreateProcess( NULL, "knightonline.exe usa_knightonline", NULL, NULL, FALSE, NULL, NULL, NULL, @si, @pi ) = FALSE Then
sleep
End
End If
Var hDllModule = InjectDLL(pi.hProcess, "Multi.dll")
If hDllModule = Null Then
sleep
End
End If
While MutexName <> "Knight OnLine Client"
ReadProcessMemory(pi.hProcess, &H00A58F04, @MutexName, 20, NULL)
GetExitCodeProcess(pi.hProcess, @ExitCode)
If ExitCode <> STILL_ACTIVE Then End
Wend
MutexName = Str(pi.dwProcessId)
WriteProcessMemory(pi.hProcess, &H00A58F04, @M, 20, NULL)
AffinityAddress = GetProcAddress(GetModuleHandle("kernel32.dll"), "SetThreadAffinityMask")
OpcodePatch (pi.hProcess, AffinityAddress, "C20800")
' close handles
CloseHandle (pi.hProcess)
CloseHandle (pi.hThread)
Color 10, 0
Print "Oyun Aciliyor..."
Print ""
Color 0, 2
Print "##### ByOner MultiClient Kullandiginiz Icin Tesekkurler #####"
farklı kaydet diyoruz..
"multi.bas" koyuyoruz..
daha sonra bu modulu
freebasic yüklü oldugu klasöre atıyoruz..
"start_shell" komutunu açıyoruz ve
içine şunu yazıyoruz..
Kod:
fbc multi.bas
ve
exemiz olustu..bunu ko klasörüne atıyoruz ve oyuna ordan
giriyoruz..
dikkat :::
kırmızı olan yerler multi pointeridir her
patch güncellenmesi gerekir aksi taktirde güncellenmesse çalısmaz ban
verebilir..
gerekli dll'ler :::
[Linkleri görebilmek için üye olun veya giriş yapın.]
2 dll yi indirip
hem ko klasörüne hemde freebasic klasörüne kopyalıyoruz..
bu kdr anlatım
bitmiştir.multiniz hayırlı olsun..
sleep (10000)