Регистрация Главная Пользователи Все разделы прочитаны
Сообщения за день Справка Регистрация

[Auto it] Отправка пакетов

-

Разработка ПО для Perfect World

- Бюро разработчиков Zhyk.Ru: создание ботов, снифферов и прочих программ для Perfect World

Ответ
 
Опции темы
Старый 14.09.2012, 10:10   #1
Заблокирован
 Пехотинец
Аватар для Goooooogle
 
Goooooogle излучает ауруGoooooogle излучает ауруGoooooogle излучает ауруGoooooogle излучает ауруGoooooogle излучает ауруGoooooogle излучает ауру
Регистрация: 12.06.2012
Сообщений: 73
Популярность: 529
Сказал(а) спасибо: 16
Поблагодарили 49 раз(а) в 33 сообщениях
 
По умолчанию [Auto it] Отправка пакетов

Всем привет сегодня я перевел статью об отправке пакетов
[Ссылки могут видеть только зарегистрированные пользователи. ]
Например некоторые функции можно использовать при отправке пакетов (например в ботах или скиллсендерах)
Код:
;////Код для отправки пакетов

#include <GUIButton.au3>
#include <GUIToolbar.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <NomadMemory.au3>
#include <Array.au3>

Global $kernel32 = DllOpen('kernel32.dll')
Global $pid = ProcessExists('elementclient.exe')
global $realBaseAddress = 0x0098657C
global $sendPacketFunction = 0x005BD7B0

;//Сброс тагерта
sendDeselectPacket($pid)

DllClose($kernel32)


Func selectTarget($targetId, $pid)
    ;//выбор NPC/Mob/Player по id тагерта
    local $packet, $packetSize
    
    $packet = '0200'
    $packet &= _hex($targetId)
    $packetSize = 6
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func regularAttack($afterSkill, $pid)
    ;//начать обычную атаку
    ;//начать обычную атаку после запуска скила
    local $packet, $packetSize
    
    $packet = '0300'
    $packet &= _hex($afterSkill, 2)
    $packetSize = 3
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func rezToTown($pid)
    ;//реснуться в городе после смерти
    local $packet, $packetSize
    
    $packet = '0400'
    $packetSize = 2
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func rezWithScroll($pid)
    ;//реснуться свитком воскрешения
    local $packet, $packetSize
    
    $packet = '0500'
    $packetSize = 2
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func pickUpItem($uniqueItemId, $itemTypeId, $pid)
    ;//Picks up an item. uniqueItemId is the unique id belonging
    ;//to the individual item on the ground. itemTypeId is the id for 
    ;//the type of item it is. This would be the same as the last
    ;//part in the url on pwdatabase. example:
    ;//http://www.pwdatabase.com/pwi/items/3044
    ;//the itemTypeId for gold is 3044.
    
    local $packet, $packetSize
    
    $packet = '0600'
    $packet &= _hex($uniqueItemId)
    $packet &= _hex($itemTypeId)
    $packetSize = 10
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func deselectTarget($pid)
    ;//сброс тагерта
    local $packet, $packetSize
    
    $packet = '0800'
    $packetSize = 2
    
    sendPacket($packet, $packetSize, $pid)
EndFunc



Func swapItemInInv($invIndex1, $invIndex2, $pid)
    ;//Swaps the items in the two given inventory locations
    ;//The index for a standard unexpanded inventory runs from 
    ;//0, top left, to 31, bottom right
    local $packet, $packetSize
    
    $packet = '0C00'
    $packet &= _hex($invIndex1, 2)
    $packet &= _hex($invIndex2, 2)
    $packetSize = 4
    
    sendPacket($packet, $packetSize, $pid)
EndFunc




Func swapEquip($equipIndex1, $equipIndex2, $pid)

    local $packet, $packetSize
    
    $packet = '1000'
    $packet &= _hex($equipIndex1, 2)
    $packet &= _hex($equipIndex2, 2)
    $packetSize = 4
    
    sendPacket($packet, $packetSize, $pid)
