{"componentChunkName":"component---src-templates-blog-post-js","path":"/readingsummary_Jun20/","result":{"data":{"site":{"siteMetadata":{"title":"/dev/yukarinoki"}},"markdownRemark":{"id":"3a9b9687-68f0-5cae-8a40-030233c61643","excerpt":"やったこと libfuzzer tutorial https://github.com/google/fuzzing/blob/master/tutorial/libFuzzerTutorial.md   fuzzingとは、ランダムな入力をプログラムに入力してバグを検出すること。特にメモリ周り(heap…","html":"<h1 id=\"やったこと\" style=\"position:relative;\"><a href=\"#%E3%82%84%E3%81%A3%E3%81%9F%E3%81%93%E3%81%A8\" aria-label=\"やったこと permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>やったこと</h1>\n<h2 id=\"libfuzzer-tutorial\" style=\"position:relative;\"><a href=\"#libfuzzer-tutorial\" aria-label=\"libfuzzer tutorial permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>libfuzzer tutorial</h2>\n<p><a href=\"https://github.com/google/fuzzing/blob/master/tutorial/libFuzzerTutorial.md\">https://github.com/google/fuzzing/blob/master/tutorial/libFuzzerTutorial.md</a>  </p>\n<p>fuzzingとは、ランダムな入力をプログラムに入力してバグを検出すること。特にメモリ周り(heap-overflow, stack-overflow)。\nコードカバレッジが100%になるまで上手いこと入力を変化させてくれる。<br>\nそんなん上手くいくのかと思うが、上手くいくときもあるし、上手くいかないときにプログラマが入力のヒントをいれることもできる。  </p>\n<p>実際、CVE-2014-0160　<a href=\"https://www.ipa.go.jp/security/ciadr/vul/20140408-openssl.html\">https://www.ipa.go.jp/security/ciadr/vul/20140408-openssl.html</a>　　\nはfuzzingで検出できる。（できるだけで、fuzzingによって初めて発見されたかは自信がない）    </p>\n<p>僕はテストとか人間が書くべきなのか？と思っており、fuzzingに希望を見出している。（テストを書くのは（反例を作るのは）人間の脳には難しいと思う）<br>\nただ、メモリリークとかを検出するのは難しいらしい。  </p>\n<p>やりたいひとはgitpodで環境構築したので下のリポジトリからどうぞ<br>\n<a href=\"https://github.com/yukarinoki/fuzzing-tutorial\">https://github.com/yukarinoki/fuzzing-tutorial</a>  </p>\n<p>仕組みが知りたい人は<br>\n<a href=\"https://github.com/google/fuzzing/blob/master/docs/structure-aware-fuzzing.md\">https://github.com/google/fuzzing/blob/master/docs/structure-aware-fuzzing.md</a>  </p>\n<h1 id=\"読んだもの\" style=\"position:relative;\"><a href=\"#%E8%AA%AD%E3%82%93%E3%81%A0%E3%82%82%E3%81%AE\" aria-label=\"読んだもの permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>読んだもの</h1>\n<h2 id=\"into-thin-error-mountaineer-ed-viesturs-on-making-mistakes\" style=\"position:relative;\"><a href=\"#into-thin-error-mountaineer-ed-viesturs-on-making-mistakes\" aria-label=\"into thin error mountaineer ed viesturs on making mistakes permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Into Thin Error: Mountaineer Ed Viesturs on Making Mistakes</h2>\n<p><a href=\"https://slate.com/news-and-politics/2010/06/into-thin-error-mountaineer-ed-viesturs-on-making-mistakes.html\">https://slate.com/news-and-politics/2010/06/into-thin-error-mountaineer-ed-viesturs-on-making-mistakes.html</a></p>\n<p>登山家が極限状態でのミスの経験とかミスに対する考えとかを喋ってる。<br>\n山登ってみたいけど死ぬのはこわい。\n登山家の課題は、神様が（地球が）与えた形で自然に定まってるから、羨ましいなと思う。ピオレドールとかすごく夢あっていい。\nコンピュータ科学はマッチポンプみたいなところがあるので。</p>\n<p><strong>天才</strong> Ueli Stechが死んだときからずっと思ってるけど、どれほど能力があっても山に登ってれば漸近的に100%死ぬから、そういう事実と登山家が生きたいと思う感情はどういう風に混ざり合っているのか、どこかの登山家にエッセイでも書いて欲しい。\n<a href=\"https://www.youtube.com/watch?v=VUWBbepsdmY\">https://www.youtube.com/watch?v=VUWBbepsdmY</a>  </p>\n<h2 id=\"日本人の給料安すぎ問題の意外すぎる悪影響\" style=\"position:relative;\"><a href=\"#%E6%97%A5%E6%9C%AC%E4%BA%BA%E3%81%AE%E7%B5%A6%E6%96%99%E5%AE%89%E3%81%99%E3%81%8E%E5%95%8F%E9%A1%8C%E3%81%AE%E6%84%8F%E5%A4%96%E3%81%99%E3%81%8E%E3%82%8B%E6%82%AA%E5%BD%B1%E9%9F%BF\" aria-label=\"日本人の給料安すぎ問題の意外すぎる悪影響 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>日本人の｢給料安すぎ問題｣の意外すぎる悪影響</h2>\n<p><a href=\"https://toyokeizai.net/articles/-/357011?page=4\">https://toyokeizai.net/articles/-/357011?page=4</a>　     　</p>\n<p>「300円の牛丼が美味しいから日本人は幸せ」みたいな論法を聞くと、この記事に書いてあるような気持ちがむくむく湧いてくる。\n<strong>monopsony</strong>という言葉は覚えておこうと思った。</p>\n<h2 id=\"consolemihai\" style=\"position:relative;\"><a href=\"#consolemihai\" aria-label=\"consolemihai permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>console.mihai()</h2>\n<p><strong>Firefoxのコンソールを立ち上げ（F12）console.mihai()と入力すると表示される</strong>URLから読める。  </p>\n<p>いい話、エンジニアっていい仕事ですね。</p>\n<h2 id=\"ライフタイムで参照を検証する\" style=\"position:relative;\"><a href=\"#%E3%83%A9%E3%82%A4%E3%83%95%E3%82%BF%E3%82%A4%E3%83%A0%E3%81%A7%E5%8F%82%E7%85%A7%E3%82%92%E6%A4%9C%E8%A8%BC%E3%81%99%E3%82%8B\" aria-label=\"ライフタイムで参照を検証する permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>ライフタイムで参照を検証する</h2>\n<p><a href=\"https://doc.rust-jp.rs/book/second-edition/ch10-03-lifetime-syntax.html\">https://doc.rust-jp.rs/book/second-edition/ch10-03-lifetime-syntax.html</a>  </p>\n<p>Rustを理解中。ライフタイムみたいな概念は初めて知ったが、C++で構造体・クラスにポインタを入れるときには「このポインタがいつまでもつかちゃんと管理し続けられるのかな・・・」と毎回思う。C++はそれをIQで何とかする設計なので、書くときはお腹に力をいれていたけど、Rustなら安心できそう。  </p>","tableOfContents":"<ul>\n<li>\n<p><a href=\"/readingsummary_Jun20/#%E3%82%84%E3%81%A3%E3%81%9F%E3%81%93%E3%81%A8\">やったこと</a></p>\n<ul>\n<li><a href=\"/readingsummary_Jun20/#libfuzzer-tutorial\">libfuzzer tutorial</a></li>\n</ul>\n</li>\n<li>\n<p><a href=\"/readingsummary_Jun20/#%E8%AA%AD%E3%82%93%E3%81%A0%E3%82%82%E3%81%AE\">読んだもの</a></p>\n<ul>\n<li><a href=\"/readingsummary_Jun20/#into-thin-error-mountaineer-ed-viesturs-on-making-mistakes\">Into Thin Error: Mountaineer Ed Viesturs on Making Mistakes</a></li>\n<li><a href=\"/readingsummary_Jun20/#%E6%97%A5%E6%9C%AC%E4%BA%BA%E3%81%AE%E7%B5%A6%E6%96%99%E5%AE%89%E3%81%99%E3%81%8E%E5%95%8F%E9%A1%8C%E3%81%AE%E6%84%8F%E5%A4%96%E3%81%99%E3%81%8E%E3%82%8B%E6%82%AA%E5%BD%B1%E9%9F%BF\">日本人の｢給料安すぎ問題｣の意外すぎる悪影響</a></li>\n<li><a href=\"/readingsummary_Jun20/#consolemihai\">console.mihai()</a></li>\n<li><a href=\"/readingsummary_Jun20/#%E3%83%A9%E3%82%A4%E3%83%95%E3%82%BF%E3%82%A4%E3%83%A0%E3%81%A7%E5%8F%82%E7%85%A7%E3%82%92%E6%A4%9C%E8%A8%BC%E3%81%99%E3%82%8B\">ライフタイムで参照を検証する</a></li>\n</ul>\n</li>\n</ul>","frontmatter":{"title":"Jun 2020 読んだもの、やったこと","date":"June 20, 2020","description":""}}},"pageContext":{"slug":"/readingsummary_Jun20/","previous":{"fields":{"slug":"/Gatsby + Netlify/"},"frontmatter":{"title":"Gastby + Netlifyで高速なblog"}},"next":{"fields":{"slug":"/memorandumForSelfLeaner/"},"frontmatter":{"title":"自分用備忘録 CS自学者のために(Teach Your Self Computer Science)"}}}}}