java_学生管理系统
前言最近要做个一java的学生管理系统,要一段很长时间,还是从零开始,所以就记个笔记,记录一下自己的学习知识,感觉和之前学的网页面有一些知识的关联。
采用一个java+Swing的框架,
SwingSwing 是一个为Java设计的GUI工具包。
GUI(图形用户界面)为程序提供图形界面,它最初的设计目的是为程序员构建一个通用的 GUI,使其能够在所有的平台上运行,但 Java 1.0 中基础类 AWT(抽象窗口工具箱)并没有达到这个要求,于是 Swing 出现了,它是 AWT 组件的增强组件,但是它又不能完全替代 AWT 组件,这两种组件需要同时出现在一个图形用户界面中。
Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表。
Swing提供许多比AWT更好的屏幕显示元素。它们用纯Java写成,所以同Java本身一样可以跨平台运行,这一点不像AWT。它们是JFC的一部分。它们支持可更换的面板和主题(各种操作系统默认的特有主题),然而不是真的使用原生平台提供的设备,而是仅仅在表面上模仿它们。这意味着你可以在任意平台上使用JAVA支持的任意面板。轻量级组件的缺点则是执 ...
CTF-SafuVault
CTF-SafuVault这个题的源代码这里
题目要求就是:获得不少于保险库的90%代币
还是先阅读代码,合约SafeVault,是一个安全的收益金库,用于用户存入代币,然后金库会调用策略合约 SafuVault的deposit函数将存入的代币进行投资,用户通过withdraw函数提取它们的代币,其中还有个depositFor函数,允许其他用户为其他人存款,这个收益合约看起来还是功能挺齐全的。而收益生成合约 SafuStrategy,就是来管理存入金库的资金,要想获得资金的话,还是的同通过金库合约,反复查看这个合约的,开始时并没有发现获得资金的方法,查看了提示:所有外部功能都得到妥善保护吗?又去看了金库合约的函数,发现deposit和depositFor函数修饰限定不一样,具体看一下代码:
function deposit(uint256 _amount) public nonReentrant { strategy.beforeDeposit(); uint256 _pool = balance(); want().safeTran ...
EIP-1559
EIP-1559在做solidity自我检测的时候,第一次,了解到这个协议,就来做个学习笔记
含义首先它是由V神和Ethhub_io创始人Eric Conner于2019年3月联合提出的以太坊交易手续费机制改进提案。这个提案的主要内容就是对向矿工的支付的gas方式做出了改变,它将gas费分为俩部分:基础费(basefee)+矿工小费
基础费(basefee)就是以太坊网络根据交易需求和区块大小动态调整的。BASEFEE的计算方式是通过一个名为“基础费用追踪器”的算法来实现的。该算法会根据当前区块的交易需求和区块大小来动态调整BASEFEE,以确保交易能够在合理的时间内得到确认。
EIP-1559协议的核心思想其实有两块:第一块是变更燃料费价格的定价方式,降低整体的燃料费价格,以利于以太坊生态中的各种应用的发展。第二块是原来的以太坊网络中的燃料费全部是矿工的收入,在EIP-1559协议实施后,燃料费的一部分将燃烧掉,不再作为矿工的收入。
作用降低以太坊的矿工费用,维持以太坊网络的稳定
solidityqestion答案
自查最近发现个关于solidity面试的问题网站,正好之前又重新温习了solidity的,所以就来做一下点击查看面试问题网站
容易1,私有、内部、公共和外部函数之间有什么区别?
private表示只能在合同内部调用其他函数。 internal类似于私有关键字,但也可由继承当前合同的合同调用。 external只能在合同外部调用。 public可在任何地方被调用,无论是内部还是外部。
2,智能合约大约可以有多大?
24KB
3,create 和 create2 有什么区别?
首先它们都是Solidity中重要的操作码,都是用来部署合约的,区别就是,create是通过对发送者地址和nonce值进行哈希运算计算新合约的地址的,keccak256(rlp.encode(deployingAddress, nonce))。而create2更为复杂,它使用是通过一个公式计算新合约的地址的,这个公式包括,发送者地址,随机数,salt,字节码等参数,keccak256(0xff ++ deployingAddr ++ salt ++ keccak256(bytecode)),它也有个优点,可 ...
CTF-jpeg-sniper
CTF-jpeg-sniper这道题的源码在这里
题目的要求是:铸币
首先又是要理解这些代码想表达的意思
BaseLaunchpegNTF合约,这个NTF的原型,里面实现了isEOA的修饰器,看到这个,我就想起了前几天才整理的智能合约的漏洞:如何绕过外部账户,实现用合约调用。接下来就是普通的铸币流程
function numberMinted(address _owner) public view returns (uint256) { return balanceOf(_owner); } function totalSupply() public view returns (uint256) { return _tokenId.current(); } /// 每个使用者可铸币的数量 function _mintForUser(address to, uint256 quantity) internal { for ...
CTF-GasValue
CTF-GasValue这个题要求我们使open为faluse源代码如下:
// SPDX-License-Identifier: MITpragma solidity 0.8.17;interface INozzle { function insert() external returns (bool);}/// @title Gas Valve/// @author https://twitter.com/bahurum/// @notice The evil Dr. N. Gas has created a machine to suck all the air out of the atmosphere. Anon, you must deactivate it before it's too late!/// @custom:url https://www.ctfprotocol.com/tracks/eko2022/gas-valvecontract Valve { bool public open; bool pu ...
AMM漏洞分析
是否使用硬编码滑点在高波动时期,使用硬编码滑点会导致交易不佳并冻结用户资金
有截止日期保护吗如果没有截至日期保护,用户交易衡容易收到Sandwich攻击
是否针对协议储备的验证检查如果储备金未经验证,协议可能会面临风险,并且可以借出,从而影响系统的偿付能力。
AMM是否使用分叉代码如果使用了分叉代码,尤其是来自Uniswap等已知项目的代码,并且这些代码没有进行正确更新,或者审计,可能会引入已知的漏洞
产品常数公式中是否存在舍入问题公式中的四舍五入问题可能导致代币交换和流动性供应不准确或不平衡。
是否可以根据用户输入进行任意调用允许基于用户输入的任意调用可能会使合约面临各种漏洞
是否有适当的机制来防止过度滑点如果没有滑点保护,交易者可能会因交易过程中的巨大价格偏差而遭受意外损失。
AMM是否正确处理不同十进制配置和令牌如果 AMM 不支持具有不同小数或类型的令牌,则可能会导致计算错误和潜在损失。
AMM是否支持转账收费代币转账收费代币可能会导致问题,因为发送金额和接收金额不匹配。
协议是否在代币交换之前计算”minAmountOut”集成 AMM 的协议应在掉期之前确定 ‘minAmo ...
AMM(自动化做市商)
简单介绍长话短说
你可以将自动做市商视为一个机器人,它总是愿意为你报出两种资产之间的价格。有些使用像 Uniswap 这样的简单公式,而 Curve、Balancer 和其他公司则使用更复杂的公式。
您不仅可以使用 AMM 进行无需信任的交易,还可以通过向流动性池提供流动性来成为庄家。这基本上允许任何人成为交易所的做市商,并通过提供流动性赚取费用。
由于 AMM 简单易用,它在 DeFi 领域真正占据了一席之地。以这种方式实现去中心化做市是加密货币愿景的本质。
介绍去中心化金融 (DeFi) 在以太坊和 BNB 智能链等其他智能合约平台上引起了人们的极大兴趣。收益耕种已成为一种流行的代币分配方式,代币化的 BTC 在以太坊上不断增长,闪电贷交易量也在蓬勃发展。
与此同时,像 Uniswap 这样的自动做市商协议经常会看到有竞争力的交易量、高流动性和不断增加的用户数量。
但是这些交易所是如何运作的呢?为什么为最新的食品币建立市场如此快速和容易?AMM 真的能与传统的订单簿交易所竞争吗?让我们来一探究竟。
什么是自动化做市商(AMM)?自动做市商 (AMM) 是一种去中心化交易所 (DEX ...
矿工攻击
漏洞分析 矿工可以验证交易并将它添加到区块链中,操纵哈希或者时时间戳等区块属性来影响合约的执行或结果
举例 是否明智使用了block.timestamp,尤其是对于较长的间隔,block.timestamp可以被矿工再很小的程度上操纵,影刺依赖它进行计算时可能会有风险
价格操控攻击漏洞分析 攻击者故意改变去中心化交易所的资产价格,通常是为了依赖利用合约或者交易
举例如果价格或资产之间的汇率是从余额比率得出的,则可以对其进行操纵。闪电贷和捐赠是众所周知的用于操纵价格的攻击媒介。
重入攻击重入攻击是一种针对智能合约的安全漏洞,攻击者利用合约在执行期间的状态不一致性,通过多次调用合约的某个函数,从而导致资金或数据的异常损失。下面将详细细分重入攻击的类型,并通过具体示例进行说明。
单个合约重入攻击漏洞描述:攻击者利用合约中的漏洞,在同一合约内重复调用函数,导致状态不一致或资金损失。
举例:某个合约允许用户提取资金,攻击者利用重入漏洞在提现过程中多次调用提现函数,导致超过账户余额的提取。
跨合约重入攻击漏洞描述:攻击者首先调用一个合约的函数,该函数再调用另一个合约的函数,然后再通过回调再次调用原 ...
恶意破环攻击
漏洞描述攻击者通过恶意破坏系统,通常它们不会有盈利的,就是恶意破坏运营和用户,它们可以通过链上的轻微改变来阻止用户交易