問題タブ [objdump]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
disassembly - ビッグエンディアン && リトルエンディアン?
この声明の意味を誰か教えてください。
"オブジェクト ファイルのエンディアンを指定します。これは逆アセンブルにのみ影響します。これは、S レコードなど、エンディアン情報を記述しないファイル形式を逆アセンブルする場合に役立ちます。"
windows - GNU binutils (objdump) の使用/インストール方法
Windows で実行するアプリケーションで objdump コマンドと readelf コマンドを使用する必要があります。それらを使用するためにcygwinをインストールできることを知っています。cygwinを使いたくない理由は、デプロイするエッセイにしたいからです。さらに、cygwin をサイレント インストールする方法がわかりません。その結果、リンクにはこれらのライブラリがサーバーレスであると記載されているため、必要なのはGNU Utilities For Win32であると思います。「実行可能ファイルは Microsoft C ランタイム (msvcrt.dll) のみに依存し、Cygwin ツールによって提供されるようなエミュレーション レイヤーには依存しません」
とにかく、そのリンクにアクセスすると、インストール方法がわかりません。具体的には>このツール<
私のアプリケーションで objdump と readelf (cygwin の binutils) をどのように使用できるようになるかについて、誰かが正しい方向を示してくれれば幸いです。
c++ - プログラムの objdump -D が .S と異なって見えないのはなぜですか
C++ のツールチェーンを学習し、objdump を試しています。
objdump から逆アセンブルされたファイルには、「Hello World」という単語さえありません。何故ですか?まったく信頼できないのですか?
arm - 逆アセンブル中に ARM 命令とデータを分離する方法
私は/(binutilsを使用して)thumb2(16ビットおよび32ビット)命令の手動分解を行うためのコードを書いています。本物の ARM 命令と DATA 部分を区別する問題に直面しています。
最大の問題は、命令がワードで整列されていないことです。そのため、32 ビット命令を読み取ろうとすると、多くの場合、実際には次の命令と重複します。
助けてください。
ありがとう、VJ
linux - オブジェクトファイルのobjdump出力のフラグ
いくつかのオブジェクトファイルにobjdumpの次の出力があります。
これらのフラグCONTENTS、ALLOC、LOADなどはどういう意味ですか?
assembly - objdumpで使用される逆アセンブリライブラリ
バイナリコードの逆アセンブルを行うライブラリを探しています。
そのlibdisasmが私が望むのとまったく同じタスクを実行することがわかりました。ただし、libdisasmが64ビットの実行可能ファイルでは機能しないことを示すリンクがいくつか見つかりました。それが正しいか ?
しかし、64ビット実行可能ファイルに対するobjdumpの出力は信頼できます(私の知る限り)。それで、objdumpも逆アセンブルに同様のライブラリを使用しますか?当初、objdumpはlibdisasmを使用すると思いました。
linux - ldd と objdump の違いは何ですか?
これら 2 つのコマンドを実行していますが、異なる出力が得られます。
その後
どうしたの?両方ともライブラリの依存関係を与えたと思いましたか?私が気にかけている理由はldd
、それが正しいと思われるからですが、私が知ることができる ldd がない ARM 上の Linux に取り組んでいます...
mips - 共有オブジェクトのバイナリ関数をカスタムのものに置き換える (MIPSEL の下)
MIPSEL コア (リトル エンディアン MIPS) を搭載したデバイスの内部に侵入しようとしています。付属のソフトウェアが壊れていて、意図したとおりに動作しないためです (また、毎月何千台も購入していないため、メーカーは私を助けてくれません)。
このデバイスには telnet コンソールがあり、再配置可能なコードを持つ共有オブジェクト (.so ファイル) を変更するファームウェア アップグレードが既に行われています。その上で呼び出されることがわかっている関数が 1 つあります。そのため、このデバイスの特定の機能にアクセスし、/etc/passwd を変更するためのバイナリを既に実行しているので、telnet で接続できます (これは、カスタムを手動でフラッシュした後に実行できます)ファームウェア自身)。
私はすでに両方のファイルを「objdump」しており、両方を分解しています。
私の質問は:
ボックスでコードを実行できるように、元のライブラリの特定の関数をカスタムの関数に置き換えるにはどうすればよいですか? objcopy が機能することは知っていますが、これを実現するためのドキュメントを入手するのはちょっと難しいです。
私がやりたいのはウイルスのようなものですが、それを配布したり、他の人のデバイスに侵入したりしたくありません (ちなみに、私が話しているこのデバイスは非常にまれです)。
アップデート
バイナリを手動でマージし、カスタム関数を「バイナリで」コピーしてから、再配置リテラルを手動で変更しました。元の共有オブジェクトに既にリンクされている外部関数のみを使用するように注意しました。ただし、デバイスの起動時に (奇妙なことに) 使用される関数を変更したため、デバイスからロックアウトされ、それを更新できる脆弱性を持つメイン バイナリが機能しなくなりました。
c - ELF セクションとシンボルのサイズを分析するツール
ARM 用の GCC コンパイラの出力ファイルを分析する方法が必要です。私はベアメタル用にコンパイルしていますが、サイズにかなり関心があります。クロスコンパイラが提供するものを使用できますarm-none-eabi-objdump
が、出力の解析は、このタスク用のツールが存在する場合、私が熱心に行うものではありません。そのようなツールが存在することを知っていますか?私の検索では結果が見つかりませんでした。
もう 1 つ、私自身のコード内のすべての関数は、独自のセクションにあります。