华科第一届网络安全挑战赛wp

文章目录

  • 华科第一届网络安全挑战赛wp
    • web
        • secure_shell
        • pyssrf
    • misc
        • 一闪一闪亮晶晶

华科第一届网络安全挑战赛wp

web

secure_shell

考点:exec()无回显

先测试一下能不能执行 cmd=1;sleep 4

发现反应了4秒,能执行

然后直接 cat /f* > 1.txt

最后访问/1.txt路径就行

pyssrf

考点:ssrf漏洞

打开有个提示 /get?site=

直接file读取flag

/get?site=file:///flag

misc

一闪一闪亮晶晶

考点:凯撒与base64结合,starry语言

根据提示,“凯撒大帝想学习一下Starry语言,你能帮帮他么吗”,一定跟凯撒密码和starry语言有关。

下载文件,是一串重复度非常高的字符串

JDBhJDBsJDBhJDBsJDBhJDBhJDBsJDBrJDBhJDBhLzphJDBhJDBhJDthJDphJDBhJDtrJDBhJDBhJDBsJDBrJDBhJDBhJDtrJDBhJDBhJDBsJDBrJDBhJDBhLxprJDBhJDBhJDBsJDBrJDBhJDBsLjBsJDBhMjBhJDBhLzBhJDBhJDBhLzBhLjBhJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhLzprJDthMjBhJDBhLzBhJDBhJDBhDjthJDphJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhLzphJDBhJDBhJDthJDphJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhJDtLLjBsJDBhJDBvJDBhJDBsJDBhJDBhJDBsJDBrJDBhJDBhJDtrJDBhJDBhJDBsJDBrJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhLzphJDBhJDBhJDthJDphJDBhJBphLzphJDBhJDthJDBhJDBhJDthJDphJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhJDtrJDBhJDBhJDBsJDBrJDBhJDBhLzphJDBhJDBhJDthJDphJDBhJDBhLzphDjBhJDBhJDBsJDBrJDBhJDBsLjBhJDBhLzBhJDBhJDBhLzBhLjBhJDBhJDtrJDBhJDBhJDBsJDBrJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhJDBsLjBhJDBhJDBLJDthJDphJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhJDtrJDBhJDBhJD4hJDBhJDBhMjBsJD4hJDBhJDthJDBhJDBhJDthJDphJDBhJDBsLjphLzBhJDBhJDBvJBphJDBhLzBhJDBhJDBhLzBhLjBhJDBhJDtrJDBhJDBhJDBsJDBrJDBhJDBhJDtrJDBhJDBhJDBsJDBrJDBhJDBhJDtrJDBhJDBhJDBsJDBrJDBhJDBhLzphJDBhDjBsJDBhJDBhJDBsJDBrJDBhJDBhLzphJDBhJDBhJDthJDphJDBhJDtrJDBhJDBhJDBsJDBrJDBhJDBhJDtrJDBhJDBhJDBsJDBrJDBhJDBsLjBhJDBhJDBhLzBLJDphJDBhJDtrJDBhJDBsJDBhJDBhJDBsJDBrJDBhJDBhLzphJDBhJDBhJDthJDphJDBhJDBhLzphJDBhJDBhJDthJDphJDBhJDBhLzphJDBhJDBhJDthJDphJBphJDBhJDtrJDBhMjBhJD4hLzBhJDBhMjBhJDBhLzBhJDBhJDBhLzBhLjBhJDBhJDtrJDBhJDBhJDBsJDBrJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhJDtrJDBhDjBhJDBhLzBhLjBhJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhJDtrJDBhJDBsJDBhJDBhJDBsJDBrJDBhJDBhLzphJDBhJDBhJDthJDphJDBhJDtrJDBhJDBhJDBLLzBhLjBhJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhLzphJDBhJDBhJDthJDphJDBhJDBhLzphJDBhJDthJDBhJDBhJDthJDphJDBhJDBsLjBhJDBhJDBhLzBhLhphJDBhJDBhLzphJDBhJDBhJDthJDphJDBhJDBhLzphJDBhJDBhJDthJDphJDBhJDBhLzphJDBhJD4hJDBhJD4hLzBhJDBhJDBvJDBhJDBsJDBhJDBhJDBsJDBrDjBhJDBhJDtrJDBhJDBhJDBsJDBrJDBhJDBhJDtrJDBhJDBhJDBsJDBrJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhLzphLzBhJDBhJDBvJDBhJDBsJDBhJDBhJDBLLzBhLjBhJDBhJDtrJDBhJDBhJDBsJDBrJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhLzphJDBhJDBhJDthJDphJDBhJDBsLhphLzBhJD4hJDBhJDthJDBhJDBhJDthJDphJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhJDtrJDBhJDBhJDBsJDBrJDBhJDBhDjBsLjBsJDBhJDBhJD4hJDBhJDthJDBhJDBhJDthJDphJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhLzphJDBhJDBhJDthJDpLJDBhJDBhJDtrLjBsJDBhJDBvJDBhJDBsJDBhJDBhJDBsJDBrJDBhJDBhLzphJDBhJDBhJDthJDphJDBhJDBhLzphJDBhJDBhJDthJDphJDBhJDBsLjBhJDBhJBphJDthJDphJDBhJDBsLjBsJDBhMjBhJDBhLzBhJDBhJDBhLzBhLjBhJDBhJDtrJDBhJDBhJDBsJDBrJDBhJDBhJDtrJDBhJDBhJDBsJDBrJDBhJDBhJDtrJDBhDjBhJDBhLzBhLjBhJDBhJDtrJDBhJDBsJDBhJDBhJDBsJDBrJDBhJDBhLzphJDBhJDBhJDthJDphJDBhJDBhLzphJDBhJDBhJDthJDphJDBhJDtrJDBhJDBhJDBLLzBhLjBhJDBhLzphJDBhJD4hLzBhJDBhMjBhJDBhLzBhJDBhJDBhLzBhLjBhJDBhJDtrJDBhJDBhJDBsJDBrJDBhJDBhJDtrJDBhJDBhJDBsJDBrJDBhJDBsLhphJDBhJDBhJDthJDphJDBhJDtrJDBhJDBsJDBhJDBhJDBsJDBrJDBhJDBhLzphJDBhJDBhJDthJDphJDBhJDBhLzphJDBhJDBhJDthJDphJDBhJDBhLzphJDBhDjBhJDBsJDBrJDBhJDBsLjBhJDBhLzBhJDBhJDBhLzBhLjBhJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhLzphJDBhJDBhJDthJDphJDBhJDBsLjBhJDBhJDBhLzBLJDphJDBhJDtrJDBhJDBsJDBhJDBhJDBsJDBrJDBhJDBhJDtrJDBhJDBhJDBsJDBrJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhJDtrJDBhJDBhJDBsJDBrJDBhJBphLzphJDBhJDBhMjBhJDBhJDBvJDBhJDBhJD4hLzBhJDBhMjBhJDBhLzBhJDBhJDBhLzBhLjBhJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhLzphJDBhJDBhJDthDjBrJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhJDBsLjBsJDBhJDBvJDBhJDBsJDBhJDBhJDBsJDBrJDBhJDBhLzphJDBhJDBhJDthJDphJDBhJDtrJDBhJDBhJDBLLzBhLjBhJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhLzphJDBhJDBhJDthJDphJDBhJDBsLjBsJDBhJDBhJD4hJDBhJDthJDBhJDBhJDthJDphJDBhJDBsLjBhJBphJDBhJDthJDphJDBhJDBhLzphJDBhJDBhJDthJDphJDBhJDtrJDBhJDBhJDBsJDBrJDBhJDBsLjBhJDBhLzBhJDBhJDBhLzBhLjBhJDBhJDtrJDBhJDBhJDBsDjBhLjBhJDBhLzphJDBhJDBhJDthJDphJDBhJDBhLzphJDBhJDBhJDthJDphJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhLzphJDBhJDthJDBhJDBhJDthJDphJDBLJDBhLzphJDBhJDBhJDthJDphJDBhJDBhLzphJDBhJDBhJDthJDphJDBhJDBhLzphJDBhJDBhJDthJDphJDBhJDBsLjBhJDBhMjBhJDBhMjBsJDBhMjBhJDBhLxphJDBhJDBhJDthJDphJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhLzphJDBhJDthJDBhDjBhJDBsJDBrJDBhJDBhLzphJDBhJDBhJDthJDphJDBhJDBhLzphJDBhJDBhJDthJDphJDBhJDBhLzphJDBhJDBhJDthJDphJDBhJDBhLzphJDBhJDthJDBhJDBLJDBsJDBrJDBhJDBhLzphJDBhJDBhJDthJDphJDBhJDBhLzphJDBhJDBhJDthJDphJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhJDBsLjBhJDBhLzBhJDBhJDBhLxphJDphJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhLzphMjBvJD4hLzBhJDBhMjBhJDBhDjthJDBhJDBhJDthJDphJDBhJDBsLjBrJDthJDBhJD4hJDBhJDthJDBhJDBhJDthJDphJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhLzphJDBhJDBhJDthJDphJDBLJDBhJDtrJDBhJDBhJDBsJDBrJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhLzphJDBhJDthJDBhJDBhJDthJDphJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhLzphJBphJDBhJDBsJDBrJDBhJDBhLzphJDBhJDBhJDthJDphJDBhJDBhLzphJDBhJDBhJDthJDphJDBhJDBhLzphJDBhJDthJDBhJDBhJDthJDphJDBhJDBsLjBhJDBhDjBhJDthJDphJDBhJDBhLzphJDBhJDBhJDthJDphJDBhJDBhLzphJDBhJDBhJDthJDphJDBhJDBhLzphJDBhJDthJDBhJDBhJDthJDphJDBhJDBsLjBhJDBhJDBLJDthJDphJDBhJDtrJDBhJDBhJDBsJDBrJDBhJDBhJDtrJDBhJDBhJDBsJDBrJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhJDtrJDBhJDBsJDBhJDBhJDBsJDBrJBphJDBhJDtrJDBhJDBhJDBsJDBrJDBhJDBhJDtrJDBhJDBhJDBsJDBrJDBhJDBhJDtrJDBhJDBhJDBsJDBrJDBhJDBsLjBhJDBhMjBhJDBhMjBhJDBhMjBhJDBhDj4hLzBhJDBhMjBhJDBhLzBhJDBhJDBhLzBhLjBhJDBhJDtrJDBhJDBhJDBsJDBrJDBhJDBhLzphJDBhJDBhJDthJDphJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBLJDBhLzphJDBhJDBhJDthJDphJDBhJDBhLzphJDBhJDthJDBhJDBhJDthJDphJDBhJDBhLzphJDBhJDBhJDthJDphJDBhJDtrJDBhJDBhJDBsJDBrJDBhJDBhLxprJDBhJDBhJDBsJDBrJDBhJDBsLjBhJDBhLzBhJDBhJDBhLzBhLjBhJDBhJDtrJDBhJDBhJDBsJDBrJDBhJDBsLjBhJDBhJDBhLzBhLjBhJDBhJDBsLjBhJDBhDjBhJDthJDphJDBhJDtrJDBhJDBhJDBsJDBrJDBhJDBhLzphMjBvJDthMjBhJDBhLzBhJDBhJDBhLzBhLjBhJDBhJDtrJDBhJDBhJDBsJDBrJDBhJDBsLjBhJDBLJDBhJDthJDphJDBhJDBsLjBsJDBhJDBhJD4=

