Explore "Full-Stack" in depth!

情報系の専門学校で、今は機械学習に的を絞って学習中。プログラミングを趣味でやりつつ、IT系のあらゆる知識と技術を身に付けるべく奮闘中。

C言語

Seccamp2019でCコンパイラ実装に取り組みました

概要 応募課題について 問1 問2 問3 集中開発コースについて 成果物とその進捗について 事前学習期間 当日 総評 概要 セキュリティ・キャンプ全国大会2019に参加しました! 集中開発コースの中にある 「Y-Ⅱ Cコンパイラを自作してみよう!」のテーマに応募し、 普…

C言語の文字列はどこに?-ELFバイナリに見る実行プログラムの挙動-

目次 目次 概要 .dataに格納される文字列 .dataセクションとは .rodataに書き込まれる文字列 x64命令セット、movabs おまけ:mallocによるヒープ領域のアロケート 総評 概要 ※注意! Twitterでもご指摘があったように、 本記事はC言語の習熟度が低い人間が いろ…

フルスクラッチによるセルフホスティングCコンパイラ自作日記#1

目次 目次 概要 本題 ヘッダファイル omo.h util.c token main.c logger.c 目玉:lex.c 総評 概要 以前から rui314/9ccをGoで再実装する勉強法を取っていた私ですが、 drumato.hatenablog.com に述べたように、 Cプログラミングに慣れたいということと、 単純に…

バイナリ何もわからない人に送る"ソースコード視点"のELFヘッダ解説

目次 目次 概要 まずはおさらい 本題:readelf 総評 概要 ELFフォーマットを理解するための試み第二弾。 こちらの記事の続きと言ってもいいです。 drumato.hatenablog.com 上記の記事には間違いが多いので注意してください。 本記事バイナリ何もわからない人に送…

UNIX/V6における実行プロセス切り替えのsleep()→swtch()を最低限理解する

目次 目次 概要 前提 UNIX V6とは PSW(Processor Status Word) 汎用レジスタ プロセスとは 並列処理 user構造体 proc[]とproc構造体 仮想アドレス空間 本題 並列処理におけるプロセスのフロー sleep() sleep()まとめ swtch() 実行プロセスの選択アルゴリズム…

DirtyCOW(CVE-2016-5195)を最低限理解する。

目次 目次 概要 前提知識 本題 Linuxとプロセスの関係 PoCを見てみる レースコンディションの仕組み まとめ 概要 LinuxKernelに存在した脆弱性のDirtyCOW 今は完全にパッチが当てられていますが、その仕組みはとても奥深く、 理解にはLinuxKernelの挙動の理解…

実録!WSLを立ち上げてからHello、Worldを出力するまでを自力で解剖する。

目次 目次 概要 前提知識 本題 /init ro Hello,Worldを見つめる プリプロセス コンパイル 参考:もうちょっとだけ深く読む アセンブル リンキング 総評 概要 ※なんの知見もない私が、頑張って内部の動きを理解するという内容の記事です。 普段何気なく書いてい…

2018年を振り返る+2019年の目標を立てる

目次 目次 概要 今年のプログラミング総まとめ Ruby BookManage WeatherReport Drumapi HubAPI Python スクレイピングで画像一括取得 C言語 総評 来年の課題 機械学習・データ分析総まとめ 始まりはマイナビコンペ サラマンダー本で基礎固め そしてKaggle 総…

ふつうのLinuxプログラミング 6章の演習問題!

目次 目次 概要 演習問題 余談 さらに余談 概要 ふつうのLinuxプログラミング 第2版 Linuxの仕組みから学べるgccプログラミングの王道作者: 青木峰郎出版社/メーカー: SBクリエイティブ発売日: 2017/09/22メディア: Kindle版この商品を含むブログを見る は最…

ふつうのLinuxプログラミング 5章の演習問題!

目次 目次 概要 演習問題 総評 概要 ふつうのLinuxプログラミング 第2版 Linuxの仕組みから学べるgccプログラミングの王道作者: 青木峰郎出版社/メーカー: SBクリエイティブ発売日: 2017/09/22メディア: Kindle版この商品を含むブログを見る は最高の本です。…