- 博客(18)
- 收藏
- 关注
原创 python singleton模式
再看框架源码是看到这样一段代码class Singleton(type): """A metaclass type implementing the singleton pattern.""" _instances = {} # type: Dict def __call__(cls, *args, **kwargs): if cls not in cls._instances: cls._instances[cls] = super(S
2021-08-03 17:24:37 230
原创 python -m的可用情况
今天conda安装环境的时候,发现pip安装失败,报错INFO: This is taking longer than usual. You might need to provide the dependency resolver wit h stricter constraints to reduce runtime. If you want to abort this run, you can press Ctrl + C to do so. To improve h
2021-08-02 17:09:45 1349
原创 solc-select转换solc版本
安装solcsudo add-apt-repository ppa:ethereum/ethereumsudo apt-get updatesudo apt-get install solc安装solc-selectpip install solc-select# 我的conda环境用这句会报错,我用的是下面这句,意思是将python库中的模板将脚本来运行python -m pip install solc-select使用solc-select转换solc版本# 当前so.
2021-08-02 15:57:20 1349
原创 关于Mythril和Symbolic的介绍
关于Mythril和Symbolic的介绍原文网址:https://joran-honig.medium.com/introduction-to-mythril-classic-and-symbolic-execution-ef59339f259b Mythril是一个符号执行漏洞,支持重入和溢出漏洞的检测,我是一个MythX的一个核心成员,负责维护,改善和开发Mythril。 我的一个设计目标是Mythril可以使得分析变得简单和不费力一些。换句话说,你不需要去得到计算机科学博士学位才能开始使用
2021-06-27 19:54:24 537
原创 剑指 Offer09.用两个栈实现队列
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例输入:["CQueue","appendTail","deleteHead","deleteHead"][[],[3],[],[]]输出:[null,null,3,-1]["CQueue","deleteHead","appendTail","appendTail",".
2021-02-07 20:51:11 169
原创 剑指 Offer07. 重建二叉树
题目输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。示例前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]思路递归,注意两个节点参数和一个边界条件,有时间写推理过程代码 size = len(preorder) def recur(root,left,right): if left > right:retu
2021-02-04 15:47:56 108
原创 剑指offer05.替换空格
题目请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例输入:s = "We are happy."输出:"We%20are%20happy."思路比较判断,需要注意的是在java和python中,字符串被设置为不可变类型,需要重新初始化一个列表类型,依次复制,利用join函数将列表转换为字符串。或者直接利用python的replace函数replace(" ","%20")或者return ''.join(('%20' if c==' ' else c for c in s)
2021-02-03 23:47:09 104
原创 剑指 Offer 04. 二维数组中的查找
题目在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例现有矩阵 matrix 如下:[[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22],[10, 13, 14, 17, 24],[18, 21, 23, 26, 30]]给定 target = 5,返回 true。给定
2021-02-02 21:29:34 105 1
原创 剑指offer03
题目:在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 思路把每个数换到对应的位置,比如把2放到nums[2]位置交换之前判断,如果需要换的位置就是数本身,则返回,比如nums[2] =2, 就return 2python代码class Solution(object):
2021-02-01 17:00:24 113
原创 漏洞挖掘工具manticore的使用
利用pip创建虚拟环境防止包依赖冲突python3 -m pip install --user --upgrade pip # 安装或者更新pippython3 -m pip install --user virtualenv # 安装virtualenvpython3 -m venv manticore #第二个参数是创建虚拟环境的位置。通常,您可以在项目中创建它并调用它env。venv将在该env文件夹中创建虚拟Python安装。source manticore/bin/activate
2020-11-29 19:57:43 1468 1
原创 [论文02]ZEUS Analyzing Safety of Smart Contracts
ZEUS: Analyzing Safety of Smart Contracts0.ABSTRACT1. introdution贡献 :happy:分类已知或者之前发现但为研究漏洞,报告可能会带来的金钱损失。❓本文结合抽象解释和符号模型检测,提出了一种用于验证智能合约的实体性执行语义的形式抽象ZEUS: 抽象解释和符号模型检查的框架,首次建立solidity到llvm字节码的转换器,并且通过已给策略自动插桩。 建立谓词提取工具,使多方交互变的容易检验结果,但未调查这些错误的实际可利用性。
2020-11-29 15:41:09 1031
原创 论文02 security
securify的安全模式securifysecurify的安全模式1. Securify Language1. 语法2. 语义3. securify的属性和模式:confused:3.1 Ether Liquidity(LQ)2. NoWrites After Calls (NW)3. Restricted Writes(RW)附附加知识bnf范式a. [BNF范式(巴科斯范式)简介](https://www.cnblogs.com/huiyenashen/p/4445676.html)在此模块作者展
2020-11-29 15:21:38 634
原创 solidity基础知识
自己学习会参考到的一些基础知识,记录一下,主要包括solidity 函数修饰符1. payable 修饰符payable声明的函数可以从调用者那里接受ether,如果发送方没有提供ether,则调用可能会失败。 也就是说一个函数声明为payable,那么就只能收取ether。2. internal 修饰符该函数和变量仅能内部访问,或在继承的合约中调用。是默认情况下的修饰符,不可加this关键字3. private 修饰符与internal唯一的区别在于继承的合约中不可以访问。 私有函数并非
2020-11-28 17:36:20 565
原创 [论文01]Smart Contract Vulnerability Analysis and Security Audit
[论文01]Smart Contract Vulnerability Analysis and Security Auditintroduction本文对以太坊智能合约的各种漏洞进行了调查,并提出了相应的防御机制来应对这些漏洞。特别地,我们关注类Fomo3d游戏合同中的随机数漏洞(radom number vulnerability),以及所应用的攻击和防御方法。最后,对现有的以太智能合同安全审计方法进行了总结,并从不同角度对几种主流审计工具进行了比较。以太坊智能合约漏洞由于以太坊智能合约一经部
2020-10-28 09:54:08 769 1
原创 以太坊智能合约存储变量的四种数据结构
1. storage合约中可以被所有函数访问的全局变量。storage的存储是永久存储,意味着以太坊会把它存到公链环境里的每一个节点上。会永久保存合约状态变量,燃料消耗最大。2. Memory在合约中的内存变量,生命周期为合约开始到执行结束,执行结束后被销毁。仅保存临时变量,函数调用之后释放,消耗燃料很少。3. Calldata所有函数调用的数据,包括函数参数的保存位置。是不可修改的内存位置。它包含消息体的数据,其计算需要增加n * 68(n是calldata中的非零字节数)的gas费用4
2020-10-26 09:03:57 1586 4
原创 智能合约漏洞检测之mythril简介与使用
这里写自定义目录标题mythril简介安装mythril相关预备知识远程服务器相关知识centos系统相关知识docker相关利用docker安装运行智能合约检测漏洞新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入myth
2020-08-08 23:15:02 2880 11
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人