タグ

ブックマーク / rkx1209.hatenablog.com (3)

  • 低レイヤーの歩き方 - るくすの日記 ~ Out_Of_Range ~

    この記事は Kobe University Advent Calendar25日目の記事です。 低レイヤー技術(後述)をこれから学びたい人向けの入門記事です。 自身の経験を踏まえ、より多くの人達にこのレイヤーに興味を持ってほしくて書きました。 決して卒論がやばくてAdvent calendarのネタが作れなかったわけでは(ry なぜこんな記事を書いたか いわゆるシステムプログラミングのような低レイヤー(と言って差し支えない)ジャンルって一体何から始めれば良いのかいまいちピンと来ないし、何が面白いのかも分からないと思われている事が多いと思います。 にもかかわらず低レイヤーの魅力や学び方の指針みたいな物を示した、いわゆる入門記事ってかなり少ないんですよね。 記事はこれからシステムプログラミングを始めたい方や、既にかじってみたが中々先が見えてこない、将来何の役に立つのか不安という方達に読んでい

    低レイヤーの歩き方 - るくすの日記 ~ Out_Of_Range ~
  • 高機能バイナリトレーサqiraはどのように実装されているのか - るくすの日記 ~ Out_Of_Range ~

    1. qiraとは qiraとは世界的なハッカー、George Hotz氏 (ジョージ・ホッツ - Wikipedia) によって開発された高機能バイナリトレーサーであり、qiraという名は(QEMU Interactive Runtime Analyser)の略である。 GitHub - BinaryAnalysisPlatform/qira: QEMU Interactive Runtime Analyser 略語を見れば分かるがuser mode QEMUを使用したバイナリ解析ツールであり、ELFなどの実行形式バイナリを実際に動作させて各命令のレジスタ、メモリへの操作を逐次記録する。 これらの記録はweb UIを通して好きな命令位置にカーソルを移動させるだけで見ることができ、その時のレジスタ、メモリの記録が再現される仕組みになっている。ソフトウェアのデバッグやCTFにおけるバイナリ解

    高機能バイナリトレーサqiraはどのように実装されているのか - るくすの日記 ~ Out_Of_Range ~
  • 弾幕ゲー開発用スクリプト言語を自作した話 - るくすの日記 ~ Out_Of_Range ~

    なんとなくスクリプト言語を作ってみたくなったので、東方のような弾幕ゲーで敵の行動,弾幕パターンを記述するためのスクリプト言語を作ってみました。 (最近のゲーム業界ではわざわざDSLを作るより、LuaやHaxeのような汎用的なスクリプト言語と組み合わせるのが普通みたいですが) 近年コンパイラ基盤の普及で、比較的コンパイラ開発の敷居は下がってると思いますが、せっかくなので今回はLLVMなどのコンパイラ基盤を使わず、フロントエンドから バックエンド,インタプリタまで全て自力でフルスクラッチ開発してみました。 またパーサージェネレーターなども一切使っていません。 github.com フロントエンド 文法はLL(k)のような固定長ではなく任意長先読みで、パックラット構文解析器を実装しました。例えば敵の弾幕スクリプトは以下のように書きます。 let count=0; let cx=GetCenter

    弾幕ゲー開発用スクリプト言語を自作した話 - るくすの日記 ~ Out_Of_Range ~
  • 1