0x01 CBC加密
首先贴上一张原理图,其中:
- Plaintext:待加密的数据块
- Initialization Vector(IV):用于随机化加密的比特块(初始化向量)
- key:随机生成的密钥
- Ciphertext:加密后的数据
D~DIDI~DIDIDI!!!!
我们在上一篇博客中设计了几个最简单的区块链,并且很容易添加更长的区块链来覆盖掉最初的合法交易,为了维持整个系统的健康运行,我们需要设计一定的激励机制。我们都知道,有种东西叫做“挖矿”,在比特币系统中平均每10分钟,比特币系统会奖励一定量的比特币(最初是50个,每四年减少一半)。但是在网络中很多个网络节点一起“挖矿”,我们该怎么分配这个奖励呢?这就是工作量证明(Proof-of-Work)算法产生的原因。
一个正常的区块链系统随时都会产生交易,这时候就会有很多服务器将一个时间段(BTC为10分钟,Asch为10秒)的交易打包到一个区块,并添加到现有的区块链中,但是最终的这个时间段该选择哪个服务器打包的区块为准,这是个问题。在BTC中采用了一种叫做工作量证明的算法来决定采用哪一台服务器打包的区块并给与奖励。
工作量算法大致为:在一个时间段内多台服务器同时对交易进行打包后,连带区块的Hsh信息一起经过SHA256算法进行运算,在区块头和奖励交易的coinBase里,各有一个变量nonce,如果运算结果不符合难度要求,那么就调整nonce的值继续运算。如果某台服务器率先计算出符合难度的区块,他就会广播这个区块,其他服务器验证没问题后就可以添加到现有的区块链上,然后所有服务器又继续竞争下一个区块,这个过程就叫做挖矿。
在工作量证明算法中采用了SHA256,他的特点是难以运算但是容易验证,所以找到一个符合难度要求的区块需要耗时10分钟,但是验证它是否有效只是瞬间的事
最近简单的了解了一下Volatility这个开源的取证框架,这个框架能够对导出的内存镜像镜像分析,能过通过获取内核的数据结构,使用插件获取内存的详细情况和运行状态,同时可以直接dump系统文件,屏幕截图,查看进程等等等等~~~
安装分为三步走:
你可以在Release中找到对应你系统(Mac,Win,Linux)的源代码,当然也可以通过github去获取源码:
git clone https://github.com/volatilityfoundation/volatility.git
如果只是用Volatility本体,就不要安装这些依赖,但是如果想使用某些插件,就需要对这些以依赖进行安装·
**Distorm3:**牛逼的反编译库
pip install distorm3
**Yara:**恶意软件分类工具