EndFunc



Func dropGold($amount, $pid)
    ;//выкинуть денги на пол $ amout количество
    local $packet, $packetSize
    
    $packet = '1400'
    $packet &= _hex($amount)
    $packetSize = 6
    
    sendPacket($packet, $packetSize, $pid)
EndFunc



Func increaseStatsBy($con, $int, $str, $agi, $pid)
    ;//Use this after level up to increase your stats. 
    
    local $packet, $packetSize
    
    $packet = '1600'
    $packet &= _hex($con)
    $packet &= _hex($int)
    $packet &= _hex($str)
    $packet &= _hex($agi)    
    
    $packetSize = 18
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func inviteParty($playerId, $pid)
    ;//Invite playerId to your party.
    local $packet, $packetSize
    
    $packet = '1B00'
    $packet &= _hex($playerId)
    $packetSize = 6
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func acceptPartyInvite($playerId, $partyInviteCounter, $pid)
    ;//Accept an invite from playerId. partyInviteCounter is a counter that
    ;//is kept based on the amount of party invites you've had. See post
    ;//on how to find that value.
    local $packet, $packetSize
    
    $packet = '1C00'
    $packet &= _hex($playerId)
    $packet &= _hex($partyInviteCounter)

    $packetSize = 10
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func refusePartyInvite($playerId, $pid)
    ;//Refuses a party invite from playerId
    local $packet, $packetSize
    
    $packet = '1D00'
    $packet &= _hex($playerId)
    $packetSize = 6
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func leaveParty($pid)
    ;оставить свою пати
    local $packet, $packetSize
    
    $packet = '1E00'
    $packetSize = 2
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func evictFromParty($playerId, $pid)
    ;//кик игрока из пати по его id  
    local $packet, $packetSize
    
    $packet = '1F00'
    $packet &= _hex($playerId)
    $packetSize = 6
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func startNpcDialogue($npcId, $pid)
    ;//открыть окно диалога с нпс

    local $packet, $packetSize
    
    $packet = '2300'
    $packet &= _hex($npcId)
    $packetSize = 6
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func useItem($index, $itemTypeId, $pid, $equip=0)

    local $packet, $packetSize

    $packet = '2800'
    $packet &= _hex($equip, 2)
    $packet &= '01'
    $packet &= _hex($index, 2)
    $packet &= '00'
    $packet &= _hex($itemTypeId)
    
    $packetSize = 10
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func useSkill($skillId, $targetId, $pid)
    ;юзануть скил отлично подходит для скиллсендера
    local $packet, $packetSize

    $packet = '2900'
    $packet &= _hex($skillId)
    $packet &= '0001'
    $packet &= _hex($targetId)
    
    $packetSize = 12
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func cancelAction($pid)
    ;//отменить каст скила
    local $packet, $packetSize

    $packet = '2A00'
    
    $packetSize = 2
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func startMeditating($pid)
    ;//сесть в медитацию
    local $packet, $packetSize

    $packet = '2E00'
    
    $packetSize = 2
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func stopMeditating($pid)
    ;//встать из медитации
    local $packet, $packetSize

    $packet = '2F00'
    
    $packetSize = 2
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func useEmotion($emoteIndex, $pid)
  
    local $packet, $packetSize

    $packet = '3000'
    $packet &= _hex($emoteIndex, 4)
    
    $packetSize = 4
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func beIntimate($pid)
    ;//поцелуй при поддержке на руках
    local $packet, $packetSize

    $packet = '3000'
    $packet &= '1D00'
    
    $packetSize = 4
    
    sendPacket($packet, $packetSize, $pid)
EndFunc



