自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

转载 Git学习和使用

一.版本控制版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。版本控制最主要的功能就是追踪文件的变更。它将什么时候、什么人更改了文件的什么内容等信息忠实地了记录下来。每一次文件的改变,文件的版本号都将增加。除了记录版本变更外,版本控制的另一个重要功能是并行开发。软件开发往往是多人协同作业,版本控制可以有效地解决版本的同步以及不同开发者之间的开发通信问题,提高协同开发的效率。并行开发中最常见的不同版本软件的错误(Bug)修正问题也可以通过版

2021-05-28 16:10:40 179

原创 solidity0.6.0特性

pragma solidity ^0.6.0;struct User { // 0.6.0后可以在合约外面定义结构体了,主要用于共享一些数据 uint a;}// 0.6.0开始数组的length属性变为了只读属性,如果需要减少数组长度,需要使用pop()函数contract MyContract { uint[] num = [1, 2, 3]; uint[3] num1 = [1, 2, 3]; function f() public {

2021-04-11 11:11:06 440

原创 linux系统调用劫持(隐藏端口)

一、实验目的修改linux内核读取tcp端口所使用的函数调用tcp4_seq_show,让其指向自己的函数,用于隐藏指定的端口号。使用的linux内核版本如下:二、实验代码#include <linux/module.h>#include <linux/kallsyms.h>#include <linux/kernel.h>#include <linux/unistd.h>#include <linux/string.h>#in

2021-02-01 14:54:16 1358 2

原创 邻接表实现的Dijkstra算法

一、算法目的使用邻接表实现Dijkstra算法使用priority_queue(堆)优化取最小权值边的时间复杂度从文件中读取的数据格式如下:二、算法代码#include <iostream>#include <algorithm>#include <cstring>#include <queue>#include <stdio.h>#include <fstream>#include <sstream&

2021-01-14 08:09:16 3033 1

原创 iptables/netfilter

1.iptabes1.

2021-01-09 15:55:21 170

原创 ICMP重定向攻击

一.实现思路使用pcap的混杂模式抓取所有可以嗅探到的包,设置过滤器仅抓取ICMP请求报文和ICMP响应报文。打印出抓取的数据包,解析数据包中的目的MAC,源MAC,源IP和目的IP,随后攻击用户,使其不能访问特定的域名(需要设置)。使用raw socket 并设置IP_HDRINCL(使用户能够自己处理IP首部),自己制作IP首部和ICMP重定向报文的首部,发送给受攻击用户。icmp重定向报文首部字段如下:二.代码实现#include <pcap.h>#include &lt

2021-01-04 13:30:52 588

原创 Linux中Shell工作过程

(1)读取用户由键盘输入的命令行。 (2)分析命令,以命令名作为文件名,并将其它参数改造为系统调用execve( )内部处理所要求的形式。(3)终端进程调用fork( )建立一个子进程。 (4)终端进程本身用系统调用wait4()来等待子进程完成(如果是后台命令,则不等待)。当子进程运行时调用execve( ),子进程根据文件名(即命令名)到目录中查找有关文件(这是命令解释程序构成的文件),将它调入内存,执行这个程序(解释这条命令)。(5)如果命令末尾有&号(后台命令符号),则终端进程不用.

2020-12-22 18:25:46 389

原创 solidity抢红包合约的实现

抢红包合约1.代码及注释本合约的运行版本及语言代码pragma solidity ^0.4.0;contract red_envelope{ address private sponsor; //保存红包发起方的地址 uint num = 0; //num用于保存当前已经有多少人领过红包了 uint public left_money; //left_money用于保存红包现在还剩下多少钱 mapping(address =&

2020-11-26 16:19:22 1234

原创 solidity投票(ballot)合约

一.此合约是remix给出的一个投票合约的例子,现对其代码进行注释:1.代码及注释本合约的运行版本及语言代码// SPDX-License-Identifier: GPL-3.0pragma solidity >=0.7.0 <0.8.0;/** * @title Ballot * @dev Implements voting process along with vote delegation */contract Ballot { //投票人的结构

2020-11-10 14:36:33 2417 4

原创 python的栈越界

在写一个使用递归的简单插入排序的时候,发现栈总是会越界,无论设置栈大小为多少都会发生,现在对其做出如下解释:def sort_helper(list_, ): # if low < high: # indexofmin = low # min_ = list_[low] # for i in range(low+1, high): # if list_[i] < min_: #

2020-11-09 20:16:34 481

原创 MySQL的命令行交互使用

1.环境此文章的操作运行在windows10上MySQL版本为:mysql Ver 8.0.22 for Win64 on x86_64 (MySQL Community Server - GPL)2.数据类型:2.库操作创建数据库 CREATE DATABASE <数据库名>;删库drop database <数据库名>;选择数据库 use <数据库名>;3.表操作:此处desc:description4.基本数据操作(增加,删除,修改,查询)

2020-10-29 10:37:55 383

原创 Python和MySQL交互

import pymysql#都是连接数据库后,然后用游标cursor对数据进行操作def databases_operations(): # 建库建表 try: # conn = pymysql.Connect( # host='localhost', # 调用函数时,输入参数不需要在等号”=“两边空格 # user='root', # passwd='', # cha

2020-10-29 10:26:13 110

原创 快速建立经典的stu-course-sc表

CREATE TABLE Student ( Sno CHAR(9) PRIMARY KEY, Sname CHAR(20) UNIQUE, Ssex CHAR(2), Sage SMALLINT, Sdept CHAR(20) ); CREATE TABLE Course ( Cno CHAR(4) PRIMARY KEY, Cname CHAR(40), Cpno CHAR(4

2020-10-29 10:10:49 378

原创 Redis的基本操作

一.环境此文章的操作运行在windows10上Redis版本为:Redis server v=5.0.9 sha=9414ab9b:0 malloc=jemalloc-5.2.1 bits=64 build=25845e7feb545d77二.Redis大纲三.Redis各种数据类型的操作1.String1.字符串最大是512M2.字符串插入,查找和追加(修改),默认以字符串的形式存储的键值对127.0.0.1:6379> set one "1" #插入一条数据 OK127

2020-10-26 19:35:54 177

原创 Mongodb的基本操作

1.Mongodb基本操作1. 数据库创建2. 集合操作3. 集合和数据库的删除>use dbname> db.dropDatabase() #删除一个数据库{ "dropped" : "newdb", "ok" : 1 }> show dbsadmin 0.000GBconfig 0.000GBlocal 0.000GB>use collectionname> show collectionsdatastu> db.d

2020-10-26 19:15:20 130

原创 python个人工具书

一、python中的对象1.字符串的函数操作import sysdef test(): #sys.getrefcount的使用 i = 10_000_000 # 可以这样定义一个较大的整数 print(i,type(i)) print(sys.getrefcount(i)) # i指向10_000_000 print(sys.getrefcount(10_000_000)) # 到目前位置10_000_000被引用了4次

2020-10-23 21:39:16 611

原创 csdn----->pdf

使用chrome浏览器将csdn博客转换为pdf:(function(){$("#side").remove();$("#comment_title, #comment_list, #comment_bar, #comment_form, .announce, #ad_cen, #ad_bot").remove();$(".nav_top_2011, #header, #navigator").remove();$(".p4course_target, .comment-box, .recomme

2020-09-26 10:21:04 118

原创 转载:如何在ipad上使用在线python

学校和寝室特别远,然后自己的笔记本超重,买了一个ipad作为学校的编程工具,找了一个方法来使得可以在ipad的网页上编写python:https://www.jianshu.com/p/50cd046ef5f7注:仅需要将作者GitHub的文件复制到自己新建的github库上,然后按步骤使用即可。...

2020-09-24 18:48:08 2158 1

原创 理解区块链

本文章由老师所上课的内容,加上自己的理解,作为总结写出,并且会提出自己的一些疑问。(疑问会随着进一步学习不断解决)总结1.要理解区块链,需要理解Cryptography(密码学),Economics(经济学),Ditributed systems(分布式系统)三部分的内容1.金融危机,国家灾难都证明了银行或者某一个中心都不是一定可以相信的,因此需要去中心化2.A new digital currency aims to change the finnancial system should ru

2020-09-23 09:11:30 371

原创 python学习知识点

1.输出语句‘’’title=r’tzy’\t577’ #字符串双引号/单引号前面加上r表示字符串原样输出print(title)money_all = 1.2+.31+ 4654print(int(money_all),str(money_all))print(hex(100),oct(100))print(-36%5)#取余运算,结果符号和后者一致,单/结果为浮点数,//结果为整数‘’’print(36%-5,-36%-5,-36%5,36/5,36//5)‘’’(n)=inpu

2020-09-21 20:10:49 461

原创 区块的各种信息

blockhash(uint blockNumber)在0.4.22版本,将block.blockhash(uint blockNumber) returns (bytes32)替换block.coinbase (address): 当前块所属旷工地址block.difficulty (uint): 当前块难度block.gaslimit (uint): 当前块汽油上限block.number (uint): 当前块号block.timestamp (uint): 当前块的时间戳,UNIX时代以

2020-09-19 16:21:24 775

原创 经典合约实例

这篇博客将完成一个经典的众筹合约:1.思路:1)为某个账户或者合约申请一个众筹账号2)允许其他账号对此众筹账户进行捐赠3)检查现有金额是否已经大于目标金额,如果是则将众筹账号注销,将钱转给众筹所指定的人2.代码pragma solidity ^0.6.0;pragma experimental ABIEncoderV2;contract crowd_funding{ //众筹账号的结构体,分别为,众筹接受捐赠的地址,目标金额,现有金额和捐赠者到其捐赠金额的映射 struct

2020-09-19 15:11:53 379

原创 solidity的一些知识点(上)

a**b=a^b位运算(异或运算相同取0不同取1,移位运算是算数移位)view函数不会修改状态,但会读取状态。如果存在下列语句,则被视为是修改了函数,编译器会抛出警告:1)修改状态变量。(状态变量是全局变量或storage变量,即变量值永久保存在合约存储空间中的变量)2)触发事件。3)创建合约。4)使用selfdestruct。5)发送以太。6)调用任何不是视图函数或纯函数的函数7)使用底层调用(call函数)8)使用包含某些操作码的内联程序集。Pure(纯)函数不读取..