看到末尾的=,想到base64,所以是凯撒与base64的结合。

先用脚本爆破凯撒,将结果用base64编码

import base64
# 截取文件最前面一部分进行猜测,因为根据后面可知这一部分是近似的四字符反复重复
key = "JDBhJDBsJDBhJDBsJDBhJDBhJDBsJDBrJDBhJDBhLzphJDBhJDBhJDthJDphJDBh"# 遍历凯撒加密中25种的可能性
for n in range(0, 26):str_encrypt = ""for letter in key:if "a" <= letter <= "z":str_encrypt += chr((ord(letter) - ord("a") + n) % 26 + ord("a"))elif "A" <= letter <= "Z":str_encrypt += chr((ord(letter) - ord("A") + n) % 26 + ord("A"))else:str_encrypt += letter# 输出每一种可能性最后的结果print(base64.decodebytes(str_encrypt.encode()))

结果中发现只有当n=25时,会出现starry语言特有的+,*等符号

于是用脚本将其全部转化成starry语言

import base64
with open("C:\\Users\\Lucky\\Desktop\\华科杯\\misc\\一闪一闪亮晶晶\\flag.txt", "r", encoding="utf-8") as f:    #flag.txt是凯撒密码的文本str_encrypt = ""n = 25for letter in f.read():if "a" <= letter <= "z":str_encrypt += chr((ord(letter) - ord("a") + n) % 26 + ord("a"))elif "A" <= letter <= "Z":str_encrypt += chr((ord(letter) - ord("A") + n) % 26 + ord("A"))else:str_encrypt += letteropen("C:\\Users\\Lucky\\Desktop\\华科杯\\misc\\一闪一闪亮晶晶\\flag.starry", "wb").write(base64.decodebytes(str_encrypt.encode()))