Func swapItemInBank($bankIndex1, $bankIndex2, $pid)
    ;положить итем в банк
    local $packet, $packetSize

    $packet = '3800'
    $packet &= '03'
    $packet &= _hex($bankIndex1, 2)
    $packet &= _hex($bankIndex2, 2)
    
    $packetSize = 5
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func splitStackItemInBank($bankIndexSource, $bankIndexDestination, $amount, $pid)

    local $packet, $packetSize
    
    $packet = '3900'
    $packet &= '03'
    $packet &= _hex($bankIndexSource, 2)
    $packet &= _hex($bankIndexDestination, 2)
    $packet &= _hex($amount, 4)
    
    $packetSize = 7
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func swapItemBankAndInv($bankIndex, $invIndex, $pid)

    local $packet, $packetSize
    
    $packet = '3A00'
    $packet &= '03'
    $packet &= _hex($bankIndex, 2)
    $packet &= _hex($invIndex, 2)
    
    $packetSize = 5
    
    sendPacket($packet, $packetSize, $pid)
EndFunc


Func initiateSettingUpCatShop($pid)
    ;//Starts setting up cat shop. This function is needed
    ;//before setting up the catshop.
    local $packet, $packetSize

    $packet = '5400'
    
    $packetSize = 2
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func toggleFashionDisplay($pid)
    ;//Switches between fashion and regular appearance.
    local $packet, $packetSize

    $packet = '5500'
    
    $packetSize = 2
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func acceptRez($pid)
    ;//принять рес то приста
    local $packet, $packetSize

    $packet = '5700'
    
    $packetSize = 2
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func increaseFlySpeed($start, $pid)
    ;/ускорение на полете
    local $packet, $packetSize

    $packet = '5A00'
    $packet &= _hex($start)
    
    $packetSize = 6
    
    sendPacket($packet, $packetSize, $pid)
EndFunc



Func acceptRequestByMaleToCarryYou($playerId, $pid)
   
    local $packet, $packetSize

    $packet = '6100'
    $packet &= _hex($playerId)
    $packet &= '00000000'

    $packetSize = 10
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func releaseCarryMode($pid)
  
    local $packet, $packetSize

    $packet = '6200'

    $packetSize = 2
    
    sendPacket($packet, $packetSize, $pid)
EndFunc



Func summonPet($petIndex, $pid)
    ;вызов пета
    local $packet, $packetSize

    $packet = '6400'
    $packet &= _hex($petIndex)
    
    $packetSize = 6
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func recallPet($pid)
    ;//убрать пета
    local $packet, $packetSize

    $packet = '6500'
    
    $packetSize = 2
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func setPetMode($petMode, $pid)
    ;//petMode=0 -> ?
    ;//petMode=1 -> атака
    ;//petMode=2 -> защита
    local $packet, $packetSize

    $packet = '6700'
    $packet &= '00000000'
    $packet &= '03000000'
    $packet &= _hex($petMode)
    
    $packetSize = 14
    
    sendPacket($packet, $packetSize, $pid)
EndFunc