2020-09-18 17:17:49 617

原创 Reentrancy Vulnerability

pragma solidity ^0.4.0;contract Bank { address owner; mapping (address => uint256) balances; constructor() public payable{ owner = msg.sender; } function deposit() public payable { balances[msg.sender] += msg.v

2020-09-17 19:44:05 177

原创 Fallback函数

Fallback函数的使用特点:1.无名字,无参数,无返回值2.如果请求的方法在合约中不存在,则会调用fallback函数3.对合约转账的时候,会自动执行fallback函数(可能会产生Reentrancy漏洞)4.在高版本中已经将定义形式改为fallback() external {}pragma solidity ^0.4.0;contract fallbackTest{ uint public a; function(){ a=1;

2020-09-17 16:38:35 2014 1

原创 solidity的一些知识点(下)

从今天开始,我将会学习以太坊智能合约开发的solidity,这里,我将会将我学习过程中遇到的一些值得注意的知识点记录下来并且不断更新。string类型数据作为参数的时候,需要加上memory/calldata.Calldata/memory/storage区别一般只有外部函数的参数(不包括返回参数)被强制指定为calldata。这种数据位置是只读的,不会持久化到区块链memory存储位置同我们普通程序的内存类似,即分配,即使用,动态分配,越过作用域即不可被访问,等待被回收。而对于storage

2020-09-16 19:19:02 465

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除