最后用starry语言转换脚本转换就能得到flag

import sys
fp = open('C:\\Users\\Lucky\\Desktop\\华科杯\\misc\\一闪一闪亮晶晶\\flag.starry')     #flag.starry是保存的starry语言文件
data = fp.read()
fs = open('C:\\Users\\Lucky\\Desktop\\华科杯\\misc\\一闪一闪亮晶晶\\f.txt', 'w')       #f.txt是输出的中间文件
sub = 0
for i in data:if i == '\n':continueelif i == ' ':sub += 1elif i == '+':if sub == 1:fs.write('dup\n')sub = 0elif sub == 2:fs.write('swap\n')sub = 0elif sub == 3:fs.write('rotate\n')sub = 0elif sub == 4:fs.write('pop\n')sub = 0else:fs.write('push  ' + str(sub-5) + '\n')sub = 0elif i == '*':if sub == 0:fs.write('+\n')sub = 0elif sub == 1:fs.write('-\n')sub = 0elif sub == 2:fs.write('*\n')sub = 0elif sub == 3:fs.write('/\n')sub = 0elif sub == 4:fs.write('%\n')sub = 0else:print('error!!!')sub = 0sys.exit()elif i == '.':if sub == 0:fs.write('num_out\n')sub = 0else:fs.write('char_out\n')sub = 0else:print('error!!!!')sys.exit()
fp.close()
fs.close()
fp = open('C:\\Users\\Lucky\\Desktop\\华科杯\\misc\\一闪一闪亮晶晶\\f.txt', 'r')
data = []
for line in fp:line = line.strip('\n')if line[:4] == 'push':data.append(int(line.split('  ')[1]))elif line == '*':x = data[-1]y = data[-2]data = data[:-2]data.append(x * y)elif line == '+':x = data[-1]y = data[-2]data = data[:-2]data.append(x + y)elif line == '-':x = data[-1]y = data[-2]data = data[:-2]if (x-y)<0:data.append(y-x)else:data.append(x-y)elif line == 'dup':x = data[-1]data.append(x)elif line == 'char_out':x = data[-1]data = data[:-1]print(chr(x),end="")else:print('error!!!')sys.exit()

