watermark

Solidity合约安全漏洞分析教程【Mythril】

Deadly 提交于 2020-08-11 00:29:50
在这个教程中,我们将学习Mythril的安装与使用方法,了解Mythril的工作原理,掌握如何利用Ether Thief和Suicide模块分析合约的安全漏洞,以及如何配置Mythril安全分析的交易数量参数和执行超时参数。 用自己熟悉的语言学习以太坊DApp开发: Java | Php | Python | .Net / C# | Golang | Node.JS | Flutter / Dart 1、安装Mythril安全分析工具 执行如下命令安装Mythril: $ pip install mythril 使用如下命令检查安装是否成功,确保版本不低于0.21.7: $ myth version Mythril version v0.21.15 Mythril最基本的安全分析命令是 myth analyze ,例如: $ myth analyze <Solidity file> $ myth analyze -a <contract address> 没有其他参数的话,myth analyze命令将执行适合大多数情况的通用分析。 2、Mythril工作原理 Mythril通过在一个特制的以太坊虚拟机里运行智能合约字节码来检查合约的安全问题,它使用 符号执行 技术来检查程序可能的状态,分析过程包含以下步骤: 1、获取合约字节码 2、初始化合约账户的状态 3

JVM详解之:类的加载链接和初始化

主宰稳场 提交于 2020-08-11 00:19:11
简介 有了java class文件之后,为了让class文件转换成为JVM可以真正运行的结构,需要经历加载,链接和初始化的过程。 这三个过程是怎么工作的呢?在本文中你将会找到答案。 加载 JVM可以分为三大部分,五大空间和三大引擎,要讲起来也不是特别复杂,先看下面的总体的JVM架构图。 从上面的图中,我们可以看到JVM中有三大部分,分别是类加载系统,运行时数据区域和Execution Engine。 加载就是根据特定名称查找类或者接口的二进制表示,并根据此二进制表示来创建类和接口的过程。 运行时常量池 我们知道JVM中有一个方法区的区域,在JDK8中,方法区的实现叫做元空间。这个元空间是存放在本地内存中的。 方法区中存放着每个class对应的运行时常量池。 当类或者接口创建的时候,就会通过class文件中定义的常量池来构建运行时常量池。 运行时常量池中有两种类型,分别是symbolic references符号引用和static constants静态常量。 其中静态常量不需要后续解析,而符号引用需要进一步进行解析处理。 静态常量分为两个部分:String常量和数字常量。 String常量是对String对象的引用,是从class中的CONSTANT_String_info结构体构建的。 数字常量是从class文件中的CONSTANT_Integer_info, CONSTANT

软件测试人常见问题解答,你一定想知道!

回眸只為那壹抹淺笑 提交于 2020-08-10 22:48:06
很多职场转行人员都会遇见这样那样的困惑与问题,今天小编针对同学们的问题作出了有效建议。 我是非计算机专业出身,可以学软件测试吗? 我年纪太大了,竞争不过年轻人,怎么办? 如果学完找不到工作,怎么办? 我是非计算机专业出身,可以学软件测试吗? 首先我想说下,目前国内基本上没有大学开设软件测试的专业,很多人都有误区,其实计算机专业并不属于软件测试专业。 目前这一行要求的主要还是核心技能,测试行业是属于入门容易,但想走远比较难。所以说在转行前一定要确定自己是否真的对这个行业感兴趣,这个可以让自己持续走下去。 我年纪太大了,竞争不过年轻人,怎么办? (想要超车走捷径可以加入我们Q群(718897738)一起齐头并进加油!) 年龄并不是一个决定因素,重要的还是能力。软件测试岗位更注重的是资历,你的实操经验越多,从业经历越丰富,也就越值钱,所以是“越老越吃香”。 并且软件测试行业的职业生涯是很长远的,入行越久,职位越高,工资越高。 来源: oschina 链接: https://my.oschina.net/u/4512374/blog/4297086

ETHER/ERC20批量交易PHP开发包