Func setPetStop($pid)
   
    local $packet, $packetSize

    $packet = '6700'
    $packet &= '00000000'
    $packet &= '02000000'
    $packet &= '01000000'

    $packetSize = 14
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func setPetAttack($targetId, $pid)
    ;//атаковать петом
    local $packet, $packetSize

    $packet = '6700'
    $packet &= _hex($targetId)
    $packet &= '01'
    $packet &= '00000000'

    $packetSize = 11
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func setPetUseSkill($targetId, $skillId, $pid)
    ;//юзануть скилл пета
    local $packet, $packetSize

    $packet = '6700'
    $packet &= _hex($targetId)
    $packet &= '04000000'
    $packet &= _hex($skillId)
    $packet &= '00'

    $packetSize = 15
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func setPetStandardSkill($skillId, $pid)
    local $packet, $packetSize

    $packet = '6700'
    $packet &= '00000000'
    $packet &= '05000000'
    $packet &= _hex($skillId)

    $packetSize = 14
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func useGenieSkill($skillId,$targetId, $pid)

    local $packet, $packetSize

    $packet = '7400'
    $packet &= _hex($skillId, 4)
    $packet &= '0001'
    $packet &= _hex($targetId)

    $packetSize = 10
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func feedEquippedGenie($invIndex, $amount, $pid)
 
    local $packet, $packetSize

    $packet = '7500'
    $packet &= _hex($invIndex, 2)
    $packet &= _hex($amount)

    $packetSize = 7
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func acceptQuest($questId, $pid)
    ;//получить квест
    local $packet, $packetSize

    $packet = '2500'
    $packet &= '07000000'
    $packet &= '04000000'
    $packet &= _hex($questId)

    $packetSize = 14
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func handInQuest($questId,$optionIndex, $pid)
 
    local $packet, $packetSize

    $packet = '2500'
    $packet &= '06000000'
    $packet &= '08000000'
    $packet &= _hex($questId)
    $packet &= _hex($optionIndex)

    $packetSize = 18
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func sellItem($itemTypeId,$invIndex,$amount, $pid)

    local $packet, $packetSize

    $packet = '2500'
    $packet &= '02000000'
    $packet &= '10000000' ;//nBytes following
    $packet &= '01000000' ;//nDifferent items being sold
    $packet &= _hex($itemTypeId)
    $packet &= _hex($invIndex)
    $packet &= _hex($amount)

    $packetSize = 26
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func buyItem($itemTypeId,$shopIndex,$amount, $pid)
  local $packet, $packetSize

    $packet = '2500'
    $packet &= '01000000'
    $packet &= '14000000' ;//nBytes following
    $packet &= '00000000'
    $packet &= '01000000' ;//nDifferent items being bought
    $packet &= _hex($itemTypeId)
    $packet &= _hex($shopIndex)
    $packet &= _hex($amount)

    $packetSize = 30
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func repairAll($pid)
    ;//продать все
    local $packet, $packetSize

    $packet = '2500'
    $packet &= '03000000'
    $packet &= '06000000' 
    $packet &= 'FFFFFFFF'
    $packet &= '0000' 

    $packetSize = 16
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func repairItem($itemTypeId, $isEquipped, $locationIndex, $pid)
    ;//repairs the item of type itemTypeId at locationIndex, if 
    ;//isEquipped=1, location refers to equipment. If isEquipped=0,
    ;//location refers to inventory.
    local $packet, $packetSize

    $packet = '2500'
    $packet &= '03000000'
    $packet &= '06000000' 
    $packet &= _hex($itemTypeId)
    $packet &= _hex($isEquipped, 2)
    $packet &= _hex($locationIndex, 2)

    $packetSize = 16
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func upgradeSkill($skillId, $pid)
    ;//полвысить лвл скила
    local $packet, $packetSize

    $packet = '2500'
    $packet &= '09000000'
    $packet &= '04000000' 
    $packet &= _hex($skillId)

    $packetSize = 14
    
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func sendPacket($packet, $packetSize, $pid) ; главная часть кода
  
    Local $pRemoteThread, $vBuffer, $loop, $result, $OPcode, $processHandle, $packetAddress
    
    ;//открыть процесс по его id
    $processHandle = memopen($pid)
    
  
    $functionAddress = DllCall($kernel32, 'int', 'VirtualAllocEx', 'int', $processHandle, 'ptr', 0, 'int', 0x46, 'int', 0x1000, 'int', 0x40)
    
 
    $packetAddress = DllCall($kernel32, 'int', 'VirtualAllocEx', 'int', $processHandle, 'ptr', 0, 'int', $packetSize, 'int', 0x1000, 'int', 0x40)
    

    $OPcode &= '60'                                ;//PUSHAD
    $OPcode &= 'B8'&_hex($sendPacketFunction)    ;//MOV     EAX, sendPacketAddress
    $OPcode &= '8B0D'&_hex($realBaseAddress)    ;//MOV     ECX, DWORD PTR [revBaseAddress]
    $OPcode &= '8B4920'                            ;//MOV     ECX, DWORD PTR [ECX+20]
    $OPcode &= 'BF'&_hex($packetAddress[0])        ;//MOV     EDI, packetAddress    //src pointer
    $OPcode &= '6A'&_hex($packetSize,2)            ;//PUSH    packetSize        //size
    $OPcode &= '57'                                ;//PUSH    EDI
    $OPcode &= 'FFD0'                            ;//CALL    EAX
    $OPcode &= '61'                                ;//POPAD
    $OPcode &= 'C3'                                ;//RET        
    
   
    $vBuffer = DllStructCreate('byte[' & StringLen($OPcode) / 2 & ']')
    For $loop = 1 To DllStructGetSize($vBuffer)
        DllStructSetData($vBuffer, 1, Dec(StringMid($OPcode, ($loop - 1) * 2 + 1, 2)), $loop)
    Next
    

    DllCall($kernel32, 'int', 'WriteProcessMemory', 'int', $processHandle, 'int', $functionAddress[0], 'int', DllStructGetPtr($vBuffer), 'int', DllStructGetSize($vBuffer), 'int', 0)
        

    $vBuffer = DllStructCreate('byte[' & StringLen($packet) / 2 & ']')
    For $loop = 1 To DllStructGetSize($vBuffer)
        DllStructSetData($vBuffer, 1, Dec(StringMid($packet, ($loop - 1) * 2 + 1, 2)), $loop)
    Next
    

    DllCall($kernel32, 'int', 'WriteProcessMemory', 'int', $processHandle, 'int', $packetAddress[0], 'int', DllStructGetPtr($vBuffer), 'int', DllStructGetSize($vBuffer), 'int', 0)
        

    $hRemoteThread = DllCall($kernel32, 'int', 'CreateRemoteThread', 'int', $processHandle, 'int', 0, 'int', 0, 'int', $functionAddress[0], 'ptr', 0, 'int', 0, 'int', 0)
    

    Do
        $result = DllCall('kernel32.dll', 'int', 'WaitForSingleObject', 'int', $hRemoteThread[0], 'int', 50)
    Until $result[0] <> 258
    

    DllCall($kernel32, 'int', 'CloseHandle', 'int', $hRemoteThread[0])
    

    DllCall($kernel32, 'ptr', 'VirtualFreeEx', 'hwnd', $processHandle, 'int', $functionAddress[0], 'int', 0, 'int', 0x8000)
    DllCall($kernel32, 'ptr', 'VirtualFreeEx', 'hwnd', $processHandle, 'int', $packetAddress[0], 'int', 0, 'int', 0x8000)
    
    ;//закрытие процесса
    memclose($processHandle)
    
    Return True