flag{785c45ea-d2a1-4993-8d4f-325323d5bcd9}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/887141.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AWTK 最新动态:支持鸿蒙系统(HarmonyOS Next)

HarmonyOS是全球第三大移动操作系统&#xff0c;有巨大的市场潜力&#xff0c;在国产替代的背景下&#xff0c;机会多多&#xff0c;AWTK支持HarmonyOS&#xff0c;让AWTK开发者也能享受HarmonyOS生态的红利。 AWTK全称为Toolkit AnyWhere&#xff0c;是ZLG倾心打造的一套基于C…

docker 配置同宿主机共同网段的IP 同时通过通网段的另一个电脑实现远程连接docker

docker配置网络 #宿主机执行命令 ifconfig 查询对应的主机ip 子网掩码 网关地址 #[网卡名称]&#xff1a;inet[主机IP] netmask[子网掩码] broadcast[网关地址]这里需要重点关注&#xff1a;eno1[网卡名称]以及【192.168.31.225】网关地址 在宿主机执行docker命令创建一个虚拟…

使用 Elastic AI Assistant for Search 和 Azure OpenAI 实现从 0 到 60 的转变

作者&#xff1a;来自 Elastic Greg Crist Elasticsearch 推出了一项新功能&#xff1a;Elastic AI Assistant for Search。你可以将其视为 Elasticsearch 和 Kibana 开发人员的内置指南&#xff0c;旨在回答问题、引导你了解功能并让你的生活更轻松。在 Microsoft AI Services…

