問題タブ [hex-editors]
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.
security - バイナリ実行可能ファイルから定数やその他の定義済みの値を抽出することは可能ですか?
ここにこのプログラムがあるとしましょう
さて、このプログラムをビルドした後、16 進エディタまたはその他のユーティリティを使用して、コンパイルされたバイナリ ファイルから値「foo」と「bar」を抽出する方法はありますか?
また、メモリ エディタが許可されていないと仮定しましょう。
これは、C++ などのすべてのコンパイル済み言語に適用できますか? Java や C# などの別の環境で実行されるものはどうですか?
binary - 16進値でキャンセル値をスタートアップ実行ファイルに返す
プログラムのスタートアップ実行ファイルを編集して、エラー メッセージを削除し、メッセージが表示された場合に押す「キャンセル」ボタンの値を自動的に返します。
私は 16 進ファイルで、WRITTEN .LIKE .THIS のエラー メッセージを見つけました。テキストとして解釈されるように、プログラム内のエスケープ キーです。その後、Visual Basic でファイルを開き、16 進数のキーが 10160 であることを発見し、0 を返すためにファイルの値を 00 に変更しましたが、起動時にプログラムがクラッシュしました。
その値を自動的に取得するためにバイナリに入れる必要があるキャンセルボタンの値は何ですか?
c# - c#exeで16進コードを変更
16進コードとしてC#を使用して画像を変更するにはどうすればよいですかhttp://prntscr.com/1oiw50
Exe はこのようには動作しませんが、試しています。
linux - 16 進エディタを安全に使用する方法を学ぶにはどうすればよいですか?
純粋に探索的な方法で、単純なプログラムの hexediting を試してみたいと思っています。これが問題のプログラムの機能を危険にさらすことはわかっています (それで問題ありません) が、ランダムに編集されたバイナリを実行することによるシステム (Linux) へのリスクは何ですか?
起こりうる最悪の事態は何ですか?常に避けるべき特定の変更、講じることができる予防策はありますか? これに関連するリソースはありますか? (調べてみましたが、これに当てはまるものは見つかりませんでした)
編集: 実際にランダムに編集するつもりはないことを明記する必要があります。それは単なる仮説です。
elf - 16進エディタを使用してELF実行可能ファイルで宣言された整数変数を見つける
16 進エディターを使用して、実行可能ファイルで宣言された整数変数の値を変更したいのですが、コードで宣言された変数型 int があり、変数が次のとおりであることを知っているとします。
整数値 = 1337;
16 進エディタを使用して値 1337 を検索して実行可能ファイルを編集し、別の値に変更したいです。ubuntu で ghex を試しましたが、検索方法がわかりません。16 進数に変換しましたが、見つかりませんでした。 、よろしくお願いします。
c - 実行可能なバイナリ ファイルに文字を挿入すると、ファイルが「破損」するのはなぜですか?
実行可能なバイナリ ファイルに文字を挿入すると、ファイルが「破損」するのはなぜですか?
また、コンパイルされたプログラムを壊さずに文字を追加する方法はありますか?
バックグラウンド
16 進エディタを使用して、コンパイル済みの実行可能ファイルのコードを変更し、通常どおり実行できることは長い間知っていました...
例
以下のアプリケーションの例として、Facebook
を に変更してLacebook
も、プログラムは問題なく実行されます。
しかし、それは新しいキャラクターで壊れます
また、新しいキャラクターを追加すると、プログラムが壊れて実行されなくなったり、すぐにクラッシュしたりすることも承知しています。たとえば、My
の前に追加すると、次のようにFacebook
なります。
私が知っていること
- 私はいくつかの作業を行い、コードが人間が読める形式で記述され、コンパイルされ、実行可能ファイルにリンクされている
C
ことを理解しています。 - アセンブリ言語の初歩的な研究を行い、移動するデータ、コマンド、およびポインターに関する概念を理解しています。
- Windows、Mac、Linux 用の小さなプログラムを作成しました
わからないこと
- オペレーティング システムと実行可能ファイルの関係がよくわかりません。プログラムの名前を入力してリターンキーを押すと、基本的にオペレーティングシステムにそのファイルを「実行」するように指示していると思います。これは、基本的に、ファイルをメモリにロードし、プロセッサのポインタをそれに設定し、それを伝えることを意味します'行け!'
- バイナリ ファイルのテキスト文字列に余分な文字が含まれていると問題が発生する理由を理解しています
知りたいこと
- 余分な文字が原因でプログラムが壊れるのはなぜですか?
- プログラムが壊れていると判断するのは何ですか? OS?また、OS はこのプログラムをサンドボックス化して、最近システム全体をクラッシュさせないようにしていますか?
- コンパイルされたプログラムのテキスト文字列に 16 進エディタを使用して余分な文字を追加し、アプリケーションが壊れないようにする方法はありますか?