冷暖自知 提交于 2020-08-10 22:43:26
以太坊批量转账PHP开发包支持以太币ERC20代币的批量转账,有效减少交易手续费。官方下载地址: http://sc.hubwiz.com/codebag/eth-batch-transfer/ 。 1、以太坊批量转账PHP开发包简介 以太坊批量转账PHP开发包的主要特性如下: 支持以太币和ERC20代币一对多转账 只需要支付一个交易的手续费 支持使用公共节点(例如Infura)或自己部署节点 以太坊批量转账PHP开发包运行于PHP7.1+环境下,主要类及相互关系如下图所示: 以太坊批量转账PHP开发包的主要代码文件清单见官网: http://sc.hubwiz.com/codebag/eth-batch-transfer/ 2、合约部署 以下部分说明如何使用附带的脚本和PHP程序部署合约。当然你也可以使用 Solidity在线IDE 部署合约。 进入开发包目录,执行如下命令编译合约: ~$ cd ~/ebt ~/ebt$ ./build-contract.sh 执行如下命令部署合约: ~/ebt$ php deploy-contract.php 在~/ebt/contract/build/目录下的合约部署地址文件(后缀.addr)中记录有合约的部署地址。 3、批量转账PHP API初始化 PHP侧提供的BatchTransfer.php包含了BatchTransfer类的实现

初学Vue.js,用 vue ui 创建项目会不会被鄙视

江枫思渺然 提交于 2020-08-10 22:00:40
全栈的自我修养: 6使用vue ui进行vue.js环境搭建 It is only with the heart that one can see rightly. What is essential is invisible to the eye. 用心才能看得清事物的本质,真正重要的东西是肉眼看不见的。 当你看到这篇文章的时候,暂且认为你对如何做一个网站有了兴趣. 前言 上几篇文章曾经讲过使用 vue-cli 和新版本的 @vue/cli 通过命令的方式创建项目和一些常用的配置,但直接用手动点一下创建项目她不香吗!? 这也是我们第一个前后端示例项目的开始 Phil Karlton 曾说“在 CS 领域中,有两件事是非常难的,一个是缓存失效,一个是命名。” 这里随便起个名字吧,这个项目就叫 kola 了,做一个简单的权限管理系统吧 安装@vue/cli 这里还是要安装 @vue/cli , 如果已经安装了请忽略 epimetheus$ npm install -g @vue/cli 安装速度还是比较慢的,大家可以喝杯水 安装完成后可以 vue --version 看下版本号 epimetheus$ vue --version @vue/cli 4.4.6 创建 Vue 项目 在终端输入命令 $ vue ui 🚀 Starting GUI... 🌠 Ready on http:/

MySQL的存储引擎InnoDB选择了B+ 树

萝らか妹 提交于 2020-08-10 18:11:40
我们知道数据的存储和检索是两个很重要的功能,当我们的数据量大了,怎么能快速的检索数据呢,答案是使用索引,可索引具体的技术实现有很多,选择哪一种呢,我就以mysql为例记录下它为什么选择了B+树作为索引的实现方式。 1. 索引简介    索引是一种用于快速查询行的数据结构 ,就像一本书的目录就是一个索引,如果想在一本书中找到某个主题,一般会先找到对应页码。 MySQL 官方对索引的定义为:索引( Index )是帮助 MySQL 高效获取数据的数据结构。提取句子主干,就可以得到索引的本质: 索引是数据结构 。 2. 索引的几种数据结构类型 2.1 哈希索引(hash index) 哈希索引(hash index)基于哈希表(也可以叫散列表)实现 ,只有精确匹配索引所有列的查询才有效。对于每一行数据,存储引擎都会对所有的索引列计算一个哈希码(hash code),哈希码是一个较小的值,并且不同键值的行计算出来的哈希码也不一样。哈希索引将所有的哈希码存储在索引中,同时在哈希表中保存指向每个数据行的指针。 下面举个小例子 它能快速的检索数据,不过在mysql数据库却有局限: a): 哈希索引数据并不是按照索引值顺序存储的,所以无法用来进行排序; b): 不能进行多列字段查询数据; c): 更不支持范围查询,比如查询年龄大于30,。 d): 有大量重复键值的情况下,哈希索引的效率也是极低的

spring源码解析(一):spring整体架构概述

