リバースエンジニアリング 入門


リバースエンジニアリングについてです。  
素人らしい質問に申し訳ないですが疑問に思うことを分けて質問します。  
その前に一応私はハッキングに関心がありましてどのOSでもデバッグできるようになりたいです。  
つまり Linux, Windows
の色々なソフトウェアをデバッグしたりネットワークパケットを自ら修正できるほどの上級者になりたいです（プログラミング分野はなれてます）

  1. 一応基本知識が少なくとも入門できるということは知ってます。ですが  
リバースエンジニアリング勉強する時に一応深く理解したいというこだわりがありまして  
だから入門する前に基本を整えてからしたいと思ってます。  
今私が考えてるカリキュラムはアセンブリ,win32api,pefile仕組み,linuxapiなどです。  
これらを勉強したらリバースエンジニアリングとシステムハッキングに役に立つのでしょうか。  
そして以外にも役立つ内容があったら教えてほしいです。

  2. アセンブリに関して調べてみたのですがnasm,masm,64ビットアセンブリ  
色々なアセンブリがありまして混乱しているのですが、  
私はどのOSからでもデバッグしたいです。  
どのようなアセンブラを学べばいいのでしょうか。

  3. win32api以外にwin64apiの内容はあるのでしょうか。  
64ビットのソフトをデバッグするときwin64apiの内容は必要なのでしょうか。




車も普段はリバースで走らないのと同じで、リバースエンジニアリングってのは（フォワード）エンジニアリングが身についていてなんぼだと思います。

A1.

> 一応深く理解したい

のであれば余計に「フツーのエンジニアリング」を理解しておかないと意味がありません。それなしでリバースエンジニアリングとか、はっきり言って100年早いでしょ。

A2. どんな OS ってことは組み込み系の uITRON とかも含みますか？ いろんなマイコン (RX/SH/ARM-Cortex/PIC 等)
も含みますか？

アーキテクチャってのがわかればどんなマイコンでも短時間でアセンブラが使えるようになります（オイラがそうです、自信もって保証します）１つのマイコンだけ使えてもおいしくありません。アーキテクチャがなぜそうなっているか、背景を知っておくといくらでも応用ができます。アセンブラなんてのはそのあとで十分。

A3. アセンブラレベルのデバッグするなら「そのアーキテクチャにおける ABI 仕様」ってのは知っている前提です。必要ですか？なんて訊くまでもない。

