みんなのためのReverse Engineering
(0xinfection.github.io)紹介
-
x86 講座
- Part 1: 目標
- Part 2: 技術
- Part 3: マルウェアの種類
- Part 4: x86 アセンブリ入門
- Part 5: 2進数システム
- Part 6: 16進数システム
- Part 7: トランジスタとメモリ
- Part 8: バイト、ワード、ダブルワードなど
- Part 9: x86 基本アーキテクチャ
- Part 10: 汎用レジスタ
- Part 11: セグメントレジスタ
- Part 12: 命令ポインタレジスタ
- Part 13: 制御レジスタ
- Part 14: フラグ
- Part 15: スタック
- Part 16: ヒープ
- Part 17: Linux のインストール方法
- Part 18: vim テキストエディタ
- Part 19: アセンブリを学ぶ理由
- Part 20: 命令コード処理
- Part 21: プログラムのコンパイル方法
- Part 22: ASM プログラム 1 [即値データ移動]
- Part 23: ASM デバッグ 1 [即値データ移動]
- Part 24: ASM ハッキング 1 [即値データ移動]
- Part 25: ASM プログラム 2 [レジスタ間のデータ移動]
- Part 26: ASM デバッグ 2 [レジスタ間のデータ移動]
- Part 27: ASM ハッキング 2 [レジスタ間のデータ移動]
- Part 28: ASM プログラム 3 [メモリとレジスタ間のデータ移動]
- Part 29: ASM デバッグ 3 [メモリとレジスタ間のデータ移動]
- Part 30: ASM ハッキング 3 [メモリとレジスタ間のデータ移動]
- Part 31: ASM プログラム 4 [レジスタとメモリ間のデータ移動]
- Part 32: ASM デバッグ 4 [レジスタとメモリ間のデータ移動]
- Part 33: ASM ハッキング 4 [レジスタとメモリ間のデータ移動]
- Part 34: ASM プログラム 5 [レジスタを通じた間接アドレッシング]
- Part 35: ASM デバッグ 5 [レジスタを通じた間接アドレッシング]
- Part 36: ASM ハッキング 5 [レジスタを通じた間接アドレッシング]
- Part 37: ASM プログラム 6 [CMOV 命令]
- Part 38: ASM デバッグ 6 [CMOV 命令]
- Part 39: ASM ハッキング 6 [CMOV 命令]
- Part 40: 結論
-
ARM-32 講座 1
- Part 1: 人生の意味
- Part 2: 数値システム
- Part 3: 2進数の加算
- Part 4: 2進数の減算
- Part 5: ワード長
- Part 6: レジスタ
- Part 7: プログラムカウンタ
- Part 8: CPSR
- Part 9: リンクレジスタ
- Part 10: スタックポインタ
- Part 11: ARM ファームウェアのブート手順
- Part 12: フォン・ノイマンアーキテクチャ
- Part 13: 命令パイプライン
- Part 14: ADD
- Part 15: ADD デバッグ
- Part 16: ADD ハッキング
- Part 17: ADDS
- Part 18: ADDS デバッグ
- Part 19: ADDS ハッキング
- Part 20: ADC
- Part 21: ADC デバッグ
- Part 22: ADC ハッキング
- Part 23: SUB
- Part 24: SUB デバッグ
- Part 25: SUB ハッキング
-
ARM-32 講座 2
- Part 1: 人生の意味 Part 2
- Part 2: 数値システム
- Part 3: 2進数の加算
- Part 4: 2進数の減算
- Part 5: ワード長
- Part 6: レジスタ
- Part 7: プログラムカウンタ
- Part 8: CPSR
- Part 9: リンクレジスタ
- Part 10: スタックポインタ
- Part 11: ファームウェアのブート手順
- Part 12: フォン・ノイマンアーキテクチャ
- Part 13: 命令パイプライン
- Part 14: ハロー・ワールド
- Part 15: ハロー・ワールド デバッグ
- Part 16: ハロー・ワールド ハッキング
- Part 17: 定数
- Part 18: 定数デバッグ
- Part 19: 定数ハッキング
- Part 20: 文字変数
- Part 21: 文字変数デバッグ
- Part 22: 文字変数ハッキング
- Part 23: ブール変数
- Part 24: ブール変数デバッグ
- Part 25: ブール変数ハッキング
- Part 26: 整数変数
- Part 27: 整数変数デバッグ
- Part 28: 整数変数ハッキング
- Part 29: 浮動小数点変数
- Part 30: 浮動小数点変数デバッグ
- Part 31: 浮動小数点変数ハッキング
- Part 32: double 変数
- Part 33: double 変数デバッグ
- Part 34: double 変数ハッキング
- Part 35: SizeOf 演算子
- Part 36: SizeOf 演算子デバッグ
- Part 37: SizeOf 演算子ハッキング
- Part 38: 前置インクリメント演算子
- Part 39: 前置インクリメント演算子デバッグ
- Part 40: 前置インクリメント演算子ハッキング
- Part 41: 後置インクリメント演算子
- Part 42: 後置インクリメント演算子デバッグ
- Part 43: 後置インクリメント演算子ハッキング
- Part 44: 前置デクリメント演算子
- Part 45: 前置デクリメント演算子デバッグ
- Part 46: 前置デクリメント演算子ハッキング
- Part 47: 後置デクリメント演算子
- Part 48: 後置デクリメント演算子デバッグ
- Part 49: 後置デクリメント演算子ハッキング
-
x64 講座
- Part 1: サイバー革命
- Part 2: トランジスタ
- Part 3: 論理ゲート
- Part 4: 数値システム
- Part 5: 2進数の加算
- Part 6: 2進数の減算
- Part 7: ワード長
- Part 8: 一般アーキテクチャ
- Part 9: 呼び出し規約
- Part 10: ブール命令
- Part 11: ポインタ
- Part 12: 有効アドレスのロード
- Part 13: データセグメント
- Part 14: SHL 命令
- Part 15: SHR 命令
- Part 16: ROL 命令
- Part 17: ROR 命令
- Part 18: ブートセクタの基本 [Part 1]
- Part 19: ブートセクタの基本 [Part 2]
- Part 20: ブートセクタの基本 [Part 3]
- Part 21: ブートセクタの基本 [Part 4]
- Part 22: ブートセクタの基本 [Part 5]
- Part 23: ブートセクタの基本 [Part 6]
- Part 24: ブートセクタの基本 [Part 7]
- Part 25: ブートセクタの基本 [Part 8]
- Part 26: ブートセクタの基本 [Part 9]
- Part 27: x64 アセンブリ [Part 1]
- Part 28: x64 アセンブリ [Part 2]
- Part 29: x64 アセンブリ [Part 3]
- Part 30: x64 アセンブリ [Part 4]
- Part 31: x64 アセンブリ [Part 5]
- Part 32: x64 アセンブリ [Part 6]
- Part 33: x64 アセンブリ [Part 7]
- Part 34: x64 C++ 1 コード [Part 1]
- Part 35: x64 C++ 2 デバッグ [Part 2]
- Part 36: x64 C++ 3 ハッキング [Part 3]
- Part 37: x64 C と生命の起源
- Part 38: x64 ネットワーキングの基本
- Part 39: なぜ C なのか?
- Part 40: ハロー・ワールド ハッキング!
- Part 41: 変数ハッキング!
- Part 42: 分岐ハッキング!
- Part 43: ポインタハッキング!
-
ARM-64 講座
- Part 1: 人生の意味
- Part 2: 開発環境の設定
- Part 3: "ハロー・ワールド"
- Part 4: "ハロー・ワールド" デバッグ
- Part 5: "ハロー・ワールド" ハッキング
- Part 6: 基本 I/O
- Part 7: 基本 I/O デバッグ
- Part 8: 基本 I/O ハッキング
- Part 9: char プリミティブデータ型
- Part 10: char プリミティブデータ型デバッグ
- Part 11: char プリミティブデータ型ハッキング
- Part 12: ブール型プリミティブデータ型
- Part 13: ブール型プリミティブデータ型デバッグ
- Part 14: ブール型プリミティブデータ型ハッキング
- Part 15: 浮動小数点プリミティブデータ型
- Part 16: 浮動小数点プリミティブデータ型デバッグ
- Part 17: 浮動小数点プリミティブデータ型ハッキング
- Part 18: double プリミティブデータ型
- Part 19: double プリミティブデータ型デバッグ
- Part 20: double プリミティブデータ型ハッキング
-
Pico ハッキング講座
- Part 1: 理由と方法
- Part 2: ハロー・ワールド
- Part 3: ハロー・ワールド デバッグ
- Part 4: ハロー・ワールド ハッキング
- Part 5: char
- Part 6: char デバッグ
- Part 7: char ハッキング
- Part 8: int
- Part 9: int デバッグ
- Part 10: int ハッキング
- Part 11: float
- Part 12: float デバッグ
- Part 13: float ハッキング
- Part 14: double
- Part 15: double デバッグ
- Part 16: double ハッキング
- Part 17: "絶対権力は絶対的に腐敗する!", 入力の悲劇的な物語
- Part 18: "800年間、私はジェダイを訓練してきた!", 入力の力
- Part 19: 入力
- Part 20: 入力デバッグ
-
Reverse Engineering For Everyone!
- リバースエンジニアリングとは何か?
- Wikipedia によると、リバースエンジニアリングとは人工物を分解して設計、アーキテクチャ、コードなどを明らかにしたり、対象から知識を抽出したりするプロセスである。これは自然現象を研究する科学的研究に似ている。
- このチュートリアルセットは、リバースエンジニアリングをできるだけ簡単にするために存在する。
- この包括的なリバースエンジニアリングのチュートリアルセットは、x86、x64、32ビット ARM、64ビット ARM アーキテクチャを扱う。
- 初心者がリバースエンジニアリングの基本概念を身につけるのに役立ち、概念を復習したい人にも有用である。
- PDF または MOBI 形式でチュートリアルセット全体をダウンロードできる。
- リバースエンジニアリングとは何か?
GN⁺のまとめ
- この記事では、x86、x64、ARM-32、ARM-64、および Pico ハッキング講座を含むさまざまなリバースエンジニアリングのチュートリアルを扱う。
- 初心者から中級レベルのリバースエンジニアリング技術を身につけたい人に役立つ資料である。
- サイバーセキュリティ分野では、リバースエンジニアリング技術は非常に重要である。
- PDF および MOBI 形式でチュートリアルを提供し、アクセスしやすさを高めている。
- 類似の機能を持つプロジェクトとしては、"Practical Reverse Engineering" と "Reversing: Secrets of Reverse Engineering" がある.
まだコメントはありません。