React (三)

文章目录 项目地址十二、性能优化12.1 使用useMemo避免不必要的计算12.2 使用memo缓存组件,防止过度渲染12.3 useCallBack缓存函数12.4 useCallBack里访问之前的状态(没懂)十三、Styled-Components13.1 安装13.2给普通html元素添加样式13.3 继承和覆盖样式13.4 给react组件添…

Etcd 框架

基本了解 客户端、长连接与租约的关系 客户端对象 etcd的客户端对象是用户与etcd服务进行交互的主要接口&#xff0c;主要功能就是存储、通知和事务等功能访问 键值存储&#xff1a;客户端通过put 和 get操作存储数据&#xff1b;数据存储在etcd的层级化键值数据库中监听器&a…

IDEA2023 创建SpringBoot项目(一)

一、Spring Boot是由Pivotal团队提供的全新框架&#xff0c;其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置&#xff0c;从而使开发人员不再需要定义样板化的配置。 二、快速开发 1.打开IDEA选择 File->New->Project 2、…

教育数字化转型新时代:探索智慧学习空间的无限可能

在信息技术的浪潮推动下&#xff0c;教育行业正迎来一场前所未有的变革。这场变革的核心在于教育数字化转型&#xff0c;它要求我们重新审视和构建传统的学习模式&#xff0c;以适应快速变化的社会需求。在这个过程中&#xff0c;智慧学习空间作为数字化转型的重要成果&#xf…

LSTM原理解读与实战

在RNN详解及其实战中&#xff0c;简单讨论了为什么需要RNN这类模型、RNN的具体思路、RNN的简单实现等问题。同时&#xff0c;在文章结尾部分我们提到了RNN存在的梯度消失问题&#xff0c;及之后的一个解决方案&#xff1a;LSTM。因此&#xff0c;本篇文章主要结构如下&#xff…

【成品文章+四小问代码更新】2024亚太杯国际赛B题基于有限差分格式的空调形状优化模型

这里仅展示部分内容&#xff0c;完整内容获取在文末&#xff01; 基于有限差分格式的空调形状优化模型 摘 要 随着科技进步&#xff0c;多功能环境调节设备成为市场趋势&#xff0c;集成了空调、加湿器和空气 净化器功能的三合一设备能提供更舒适健康的室内环境。我们需要分析…

中国省级新质生产力发展指数数据(任宇新版本)2010-2023年

一、测算方式&#xff1a;参考C刊《财经理论与实践》任宇新&#xff08;2024&#xff09;老师的研究&#xff0c;新质生产力以劳动者劳动资料劳动对象及其优化组合的质变为 基本内涵&#xff0c;借 鉴 王 珏 和 王 荣 基 的 做 法构建新质生产力发展水平评价指标体系如下所示&a…

