![見出し画像](https://assets.st-note.com/production/uploads/images/113430473/rectangle_large_type_2_b728785722b7c8fd87294910e977fc81.jpeg?width=1200)
よめないが「リバースエンジニアリングバイブル」姜乘卓(ガン・ビョンタク)著(インプレス 2013)
千夜千冊 1754夜(分理篇)
第1部 リバースエンジニアリングの基礎
第1章 リバースエンジニアリングのためのアセンブラ
第2章 C言語の文法と逆アセンブラ
第3章 C++のクラスとリバースエンジニアリング
第4章 DLLの解析
第2部 リバースエンジニアリング中級
第5章 PEヘッダー
第6章 よく使われるパターン
第7章 MFCリバーシング
第3部 演算ルーチンのリバーシング
第8章 シリアルキー抽出法
第9章 コードフェイキング
第4部 アンチリバースエンジニアリング
第10章 教科書的なアンチデバッグ
第11章 ハイレベルなアンチデバッグ
第12章 パッカーが使用する技術
第13章 回避方法
第5部 一段高いレベルのバイナリ作り
第14章 コードフック
第15章 コードパッチング
第16章 難読化とダミーコード
リバースエンジニアリング(Reverse Engineering)とは、
完成された製品から、製造方法・動作原理・設計図・ソースコード等を
調査することだ。
本書は、ソフトウェアのリバースエンジニアリングについて
詳細に解説する。
C/C++のコードを逆解析。
アプローチのノウハウを結集。
12音階で構成されるポップスの聴きやすくて美しいコード進行とフレーズは、ビートルズが活躍した1960年代で最も活発に使われたと言われる。 「素晴らしいコード進行は既にビートルズがすべて使った」という言葉が あるほど、コードの組み合わせは、既にそのころにほとんど作られたため、現在はフレーズが飽和状態に達し、どのような音楽を聴いてもだいたい 似ている感じがする。裏を返せば、他人が作った音楽を解剖して分析する 側では、だいたい似たような音楽の楽譜を眺めると、その音楽がどのようなコード進行と音階で構成されているかを見つけるのはそれほど難しい事ではない。
リバースエンジニアリングの分野でも同じことが言える。プログラマが 作成した多くのコードの中で登場すべきものはほとんど登場して飽和状態であり、そのような多くのコードの規則性やパターンを学習しておけば、 どのような新しいコードが登場しても、既存のコードから身につけた流れを基にしてうまく分析できる。コードパターンをよく理解しておくと、 リバーシングという戦場で強力な武器になると思う。
自分が開発したソフトウェアが、ハッカーによってリバースエンジニアリングされることは望まない。自分のプログラムがデバッグされていることを気付かせて終了させたい。いや、自分のプログラムの動作中は、デバッガーを開くこと自体許可したくない。
リバースエンジニアリングに対抗するためのアンチデバッグテクニックには、どんなものがあるかについて説明する。
アンチデバッグとは、このように自分のプログラが解析されるのを
防ぐために使用する技術を意味する。
これは、
ファイルの内容やメモリの状態を暗号化することを指す場合もあるが、
実際の現場でのアンチデバッグは、
デバッグを防ぐために、自分のプログラムがデバッグされているかを
監視する方法といったほうが正確だろう。
サウンドソフト業界も大きく発展した。
音楽制作ソフトをいくつかインストールして使い方を少し身につけて、
コンピューターを少し操作するだけで作曲が簡単にできてしまう。
電子楽器をいくつか購入し、プラグを差し込んでいくつかのボタンを
押すだけで音楽が作成できる時代になった。
しかし、だれにでも作れるような音楽を
プロのミュージシャンが魂を込めて作ったサウンドと比べるのは、
インスタントラーメンが作れるようになった程度で、
プロのラーメン職人に挑戦するようなものである。
アンチデバッグに関して少し勉強したとか、
多くの知られたアンチリバーシング技術をいくつか習得した程度で、
アンチデバッグを簡単なものと見なし、
リバーシング防止処理をすべて壊せると考えているとしたら
大きな間違いである。
現場で登場する本物のリバーシング防止技術はレベルが違うからである。
「防御したいなら、攻撃を研究しろ」。
これはハッキングとセキュリティに努める人間の基本姿勢だと言える。
ハッカーの立場、ハッカーが使う技術、そして自分のコードが
どのようにして回避されるかを知ってこそ、
それに合った対応法が模索できる。
ここまでは、必死に防御する方法だけを勉強してきたが、
ここからはいよいよ攻撃法を学ぶ。
コンピュータ言語がチンプンカンプンなのに、
なぜ、この本をとりあげるかと言えば、
今この瞬間、とりあげる本がないからです。いわずもがなでしたか。
しかし、松岡正剛さんは、こういった本まで千夜千冊にとりあげるわけで、
どんな器なんでしょう。
まず、私としては、読まない・読めない宣言をしたので、
この本は、一応ツンドク行きです。この本に申し訳ないが。naka
![](https://assets.st-note.com/img/1692090534259-oZtDX6YYCS.jpg?width=1200)