IA32の機械語
IA32の機械語 命令フォーマット IA-32の機械語は以下のような組み合わせで構成されています。 プレフィクス ModRM SIB ディスプレースメント 即値 最小の命令はNOP(0x90)などオ…
View ArticleHelloWorld.o -オブジェクトファイルの_mainから_putsを呼び出す-
最小限のオブジェクトファイル 自作コンパイラを作成するにあたって、まずは最小限のオブジェクトファイルを作成することから始めました。 文字列定数"Hello, World!\0"を.rdataセクショ…
View Articleインタプリタは「コードを1行ずつ機械語に変換する」はガセネタ
はじめに 多分これはガセネタです。おそらく日本だけで出回っているガセネタです。インタプリタにはそのような定義はありません。インタプリタは「ソースコードを読み込んで意味を解釈して実行するプログラム」 …
View Article🧶作った CTF🎍低レイヤの勉強にも!
お正月にCTFを作って友達や親戚、先生などに配ったものを、4/9である今日に(?)、(少し変えて)Qiitaにポストします。 低レイヤの勉強にもなると思いますので、解いていただければ幸いです。 問題…
View ArticleASCII 印字可能文字縛りで IchigoJam のマシン語プログラムを書く
IchigoJam におけるマシン語 IchigoJam^regtr では、USR 関数を用いてマシン語のプログラムを呼び出すことができる。 ここでは、以下の命令セットを用いることができる。 Cor…
View Article[memo]コンパイルとビルドの違い
コンパイルとビルドの違いについて考えてみた 初記事です!アウトプット用に書いてみました。もし何か間違いとかあればコメントしてくれると嬉しいです! C言語の入門書に、コンパイルとビルドについてそれぞれ…
View Article逆アセンブラを実装しながら学ぶx86-64機械語とアセンブラ
春先の暇つぶしに、x86-64機械語を学びながら逆アセンブラ (バイナリから元のアセンブラを復元するコード) を標準ライブラリのみで実装したので、その際に作ったメモをここに置いておきます。 コードは…
View ArticleZ80 たっぷり休むプログラム[Joke]
たっぷり休むプログラムです。何にもしないのも良いものです。 org 0000h nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop オブジェクトコー…
View Article