落爺英雄遲暮 提交于 2020-08-10 13:43:32
下面简单解释下JPA和JDO: JPA: JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体 对象持久化 到数据库中。 JDO :JDO(Java Data Object )是Java 对象持久化 的新的规范,也是一个用于存取某种数据仓库中的对象的标准化API。 Portlet : Portlet是基于Java的Web组件,由Portlet容器管理,并由容器处理请求,生产动态内容。Portals使用Portlets作为可插拔 用户接口 组件,提供 信息系统 的 表示层 。作为利用Servlets进行Web应用编程的下一步,Portlets实现了Web应用的模块化和用户中心化。 Portlet规范,即JSR(Java Standardization Request )168,是为了实现Portal和Portlet的互操作。它定义了Portlet和Portlet容器之间的合约,让Portlet实现个性化、表示和安全的API集。规范还定义了怎样在Portlets应用中打包Portlets。 Portlet与Servlet的区别 由于_Portlet_与_Servlet_存在若干不同之处,所以在编写基于_Portlet_应用时要注意以下几个问题: Servlet_是与表现层无关的

SDL开发笔记(一):SDL介绍、编译使用以及工程模板

瘦欲@ 提交于 2020-08-10 13:31:55
若该文为原创文章,未经允许不得转载 原博主博客地址: https://blog.csdn.net/qq21497936 原博主博客导航: https://blog.csdn.net/qq21497936/article/details/102478062 本文章博客地址: https://blog.csdn.net/qq21497936/article/details/107160508 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门) Qt开发专栏:三方库开发技术(点击传送门) 上一篇:无 下一篇:持续补充中… <br> 前言   开发过程中,需要操作一些硬件,如播放音频、播放视频,SDL作为通用的C库,可以实现同一套代码操作设备。 <br> SDL简介   Simple DirectMedia Layer是一个跨平台的开发库,旨在通过OpenGL和Direct3D提供对音频、键盘、鼠标、操纵杆和图形硬件的低级访问。它用于视频播放软件、模拟器和流行游戏,包括Valve获奖目录和许多不起眼的捆绑游戏。   SDL正式支持Windows、macosx、Linux、iOS和Android。源代码中可以找到对其他平台的支持。   SDL是用C++编写的,用C+

【有奖众测】快服务开发者俱乐部第一期来咯!

蹲街弑〆低调 提交于 2020-08-10 10:11:25
  快服务平台2.0 即将上线,现诚邀各路开发者参与有奖公测,回复你的使用感受和对新平台的建议,更有大奖等你拿~    活动截止日期: 2020年7月31日    活动对象: 企业开发者    活动规则: 1.点击立即报名,或发送邮件至快服务平台公邮 hagservice@huawei.com 报名参与公测。   2.收到报名成功邮件后下载附件-Demo示例,使用快服务平台2.0创建其中任一快服务,回帖上传自测试成功图片并反馈使用感受和建议。 邮件示例: 收件人:hagservice@huawei.com 主 题:企业名称+快服务平台2.0公测报名 正 文:您的企业开发者账号    特别说明: 1.如果您已经通过联盟活动入口报名,则无需重复报名。   2.企业开发者账号即认证过企业开发者的华为账号,如您还没有该账号请先移步华为开发者联盟注册并认证。    7月17日更新:   喜大普奔~!快服务平台2.0上线时间改为8月12日,大家的公测拿奖时间更长啦!而且为了给广大开发者们送上福利,只要 在8月12 日至8月31日之间提交服务 并 反馈您的使用感受和建议 即可参加活动 ~ 小编已经在打包礼物了,不知道您的邮寄地址是哪里呢?快来参加活动吧~    获奖规则:   ①根据提出的有效建议数量,选出TOP5名获奖如下    一等奖(1名):成功创建快服务且有效意见数排名第一    二等奖

Java程序员必备的11大Intellij插件

陌路散爱 提交于 2020-08-10 10:02:49
善用Intellij插件可大幅提升我们的效率 以下是我用过不错的Intellij插件 1. .ignore 地址: https://plugins.jetbrains.com/plugin/7495--ignore 生成各种ignore文件,一键创建git ignore文件的模板,免得自己去写 截图: 2. lombok 地址: https://plugins.jetbrains.com/plugin/6317-lombok-plugin 支持lombok的各种注解,从此不用写getter setter这些 可以把注解还原为原本的java代码 非常方便 截图: 3. p3c 地址: https://plugins.jetbrains.com/plugin/10046-alibaba-java-coding-guidelines 阿里巴巴出品的java代码规范插件 可以扫描整个项目 找到不规范的地方 并且大部分可以自动修复 更多可看: https://github.com/alibaba/p3c/tree/master/idea-plugin 4. FindBugs-IDEA 地址: https://plugins.jetbrains.com/plugin/3847-findbugs-idea 检测代码中可能的bug及不规范的位置,检测的模式相比p3c更多, 写完代码后检测下