简单理解下基于 Redisson 库的分布式锁机制

目录 简单理解下基于 Redisson 库的分布式锁机制代码流程&#xff1a;方法的调用&#xff1a;具体锁的实现&#xff1a;riderBalance 方法&#xff1a;tryLock 方法&#xff08;重载&#xff09;&#xff1a;tryLock 方法&#xff08;核心实现&#xff09;&#xff1a; 简单理解…

Diving into the STM32 HAL-----DAC笔记

根据所使用的系列和封装&#xff0c;STM32微控制器通常只提供一个具有一个或两个专用输出的DAC&#xff0c;除了STM32F3系列中的少数零件编号实现两个DAC&#xff0c;第一个具有两个输出&#xff0c;另一个只有一个输出。STM32G4 系列的一些较新的 MCU 甚至提供多达 5 个独立的…

【数据分析】认清、明确

1、什么是数据分析。 - 通过对大量的数据进行科学的分析。 - 得出结论&#xff0c;提出建议&#xff0c;辅助公司企业的决策。2、数据分析分为几步。 - 1.明确目的! - 2.收集数据!自己的数据! 自动化采集的数据! - 3.数据处理! - 4.数据分析!数据分析(业务)数据挖掘(代码算法…

Sentinel服务保护

Sentinel是阿里巴巴开源的一款服务保护框架&#xff0c;目前已经加入SpringCloudAlibaba中。官方网站&#xff1a; home | Sentinel Sentinel 的使用可以分为两个部分: 核心库&#xff08;Jar包&#xff09;&#xff1a;不依赖任何框架/库&#xff0c;能够运行于 Java 8 及以…

elasticsearch介绍和部署

1 elasticsearch介绍 Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。可以很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性。Elasticsearch 的实现原理主要分为以下几个步骤&#xff0c;首先用户将数据提交到Elasticsea…

智能安全配电装置在高校实验室中的应用

​ 摘要&#xff1a;高校实验室是科研人员进行科学研究和实验的场所&#xff0c;通常会涉及到大量的仪器设备和电气设备。电气设备的使用不当或者维护不周可能会引发火灾事故。本文将以一起实验室电气火灾事故为例&#xff0c;对事故原因、危害程度以及防范措施进行分析和总结…

大语言模型---Llama模型文件介绍;文件组成

文章目录 1. 概要2. 文件组成 1. 概要 在使用 LLaMA&#xff08;Large Language Model Meta AI&#xff09;权重时&#xff0c;通常会涉及到与模型权重存储和加载相关的文件。这些文件通常是以二进制格式存储的&#xff0c;具有特定的结构来支持高效的模型操作。以下以Llama-7…

12 —— Webpack中向前端注入环境变量

需求&#xff1a;开发模式下打印语句生效&#xff0c;生产模式下打印语句失效 使用Webpack内置的DefinePlugin插件 const webpack require(webpack) module.exports { plugins: [ new webpack.DefinePlugin({ process.env.NODE_ENV:JSON.stringify(process.env.NODE_ENV) }…

【vba源码】导入excel批注信息

Hi&#xff0c;大家好呀&#xff01; 又到了一周一分享的时间&#xff0c;上周繁忙的我都没有给大家直播&#xff0c;视频也没更新&#xff0c;那这周大家放心&#xff0c;都会给大家更新&#xff0c;今天我们来讲点啥呢&#xff1f;每周找优质的内容给大家更新是我最最痛苦的…

Java设计模式 —— Java七大设计原则详解

文章目录 前言一、单一职责原则1、概述2、案例演示 二、接口隔离原则1、概述2、案例演示 三、依赖倒转原则1、概述2、案例演示 四、里氏替换原则1、概述2、案例演示 五、开闭原则1、概述2、案例演示 六、迪米特法则1、概述2、案例演示 七、合成/聚合复用原则1、概述2、组合3、聚…