如何让你的项目同时支持go vendor和go module
摘要:如何让你的项目同时支持go vendor和go module <! @import "[TOC]" {cmd="toc" depthFrom=1 depthTo=6 orderedList=false} 1. go module简介 go module是go在1.11版本引入的新的版本依赖工具,是对
阅读全文
posted @
2018-11-07 20:37
baizx
阅读(13321)
推荐(0) 编辑
Plasma Cash合约解读
摘要:Plasma Cash合约解读 "SmartPlasma 合约解读" "1. 合约代码" "2. 合约文件简单介绍" "3. Plasma Cash 的基础数据结构" "3.1 Plasma Cash 中的资产" "3.2 Plasma Cash中的交易" "3.3 Plasma Cash 中的 B
阅读全文
posted @
2018-09-14 21:46
baizx
阅读(631)
推荐(0) 编辑
使用 dlv 调试go 程序
摘要:使用 dlv 调试smartraiden by 白振轩 <! @import "[TOC]" {cmd="toc" depthFrom=1 depthTo=6 orderedList=false} <! code_chunk_output "使用 dlv 调试smartraiden" "一 正常启动
阅读全文
posted @
2018-08-24 15:08
baizx
阅读(2955)
推荐(0) 编辑
go test 高级技巧
摘要:Go advanced testing tips & tricks This post is based on talk I gave at Vilnius Golang meetup. I have read many blogs, watched talks and gathered all t
阅读全文
posted @
2018-05-17 09:51
baizx
阅读(1488)
推荐(0) 编辑
以太坊系列之十八: 百行go代码构建p2p聊天室
摘要:百行go代码构建p2p聊天室 "百行go代码构建p2p聊天室" "1. 上手使用" "2. whisper 原理" "3. 源码解读" "3.1 参数说明" "3.1 连接主节点" "3.2 我的标识" "3.2 配置我的节点" "3.3 哪个聊天室" "3.3 加入聊天室" "3.4 群发消息"
阅读全文
posted @
2017-09-11 15:07
baizx
阅读(6501)
推荐(1) 编辑
解决golang windows调试问题:Could not determine version number: could not find symbol value for runtime.buildVersion
摘要:版本信息: go:1.8.3 windows: win7/64 idea go plugin:171.4694.61 在windows下,使用dlv进行调试的时候,如果golang程序引入了c模块,比如常用的sqlite模块,那么在调试的时候一定会发生这个错误: · Could not determ
阅读全文
posted @
2017-07-15 11:20
baizx
阅读(1612)
推荐(0) 编辑
go-spew golang最强大的调试助手,没有之一
摘要:go内置的fmt.sprintf已经很强大了,但是和spew比起来还是相形见绌,这里来一个例子. 对比一下,看看输出有多美:
阅读全文
posted @
2017-06-09 08:45
baizx
阅读(1371)
推荐(0) 编辑
以太坊系列之七: p2p模块的dial--以太坊源码学习
摘要:dial.go阅读手记 dial.go是负责和peer建立连接关系的地方,主要是实现 其中最复杂的是newTasks,是建立新的连接,从test代码中可以看出, 要在指定的最大连接数(peers)基之上去创建新的连接 lookupBuf // current discovery lookup res
阅读全文
posted @
2017-06-08 16:43
baizx
阅读(3633)
推荐(0) 编辑
以太坊系列之六: p2p模块--以太坊源码学习
摘要:p2p模块 p2p模块对外暴露了Server关键结构,帮助上层管理复杂的p2p网路,使其集中于Protocol的实现,只关注于数据的传输. Server使用discover模块,在指定的UDP端口管理网络中结点的发现以及维护,discover模块能够直接和临近结点交换各自已知结点信息,从而不断的更新
阅读全文
posted @
2017-06-08 16:42
baizx
阅读(3061)
推荐(1) 编辑
以太坊系列之三: 以太坊的crypto模块--以太坊源码学习
摘要:以太坊的crypto模块 该模块分为两个部分一个是实现sha3,一个是实现secp256k1(这也是比特币中使用的签名算法). 需要说明的是secp256k1有两种实现方式,一种是依赖libsecp256k1,需要cgo,另外一种是依赖 "github.com/btcsuite/btcd" ,这是一
阅读全文
posted @
2017-06-03 09:21
baizx
阅读(12709)
推荐(2) 编辑
以太坊系列之二: 单调时间monotime-以太坊源码学习
摘要:在程序中需要测量时间时最好使用monotime.Now()而不是time.Now(),相比之下前者更准确. 来个示例: 可以看到,精确到毫秒级 ,以太坊中用来度量时间
阅读全文
posted @
2017-06-01 14:35
baizx
阅读(2634)
推荐(1) 编辑
以太坊系列之一: 以太坊RLP用法-以太坊源码学习
摘要:"RLP" (递归长度前缀)提供了一种适用于任意二进制数据数组的编码,RLP已经成为以太坊中对对象进行序列化的主要编码方式。RLP的唯一目标就是解决结构体的编码问题;对原子数据类型(比如,字符串,整数型,浮点型)的编码则交给更高层的协议;以太坊中要求数字必须是一个大端字节序的、没有零占位的存储的格式
阅读全文
posted @
2017-06-01 14:15
baizx
阅读(10765)
推荐(1) 编辑
windows下go编码转换问题
摘要:github上有两个package做编码转换,都是基于iconv,用到了cgo,在linux下没有问题,在windows下用,非常麻烦。采用mingw安装libiconv也不行,一直提示找不到libiconv方法。 最终找到一个官方实现(纯go实现):https://code.google.com/p/go/source/checkout?repo=text gbk转utf-8示例: ...
阅读全文
posted @
2016-06-15 17:17
baizx
阅读(1305)
推荐(0) 编辑
arp欺骗进行流量截获-2
摘要:上一篇讲了原理,那么这一篇主要讲如何实现。基本上也就是实现上面的两个步骤,这里基于gopacket实现,我会带着大家一步步详细把每个步骤都讲到。 ARP 欺骗 首先就是伪造ARP请求,让A和B把数据包发到我这里来。 利用gopacket 发送一个ARP请求,下面是一个实现函数,可以用来发送一个指定ip地址和mac地址的arp请求。 //send a arp reply from srcIp to ...
阅读全文
posted @
2016-06-09 22:32
baizx
阅读(2371)
推荐(0) 编辑
arp欺骗进行流量截获-1
摘要:这边博文主要讲一下怎么使用arp欺骗进行流量截获,主要用于已经攻入内网以后,进行流量监听以及修改。 一、什么是arp arp协议是以太网的基础工作协议,其主要作用是是一种将IP地址转化成物理地址的协议,在以太网上进行通信的时候并不直接使用ip地址作为主机标识,而是使用MAC地址,也就是物理地址。 某机器A要向主机B发送报文,会查询本地的ARP缓存表,找到B的IP地址对应的MAC地址...
阅读全文
posted @
2016-06-09 21:37
baizx
阅读(1046)
推荐(0) 编辑
一个简单的tcp代理实现
摘要:There are a number of reasons to have a TCP proxy in your tool belt, bothfor forwarding traffic to bounce from host to host, but also when assessingne
阅读全文
posted @
2016-05-17 08:29
baizx
阅读(10952)
推荐(0) 编辑
go tcp使用
摘要:TCP clientThere have been countless times during penetration tests that I've neededto whip up a TCP client to test for services, send garbage data, fuzz, orany number of other tasks. If you are workin...
阅读全文
posted @
2016-05-17 08:22
baizx
阅读(732)
推荐(0) 编辑
windows下go调用内存dll
摘要:有时候我们希望将dll嵌入到程序内部,以提高程序的安全性,这里我写的一个开源memorydll模块。 首先 go get github.com/nkbai/go-memorydll 然后在需要的时候 import "go-memorydll"即可, 使用起来也非常简单,这里从test例子中摘取. testdll,_:=base64.StdEncoding.DecodeString(testdll...
阅读全文
posted @
2016-04-18 10:56
baizx
阅读(980)
推荐(0) 编辑
go与c互相调用
摘要:此例子来自于go源码中,借此来和大家分享一下两者如何调用,网上很多文章语言不详,也没有一个完整的测试例子 目录结构 首先src 目录下有 testcgowin目录下: 这里的_obj目录是cgo生成的 这里需要展示的是go中如何调用c语言导出函数,以及在c语言中如何调用go的导出函数. 关键是cthread.go和cthread_windows.c两个文件 go文件 cthread.go内...
阅读全文
posted @
2016-04-17 17:33
baizx
阅读(4614)
推荐(0) 编辑
说一下我认识的*nix下的服务器热重启
摘要:步骤: 第一: 收到SIGTERM以后现在的服务器监听socket停止accept 但是并没有停止listen,这个很关键.(所以客户端发起的tcp连接的syn得不到synack,只是继续等待,而不会被拒绝) 第二: 收到sigterm的现有进程继续处理已经accept的socket. 直到处理完毕结束退出. 第三: 在收到sigterm以后,接着发...
阅读全文
posted @
2015-12-19 11:25
baizx
阅读(368)
推荐(0) 编辑