作者:智慧与财富的拥有者_678 | 来源:互联网 | 2017-05-14 02:44
#!/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