Nullable

旧レガシーガジェット研究所

O'Reilly『Attack Surface Management』読書ログ

www.oreilly.com

O'Reillyの『Attack Surface Management』を読み、ASMの全体像から資産識別・優先順位付け・継続監視までを実務目線で整理したメモ。

この本はASM(アタックサーフェス・マネジメント)を「ツール導入の話」ではなく、組織の意思決定と運用を回すためのフレームワークとして説明してくれる。

ここでは各章を、現場で使う前提で要点をまとめる。

続きを読む

RESP(Redisプロトコル)を話す in Golang.

概要

ひょんなことをキッカケにGo言語で簡易的なRedisのサーバを書いたので簡単にまとめようと思う。

https://github.com/0n1shi/beehive-redis

動作としては以下のように普通のRedisサーバとなんら変わりなく、redis-cliからも接続することができる(コマンド数は極端に少ないが)。

# terminal 1
$ beehive-redis run --config conf.yaml
2022/02/20 09:17:27 starting Beehive Redis server ...
# terminal 2
$ redis-cli
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> set msg "hello world"
OK
127.0.0.1:6379> get msg
"hello world"
続きを読む

CPUをつくる ~ FPGA編 ~

概要

FPGA上で動作するMIPSプロセッサを作ったので学習の流れや大まかな作り方をまとめる。

mips-fpga

https://github.com/0n1shi/mips-fpga

成果物

続きを読む

CPUエミュレータを書く

概要

https://github.com/0n1shi/mipsemu

CPUエミュレータを書いたのでまとめる。 今回書いたのはMIPS1のCPUエミュレータ。命令は全て実装したわけではなくC言語のコードいくつか書きクロスコンパイルしたバイナリを実際に動作させ、ある程度のコードが問題なく動作することを確認した。

実際には以下のようなC言語を書き、

int c = 0;

int main(void) {
    int a = 10;
    int b = 3;
    c = plus(a, b);
    return 0;
}

int plus(unsigned int a, unsigned int b) {
    return a + b;
}

ビルドしたバイナリをエミュレータで実行した結果が以下になる。

f:id:k--onishi:20210211153548p:plain

続きを読む