セキュリティを学ぶのに役立った本
コンピュータサイエンス
低レベルプログラミング
セキュリティコンテストチャレンジブックとゼロからのOS自作入門、リンカ・ローダ実践開発テクニックなど併せて読み進めると、以下のような知識が整理される
アセンブリ言語
セキュリティを学ぶのに役立った本
コンピュータサイエンス
低レベルプログラミング
セキュリティコンテストチャレンジブックとゼロからのOS自作入門、リンカ・ローダ実践開発テクニックなど併せて読み進めると、以下のような知識が整理される
アセンブリ言語
あらすじ
アセンブラとC11でIntel 64ビットプログラミングモデルを堪能する!
「IoT」というコトバが爆発的に広がり、老若男女だれもが知っているIT用語となった昨今ではあるけれど、そのインフラストラクチャとしてのPCアーキテクチャは、大多数の人々にとってはブラックボックスのままです。
たぶんReverse Engineering(リバースエンジニアリング)の略?
前提知識
wgetでファイルをダウンロードする
curlでもよい
tarコマンドでtarファイルを解凍する
経緯
very early C
K&R
C言語の開発者の頭文字
ブライアン・カーニハン
本来は、アセンブリ言語を機械語に翻訳するソフトウェア。
アセンブリ言語と同じ意味で使われているような気がする
シンボル
シンボルを絶対アドレスに置き換える
UNDなシンボルは、暫定的なアドレスを割り当てて、後でリンカが解決する
岩田聡
https://www.4gamer.net/games/999/G999905/20151225009/
驚いたのは,なんと岩田さんは,アセンブリ言語で書かれたゲームボーイ版のソースを見ながら,それをC言語に書き換えるというやり方で作っていたんですね。
手動逆コンパイルに近いと思う
多分これができるようになるには
アセンブリ言語
cf. 低レベルプログラミング
現時点ではx86_64アーキテクチャの内容のみです。他のアーキテクチャでは動作が異なる場合があります。
アセンブリ言語でも、関数を使って処理を抽象化することができる。
call命令 / ret命令
x86アーキテクチャを学習するのに良いのかな
OS自作する本
C言語を使わないでNASMを使ったアセンブリ言語だけで書くというから驚いた
アセンブリ言語の本
from アセンブリ言語のプリプロセッサ
アセンブリ言語でマクロを定義するには、%defineを使う
%define number 42
mov rax, number
アセンブリ言語のプリプロセッサは、置換したあとの文法が正しいかどうかについて、まったく関知しない
アセンブリ言語でマクロを定義する
並行プログラミング入門の2.1.1節
アセンブリ言語では、
x0=x1+x2
のような数式を
add x0 x1 x2;