パスワードを忘れた? アカウント作成
13722725 journal
日記

Sukoyaの日記: それでマシン語は役に立ちましたか? 4

日記 by Sukoya

いや、もう10年近く経つのだなぁと。
アーキテクチャの概念としてのマシン語レベルでの動作を理解するのは重要でも、
マシン語を活用できるお仕事ができているだろうか。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by minet (45149) on 2018年09月21日 20時25分 (#3484856) 日記

    C/C++の仕事で厄介なデバッグ(逆アセされたバイナリをステップ実行して解析)をするときに役立った。

  • by Anonymous Coward on 2018年09月22日 5時35分 (#3485035)

    SpectreやMeltdownの仕組みを理解するのにアセンブリで速く動くコード書くために覚えた知識が役に立ちましたよ。
    あれは推定したいデータのビット状態が投機実行で別のキャッシュラインに分散されて反映されるように書くことで、キャッシュに乗ったデータのロード時間の差からデータが推定出来てしまうという問題でした。

    他にも、マシン語の知識があった方が高級言語の知識だけしかない人よりスタックオーバーフローのような脆弱性を埋め込みにくくなるんじゃないでしょうか。
    マシン語はソフト側からCPUの仕組みに触れていくことが出来るので、並列・分散・同期処理のボトルネック分析なんかにも活かせると思います。

  • by Anonymous Coward on 2018年09月23日 2時01分 (#3485568)
    パフォーマンスが必要なところでは未だに現役なのではないかなあ。
    • ILとアセンブリ言語は関係ない→パフォーマンス追及に限りがないということの例示なだけです。
    • コンパイラの最適化の方が高性能→このレベルになると最適化のクセを理解した上でさらに適用するそうです。
  • by Anonymous Coward on 2018年10月02日 13時58分 (#3490496)

    条件ジャンプをちょっと書き換えたりすれば、起動時チェックの回避なんかに使える。
    再コンパイルしなくてもバイナリエディタでちょっと書き換えるだけだから楽。
    具体的には仮想ディスク判定を誤魔化したりとか。

    まぁその程度だな。
    機械語ではないが、MSILならコンパイル結果が同じになるので云々って記事をよく見かける(逆コンパイルが正確すぎるのでやった事はない)。
    C/C++は最適化が掛かりまくるんで逆コンパイル結果がゴミになるから、何かしたい時は逆アセンブルの方が使いやすかったりする。
    内部のアルゴリズムやファイル形式を推測するのには全く使えない。

    最近の話題ならオプソ化されたMS-DOSのソースが見れるとうれしいのかもね。

typodupeerror

私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson

読み込み中...