ERC721
12import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; 定义非同质化代币(也称为契约)的标准接口。 每个符合 ERC-721 的合约都必须实现ERC721和ERC165接口 它更大的想象空间在于将物理世界的资产映射到区块链上。 谜恋猫是第一个实现了ERC721 标准的去中心化应用 ERC20代币是可置换的,且可细分为N份(1 = 10 * 0.1), 而ERC721的Token最小的单位为1,无法再分割。 如果同一个集合的两个物品具有不同的特征,这两个物品是非同质的,而同质是某个部分或数量可以被另一个同等部分或数量所代替。 钱包接口123456789101112131415/// @dev Note: the ERC-165 identifier for this interface is 0x150b7a02.interface ERC721TokenReceiver { /// @notice Handle the receipt of an NF...
Hardhat框架
定义Hardhat 是一个由 Nomiclabs 构建和维护的以太坊智能合约开发环境。它是一个可扩展的 Javascript 框架,提供了一套管理智能合约生命周期的工具和功能,包括编译、部署、测试和调试。 可以用npm直接安装: 12npm install hardhatnpx hardhat init 高度可定制性:Hardhat 的插件系统允许开发者通过自定义插件扩展其功能。 Hardhat 使用 Node 进行包管理,如果你熟悉 Node 及 Javascript, Hardhat 将非常简单上手。 创建Hardhat项目 创建项目目录 12mkdir hardhat-tutorialcd hardhat-tutorial 初始化Node项目 1npm init 安装Hardhat 1npm install --save-dev hardhat 将hatdhat添加到 package.json 的 devDependencies 中,而不是 dependencies 中 在安装Hatdhat的目录下运行 1npx hardhat 使...
Foundry框架
定义Foundry 是一个由 Paradigm开发的智能合约开发工具包,用于在以太坊区块链上开发应用程序。Foundry 基于 Rust 运行,提供多种工具来开发和测试 Solidity 智能合约。Foundry 具有一套 CLI 命令,使创建新项目、编译、部署和与合约交互变得简单。 创建Foundry项目 安装命令: 12curl -L <https://foundry.paradigm.xyz> | bash //下载foundryupfoundryup //运行它安装 Foundry 安装后,有三个命令行工具 forge, cast, anvil 组成 forge: 用来执行初始化项目、管理依赖、测试、构建、部署智能合约 ; cast: 执行以太坊 RPC 调用的命令行工具, 进行智能合约调用、发送交易或检索任何类型的链数据 anvil: 创建一个本地测试网节点, 也可以用来分叉其他与 EVM 兼容的网络。 初始化 通过 forge 的 forge init 初始化项目 1forge init <project_name> i...
记一次题解03
4.Casino_BLACKJACK题12345678910111213141516171819202122232425262728293031323334// SPDX-License-Identifier: MITpragma solidity ^0.8.0;import "./casino.sol";contract Exploit { using Deck for *; Casino public casino; fallback() external payable {} receive() external payable {} constructor(Casino _casino) { casino = _casino; } function _calculateScore(uint8[] memory cards) internal pure returns (uint8, uint8) { ui...
记一次题解02
1.充电宝题:1234567891011121314151617181920212223242526272829303132333435363738// SPDX-License-Identifier: MITpragma solidity ^0.8.20;//一个新型共享充电宝租借系统,整点动静,给粗心的项目方一点小小的震撼//复制粘贴到remix本地测试即可,不改变代码的情况下,调用falg函数返回true视为成功contract PowerBankRental { uint256 public totalUnits = 5; //记录实际有多少个充电宝 mapping(address => uint) public deposits; function rent() external payable { require(msg.value == 1 ether, "Need 1 ETH"); require(totalUnits >= 0, "Out of sto...
流量分析题解3
黑客攻击IP是多少来源:数据采集D_eth0_NS_20160809_164452.pcap 答案:183.129.152.140 解答:过滤http contains “404” 发现黑客进行了目录扫描 在分析数据包时,发现183.129.152.140对172.16.60.197和172.16.61.206的爆破密码和目录/文件的操作,判断此IP为黑客攻击IP OA服务器内网IP是什么答案: 172.16.61.199 来源:数据采集H_eth0_NS_20160809_172819.pcap 分析步骤: 过滤条件: http contains "oa" 在包285中可以查看到oa.t3sec.cc字样, 查看包的目标地址是172.16.61.199 黑客使用了什么扫描器进行扫描?(缩写,大写)答案: AWVS 来源:数据采集D_eth0_NS_20160809_164452.pcap 分析步骤: 过滤条件: http && ip.addr==183.129.152.140 在数据包574381中发现了请求头有a...
流量分析题解2
实验预设问题:1.攻击者的IP地址为?2.网站的后台管理员登陆界面的URL是?3.网站数据库的名称为?4.网站后台管理员admin的登陆密码哈希值为?5.黑客进入后台使用的漏洞是?Payload是?6.黑客通过什么Web攻击方法获得权限?7.黑客上传的Webshell文件名是?8.黑客上传的Webshell在使用时需要接收的参数是?9.黑客的远程服务器地址是? 题解任务一:排查攻击者IP地址步骤一:协议分级统计 首先需要对流量包进行基本分析。在WireShark菜单栏中点击【统计->协议分级】。 协议分级会对流量包根据TCP/IP协议簇定义的协议层级进行分级,并对不同协议类型的流量进行统计。 效果如下: 在协议分级统计中可以看到,应用层中涉及的协议主要是HTTP协议,可以初步判断该攻击事件为Web攻击事件。 步骤二:会话统计 在WireShark菜单栏中点击【统计->Conversations】。 会话统计会对流量包中不同网络地址之间的通信流量进行统计。 效果如下: 这里查看IPV4流量的统计信息,可以看到在该流量包...
流量分析题解1
原题分析链接:http://t.csdnimg.cn/slyXZ 方法提取(关键字搜索的图标或者直接ctrl+f) 在Wireshark中,当你看到“value处的truncated”时,这通常意味着数据包中的某个字段或值在捕获时被截断,未能完整显示。 题目:01 黑客登录系统使用的密码是______? 02 黑客修改了一个日志文件,文件的绝对路径为______?(请确认绝对路径后再提交) 03 黑客获取webshell之后,权限是______? 04 黑客写入的webshell文件名是______?(请提交带有文件后缀的文件名,例如x.txt) 05 黑客上传的代理工具客户端名字是______?如有字母请全部使用小写) 06 黑客代理工具的回连服务端IP是______? 07 黑客的socks5的连接账号、密码是______。(中间使用#号隔开,例如admin#passwd)。 题解:*01 黑客登录系统使用的密码是______?* 过滤器处输入“http.request.method==”POST””也可直接检索(login) 找到有该字样的流量 ...
MobaXterm操作
前置条件利用ubantu系统在VMware上配置Linux系统虚拟机 【两分半钟完成VMware安装及Linux-Ubuntu安装(全程无废话)】https://www.bilibili.com/video/BV1W34y1k7ge?vd_source=8d7dd382f6f8f6be47abce702685a0b0 (参考此视频) 虚拟机上Ssh的开启与安装 【Linux虚拟机开启SSH服务 - CSDN App】http://t.csdnimg.cn/JE5nY Ps:还要注意要将虚拟机和电脑主机的防火墙关闭 过程一、查看虚拟机的 Host 信息启动 VMware 虚拟机,进入 Ubuntu 系统。在虚拟机内,点击 应用程序,然后选择 终端 打开命令行界面。(或者直接快捷键Ctrl + Alt + T 打开终端)输入命令 ifconfig 查看虚拟机的 IP 地址和主机信息。红框中显示的是虚拟机的 IP 地址。 下面显示的是虚拟机的用户名(如:root123)。 注:用户名和密码是创建虚拟机时设定的。 二、通过 MobaXterm 连接虚拟机 打开 MobaXterm...
ZKP
计算复杂度理论P问题: 可以在多项式时间内求解 NP问题:不可以在多项式时间(可能需要指数或亚指数时间)计算求解; 但是可以验证解的正确性。 零知识证明 系统是基于NP问题空间来构建的 什么是IPA 什么是plonk eg: circom语言 w1是私用输入