EndFunc

Func memopen($pid)
    Local $mid = DllCall($kernel32, 'int', 'OpenProcess', 'int', 0x1F0FFF, 'int', 1, 'int', $pid)
    Return $mid[0]
EndFunc

Func memclose($mid)
    DllCall($kernel32, 'int', 'CloseHandle', 'int', $mid)
EndFunc

Func _hex($Value, $size=8)
    Local $tmp1, $tmp2, $i 
    $tmp1 = StringRight("000000000" & Hex($Value),$size) 
    For $i = 0 To StringLen($tmp1) / 2 - 1 
        $tmp2 = $tmp2 & StringMid($tmp1, StringLen($tmp1) - 1 - 2 * $i, 2)
    Next
    Return $tmp2
EndFunc
Все скилл id есть в Этой теме
Вам надо будет найти packcall
Код для c# можно найти здесь [Ссылки могут видеть только зарегистрированные пользователи. ]
В теме вырезаны нерабочие пакеты!
  Ответить с цитированием
3 пользователя(ей) сказали cпасибо:
DevZI (24.11.2013), Guffi666 (25.09.2012), igo3000 (26.09.2012)
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка пакетов igo3000 Общение разработчиков 5 19.08.2012 21:41
[Помогите!] Отправка пакетов Dokerator3 Общение и обсуждение Perfect World 0 10.07.2012 15:20
[Программа] Отправка пакетов Choochoo Разработка ПО для Perfect World 9 31.05.2012 08:49

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 10:01.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net