問題タブ [x86]
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.
javascript - この milw0rm ヒープ スプレー エクスプロイトはどのように機能しますか?
私は通常、JavaScript コードを読むのに苦労しませんが、これについてはロジックを理解できません。このコードは、4 日前に公開されたエクスプロイトからのものです。これはmilw0rmにあります。
コードは次のとおりです。
これが私が信じていることであり、私が誤解している部分についてあなたに助けてもらいたい.
変数shellcode
には、 を開くためのコードが含まれていますcalc.exe
。どうやってその奇妙な文字列を見つけたのかわかりません。何か案が?
2 つ目は変数ですspray
。この奇妙なループがわかりません。
memory
3 つ目は、どこにも使用されない変数です。なぜ彼らはそれを作成するのですか?
最後に: XML タグはページ内で何をしますか?
今のところ、私は良い答えを持っていますが、ほとんどは非常に一般的なものです. コードの価値についてもっと説明が欲しいです。例はunescape("%u0a0a%u0a0a");
です。どういう意味ですか?ループについても同じです。なぜ開発者は次のように書いたのですlength < 0xd0000
か。このコードの理論だけでなく、より深い理解をお願いします。
x86 - プロセス メモリ内の Unicode 文字列
Unicode 文字列が処理されるときに、メモリ内で最も優先される Unicode 文字列の形式は何ですか? なぜ?
実行可能ファイル イメージを作成してプログラミング言語を実装しています。明らかに、実用的なプログラミング言語の実装には、文字列を処理するためのプロトコルが必要です。
動的配列は実装が非常に簡単で、短い文字列に対して非常に効率的であるため、動的配列を文字列の基礎として使用することを考えました。この方法で文字列を使用する場合、文字の最適な形式についてはわかりません。
x86 - smalltalk オブジェクトとの動的リンク
私の smalltalk 方言に動的リンクを実装することを計画しています。問題は、動的リンクでメッセージ パッシングを機能させることです。
メッセージの受け渡し自体は次のように単純です。セレクターを含むメッセージがオブジェクトに送信され、オブジェクトはそのプロトコルからセレクターに一致するメソッドを取得し、メッセージにバンドルされたデータを処理して結果を返します。
画像ベースの実装では、非常に簡単な方法でメッセージ パッシングを実装できます。メッセージ セレクターは、グローバル シンボル テーブルから変換された単なる整数にすることができ、プロトコルは、整数とアドレスを含むハッシュ テーブルにすることができます。そのグローバル シンボル テーブルを使用して、すべてが 1 つの大きなイメージにコンパイルされていると仮定します。
動的リンクでは、シンボル テーブルが正しいセレクターを指していると想定することはできません。文字列をセレクターとして使用することで問題を回避できますが、言語が遅くなる運命にあります。
1 つの方法があり、プロトコルとセレクターのテーブルをコピーして、プロセスがそれらを適切に再配置する必要があります。しかし、それはかなりの労力のように聞こえます。
この問題を解決するためのより良い方法はありますか? また、動的リンクはそれだけの価値がありますか? セレクターとプロトコルの再配置を実装するにはどうすればよいですか?
linux - マルチスレッド環境でガベージ コレクションを実装するにはどうすればよいですか?
複数のスレッドまたはプロセスで構成されるプログラムでガベージ コレクションを実行するにはどうすればよいですか?
これらのスレッドとプロセスのそれぞれからスタックをスキャンするにはどうすればよいですか?
各プロセスには独自のガベージ コレクション ルーチンが必要ですか? 実際のプログラムとは別のスレッド/プロセスでガベージ コレクターを実行するのは良い考えですか?
c - AT&T IA-32 Linux アセンブラー (ガス) で文字列を分割する
.asciz 文字列 1101011 を壊して最初のものを取得したいとします。どうすればいいですか?上記のコードは機能しません。49 か何かが出力されます。
linux - Linux IA-32 アセンブラー (ガス) で部分文字列を作成する
元の文字列 (文字列) から 3 つの asciz 文字の部分文字列 (ミニ文字列) を作成したい。実行中に印刷されないので、自分が何をしているのかわかりません。なぜ印刷されないのですか?ミニストリングを正しく作成していますか?
linux - 書き込み保護された仮想ページ、キャッチ書き込み
書き込み保護されたページへの書き込みをキャッチする方法はありますか?
オブジェクトをコピーしてインスタンス化する自己のようなオブジェクトシステムを計画しています。(他のオブジェクトに比べてシンプルでコンパクトに聞こえるため) 明らかに、この目的のために作成されたオブジェクトは何らかの方法で書き込み保護されている必要があります。ELF のプログラム ヘッダーから書き込み保護されているものにフラグを付ける方法があることを確認しました。(RE、RWE、RW フラグ)
これは書き込み保護を提供しますか? セグメンテーション違反が発生するはずだと覚えていますが、これは本当ですか? 書き込み保護されたページへの書き込みをキャッチする方法。これは私が望んでいるものを実装する良い方法ですか?もっと良い方法はありますか?
c - C で 32 ビット アプリケーションを 64 ビット アプリケーションに変換する
現在、C で 32 ビット アプリケーションを 64 ビット アプリケーションに変換する作業を行っています。このアプリケーションは、現在 x86 アーキテクチャ (Windows、osx、Unix、Linux) で作業しています。そのため、コーディングを開始する前に、アプリケーションを変換する際に何を考慮する必要があるかを知りたいと思いました。
assembly - すでに印刷された値をASMで印刷
日付(日、月、年)と時刻(時、分、秒)を表示するASMスクリプトがあります。
これにより、現在の日時がDOSボックスに出力されます。物事は、それは静的です。私がやりたいのは、動的にすることです。つまり、現在の値が画面上にある正確な場所に新しい値を書き込む必要があります。ASMでこれをどのように行いますか?
私にはまったく手がかりがなく、グーグルはこれについての私の友達ではありませんでした。