python拦截游戏封包_模拟登录封包python实现

#!/usr/bin/env python

# encoding:utf-8

from socket import *

from ctypes import create_string_buffer

from struct import *

import sysconfig

import random

from ctypes.wintypes import BYTE

from msilib import datasizemask

from _ctypes import sizeof

from random import randint

from time import sleep

CODEC = 'utf-8'

global RECVBUFSIZ

global m_wRecvSize

global m_cbSendRound #发送字节映射

global m_cbRecvRound #接收字节映射

global m_dwSendXorKey #发送密钥

global m_dwRecvXorKey #接收密钥

m_cbSendRound = 0

m_cbRecvRound = 0

RECVBUFSIZ = 16384

m_wRecvSize = 0

m_cbSendRound = 0 #发送字节映射

m_cbRecvRound = 0 #接收字节映射

m_dwSendXorKey = 0 #发送密钥

m_dwRecvXorKey = 0 #接收密钥

def SendLogonPacket(ADDR,SENDBUFF):

global RECVBUFSIZ

cs = socket(AF_INET, SOCK_STREAM)

cs.connect(ADDR)

cs.send(SENDBUFF)

lennum = len( cs.recv(RECVBUFSIZ))

cs.close()

return lennum

def md5(str1):

import hashlib

m = hashlib.md5()

m.update(str1)

str1 = m.hexdigest()

return str1.upper()

def a2u(buff1,str1,start):

i=0

for letter in str1:

pack_into("B",buff1,start+i,ord(letter))

i += 2

def MapSendByte (byte):

global m_cbSendRound

index = byte + m_cbSendRound

b = g_SendByteMap[index % 0x100]

m_cbSendRound += 3

return b

def MapRecvByte (byte):

global m_cbRecvRound

b = g_RecvByteMap[byte] - m_cbRecvRound

b = b % 0x100

m_cbRecvRound += 3

return b

def SeedRandMap(wSeed):

num = int(wSeed)

num = ( num * 241103 + 2533101 ) >> 16

return ((num | int(0xFFFF0000)) -0xFFFF0000) #返回一个WORD类型

def CrevasseBuffer(buff,wDataSize):

global dwXorKey

global m_dwSendXorKey

global m_dwRecvXorKey

i = 0

while i < wDataSize:

print hex(ord (buff[i])),

i += 1

dwXorKey =

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值