D~DIDI~DIDIDI!!!!

0%

0x01 CBC加密

1

首先贴上一张原理图,其中:

  1. Plaintext:待加密的数据块
  2. Initialization Vector(IV):用于随机化加密的比特块(初始化向量)
  3. key:随机生成的密钥
  4. Ciphertext:加密后的数据
Read more »

前一段时间做一道题目时,提到了一点关于HTTP请求走私的相关知识,在手机上写了个备忘录,然后就又搁置到现在才开始翻看一些文章,认真学习一下有关于HTTP走私的相关知识。

0x01 需要知道的一些东西

我们需要了解一下目前HTTP1.1协议的两个特性:Keep-Alive和Pipeline

在之前的HTTP协议中,客户端没发送一次http请求都需要和服务器建立一个TCP链接,但是由于现在的web网站打开一个页面需要获取的资源又很多很多,如果每发送一次请求都要建立一个完整的tcp链接,服务器就会产生很大的压力,所以在HTTP1.1中增加了Keep-Alive和Pipeline这两个特性。

Read more »

0x01 Easy Calc

页面打开之后,是一个计算表达式的页面

1

随便输入一个表达式

Read more »

​ 共识是一个区块链系统稳定运行的基础,只有所有节点对区块链达成了共识,这个区块链才是一个健康的系统,这篇文章主要讲了如何添加peer节点以及当节点区块数据不一致时如何解决冲突,达成一致访问。

一、Blockchain类扩展

想要解决和其它节点的区块冲突问题,首先需要能够获取其它节点的数据,我们再Blockchain类里添加一个nodes属性

this.nodes = new Set();

1

这里使用集合,即使重复添加也不受影响。

Read more »

1、挖矿奖励

一、挖矿奖励

开始写代码之前,先了解一下挖矿奖励这个概念。

在前一篇文章中,我们了解到了服务器消耗了自己的计算资源,并计算出了预期结果后,会在区块的第一笔交易的位置创建一笔新的交易,这个交易没有发送人,接手人可以是任何人(通常为自己),奖励的数额由系统设定,在BTC中,最开始的奖励为50BTC,每隔四年减半一次。这笔奖励室友系统保证的,并且可以通过任何一个其他节点的验证。

二、代码重构

我们要将当前的代码改造成适合通过API对外提供的形式,进行一下的处理:

Read more »

​ 我们在上一篇博客中设计了几个最简单的区块链,并且很容易添加更长的区块链来覆盖掉最初的合法交易,为了维持整个系统的健康运行,我们需要设计一定的激励机制。我们都知道,有种东西叫做“挖矿”,在比特币系统中平均每10分钟,比特币系统会奖励一定量的比特币(最初是50个,每四年减少一半)。但是在网络中很多个网络节点一起“挖矿”,我们该怎么分配这个奖励呢?这就是工作量证明(Proof-of-Work)算法产生的原因。

一、Proof-of-Work

​ 一个正常的区块链系统随时都会产生交易,这时候就会有很多服务器将一个时间段(BTC为10分钟,Asch为10秒)的交易打包到一个区块,并添加到现有的区块链中,但是最终的这个时间段该选择哪个服务器打包的区块为准,这是个问题。在BTC中采用了一种叫做工作量证明的算法来决定采用哪一台服务器打包的区块并给与奖励。

​ 工作量算法大致为:在一个时间段内多台服务器同时对交易进行打包后,连带区块的Hsh信息一起经过SHA256算法进行运算,在区块头和奖励交易的coinBase里,各有一个变量nonce,如果运算结果不符合难度要求,那么就调整nonce的值继续运算。如果某台服务器率先计算出符合难度的区块,他就会广播这个区块,其他服务器验证没问题后就可以添加到现有的区块链上,然后所有服务器又继续竞争下一个区块,这个过程就叫做挖矿。

​ 在工作量证明算法中采用了SHA256,他的特点是难以运算但是容易验证,所以找到一个符合难度要求的区块需要耗时10分钟,但是验证它是否有效只是瞬间的事

Read more »

最近在刷CTF web题目的时候,涉及到了区块链相关的题目,然而自己对区块链的认识也仅限于BTC是和区块链有关的,于是赶紧找了点大佬的文章开始阅读并学习,也在大佬的基础上自己重新记录了一下笔记,按照自己的一些理解记录下来,先贴出大佬的链接,我的这个博客,也将和大佬的文章一样,分成四篇来写(其实就是太菜,只能跟着大佬的思路走)

大佬的链接

从零开始构建一个区块链 (一):区块链

从零开始构建一个区块链 (二):工作量证明

从零开始构建一个区块链 (三):API

从零开始构建一个区块链 (四):共识

正文

Read more »

最近简单的了解了一下Volatility这个开源的取证框架,这个框架能够对导出的内存镜像镜像分析,能过通过获取内核的数据结构,使用插件获取内存的详细情况和运行状态,同时可以直接dump系统文件,屏幕截图,查看进程等等等等~~~

0x01 安装

安装分为三步走:

  1. 下载
  2. 安装必要的python依赖文件
  3. 安装本体

下载

你可以在Release中找到对应你系统(Mac,Win,Linux)的源代码,当然也可以通过github去获取源码:

git clone https://github.com/volatilityfoundation/volatility.git

依赖

如果只是用Volatility本体,就不要安装这些依赖,但是如果想使用某些插件,就需要对这些以依赖进行安装·

**Distorm3:**牛逼的反编译库

pip install distorm3

**Yara:**恶意软件分类工具

Read more »