Jump to content
  • Kaydol

Önerilen Mesajlar

@SexClub'dan Alıntıdır.

Fonksiyonlar düzgün işliyor yapmanız gereken tek şey güvenliği etkisiz hale getirmek ve bunları uygulamak.

Güvenliği kendiniz disable etmeniz gerekli.

 

Oyuna Bağlantı sağladıktan sonra yapılacak.

KO_PTR_CHR = ReadLong(&H45220E)KO_PTR_PKT = ReadLong(&H4529FD)
KO_SND_FNC = createSNDFNC

Dim sndCall As Long
sndCall = getCallAddress(&H49FC67, ReadLong(&H49FC67 + 1))
InjectPatch sndCall, "E9" & AlignDWORD(getCallDiff(sndCall, KO_SND_FNC))

Gerekli Fonksiyonlar.

 
Public Function getCallAddress(Source As Long, Diff As Long) As Long
getCallAddress = Diff + Source + 5
End Function
Kod:Public Function getCallDiff(Source As Long, Destination As Long) As Long
Dim Diff As Long
Diff = 0
If Source > Destination Then
Diff = Source - Destination
If Diff > 0 Then
getCallDiff = &HFFFFFFFB - Diff
End If
Else
getCallDiff = Destination - Source - 5
End If
End Function
Public Function InjectPatch(addr As Long, pstr As String)
'// SexClub » 23.02.2011 18.22
Dim pbytes() As Byte
Hex2Byte pstr, pbytes
WriteProcessMem KO_HANDLE, addr, pbytes(LBound(pbytes)), UBound(pbytes) - LBound(pbytes) + 1, 0&
End Function

Fake sndfnc'deki apileri ve fonksiyon adreslerini hazırlayan fonksiyon.

 
Public Function setAddress() As Long
Dim m As Long
m = VirtualAllocEx(KO_HANDLE, 0, 1024, MEM_COMMIT, PAGE_READWRITE)
If m = 0 Then Exit Function
InjectPatch m, AlignDWORD(&H5EE460)
InjectPatch m + 4, AlignDWORD(&H5EE570)
InjectPatch m + 8, AlignDWORD(&H450890)
InjectPatch m + 12, AlignDWORD(FindModuleHandle("Ws2_32.dll") + &H2D8B)
InjectPatch m + 16, AlignDWORD(FindModuleHandle("Ws2_32.dll") + &H6F01)
InjectPatch m + 20, AlignDWORD(GetProcAddress(GetModuleHandle("kernel32.dll"), "GetLastError"))
InjectPatch m + 24, AlignDWORD(&H44A330)
InjectPatch m + 28, AlignDWORD(GetProcAddress(GetModuleHandle("user32.dll"), "PostQuitMessage"))
InjectPatch m + 32, AlignDWORD(&H6713A0)
setAddress = m
End Function

Fake Send Fonksiyonu. 

 
Public Function createSNDFNC() As Long
Dim m As Long, mSet As Long
mSet = setAddress
m = VirtualAllocEx(KO_HANDLE, 0, 1024, MEM_COMMIT, PAGE_READWRITE)
If m = 0 Then Exit Function
InjectPatch m + 10, "6AFF68BB60680064A100000000506489250000000081EC14030000578BF9897C24048B879400040085C00F8450010000837F04FF0F84460100008B87200004000F843A0100008B873800040085C0EB386848416D008D4C241C" & _
"FF15" & AlignDWORD(mSet) & _
"8B873C0004008B8C242C0300008B9424280300005051528D4C2424" & _
"FF15" & AlignDWORD(mSet + 4) & _
"8B8F3C000400EB0E8B84242C0300008B8C24280300005355566A0151508D4C2424" & _
"FF15" & AlignDWORD(mSet + 8) & _
"8B6C241C8B7424206834B80000C7842430030000000000008D45068D5F2089442418" & _
"FF15" & AlignDWORD(mSet + 12) & _
"66890383C3028BCD68B834000066892B83C3028BD18BFBC1E902F3A58BCA03DD83E103F3A4" & _
"FF15" & AlignDWORD(mSet + 12) & _
"8B7424148B7C241066890333DB85F67E438D4720" & _
"8B7C24106A0056508B470450" & _
"FF15" & AlignDWORD(mSet + 16) & _
"83F8FF740C85C0740203D83BDE7CDCEB1D" & _
"FF15" & AlignDWORD(mSet + 20) & _
"506854416D00" & _
"FF15" & AlignDWORD(mSet + 24) & _
"83C4086AFF" & _
"FF15" & AlignDWORD(mSet + 28) & _
"8B9F600004008B4C242003DE51899F60000400C7842430030000FFFFFFFFC744241CC03F6A00" & _
"FF15" & AlignDWORD(mSet + 32) & _
"83C4045E5D5B8B8C24180300005F64890D0000000081C420030000C20800"
createSNDFNC = m + 10
End Function

SendPacket.

Function SendPackets(pPacket() As Byte)
Dim psize As Long
Dim pCode() As Byte

psize = UBound(pPacket) - LBound(pPacket) + 1
If BytesAddr = 0 Then
BytesAddr = VirtualAllocEx(KO_HANDLE, 0, 1024, MEM_COMMIT, PAGE_READWRITE)
End If
If BytesAddr <> 0 Then
WriteByteArray BytesAddr, pPacket, psize
Hex2Byte "608B0D" & AlignDWORD(KO_PTR_PKT) & "68" & AlignDWORD(psize) & "68" & AlignDWORD(BytesAddr) & "BF" & AlignDWORD(KO_SND_FNC) & "FFD761C3", pCode
ExecuteRemoteCode pCode, True
End If
VirtualFreeEx KO_HANDLE, BytesAddr, 0, MEM_RELEASE&
End Function

 

Yorum bağlantısı
Sitelerde Paylaş

  • 1 year later...
Misafir
Bu konu kapalıdır ama konuya cevap yazmaya yetkiniz var görünüyor.
 Share

×
×
  • Yeni Oluştur...