問題タブ [format-string]

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.

0 投票する
1 に答える
161 参照

c# - 私の正規表現の何が問題なのですか?

私の正規表現コードは機能しません。以下のような結果が得られます。任意のアイデア

私のコードのエラー:

文言変更の条件

  1. MINVALUE の文中にプラスの値がある場合は、MINVALUE と同じ値で開始します...
  2. MINVALUE の文中に負の値がある場合は、MAXVALUE と同じ値で開始する

データベース内には、変更が必要な 3 つの文があります...

結果は以下のようになります

私のコード:

0 投票する
4 に答える
152 参照

c# - 何か不足していますか、それともこのコードは無意味ですか?

レガシー コードの湿ったカタコンベとほこりっぽいダンジョンを探索しているときに、これに出くわしました。

私は何かを見逃していますか、それともこれに対する私の反応ですか? 何も割り当てられていません... 「見つからない」ことを示すと仮定すると、常に-1になります」正しいですか?

アップデート

コメントで明らかになった一般的な混乱への回答として、私は FormatString が荒廃した石器時代の .NET のもの (このプロジェクトでは .NET 1.1 を使用) だと思っていましたが、その通りです。これは自家製のクラスです。コンストラクタは次のとおりです。

...そして、containsAlpha() メソッド:

ここで質問します。"FormatString" は、このクラスの名前の頭が間違っていますか、それとも何ですか? 私はそれが非常に誤解を招くと感じました(明らかに)。

0 投票する
4 に答える
7829 参照

c# - DateTime 形式を解析して Format String を取得する

DateTime 文字列から書式文字列を取得できるようにしたいと考えています。

例えば

"2012-12-08 15:00:00" => "yyyy-MM-dd HH:mm:ss"

"2013/30/01 16:00" => "yyyy/dd/MM HH:mm"

これは可能ですか?

0 投票する
1 に答える
3313 参照

c - フォーマット文字列のエクスプロイト - ルート シェルを開く

スタックのランダム化が無効になっている環境でこれを実行しており、AlephOne のバッファ オーバーフローと互換性のある gcc バージョンを使用しています。

シェルコードを含む配列のアドレスで命令ポインタ レジスタ (eip) を上書きしようとしています。私はいつもセグメンテーション違反に終わります。以下は、私が悪用しようとしているスニペットです。

execve() を介してこの関数を呼び出しています。ここでは、フォーマット文字列は argv[0] であり、上記の関数に正常に渡されます。

私はこのフォーマット文字列を持っています:

続いて 200 の NOP、シェルコード、および NOP を含む残りの配列が続きます。

シェルコードは Aleph One のコードです。

"\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b" "\x89\xf3\x8d\x4e\x08\x8d\x56\ x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd" "\x80\xe8\xdc\xff\xff\xff/bin/sh";

フォーマット文字列に戻ると、0xffbfdc0c から 0xffbfdc0f までの 4 つのアドレスを上書きしています。0xffbfdc0c は、冒頭で述べた print_version() 関数にブレーク ポイントを設定して見つけた保存済みの eip アドレスです。

私はそれをアドレス 0xffbfdcd4 に置き換えようとしています。これは、print_version の txt[] 配列のベース アドレスの 150 バイト上にあります (その後、関数内の txt[] の最初の文字とフォーマット文字列を数えて、着陸することを願っています)。シェルコードの前の NOP のどこかにある)。

SEG障害が発生するだけです。さらに先に進む方法や、意図したアドレスの値が実際に上書きされているかどうかを確認するためにデバッグする方法がわかりません。

編集:正しいフォーマット文字列を使用していますか?

私のプログラムがセグメントフォルトを生成した後、またはセグメントフォルトの直前でアドレスの変更後にgdbを使用してアドレスを確認する方法を教えてください。

ありがとう。

0 投票する
1 に答える
1128 参照

matlab - Matlab テーブル構文

matlab が初めてで、与えられたコードを少し理解できません。

プログラムは、私が理解している方程式の根を見つけるためのニュートン法です。

私が理解していないのは、この部分です:

質問:

  1. 2 行目の最後のビットが n で除算されるのはなぜですか?
  2. %1i、%12.8f などの 2 行目の数字は何ですか?
  3. これは、その後に書かれている「count、x、f」とどのように機能しますか?

ありがとう

0 投票する
1 に答える
556 参照

c# - パイプ機能なしでフォーマット文字列エクスプロイトでアドレスを入力するトリックは何ですか?

注: これは教育目的でのみ使用されます。問題のプログラムは、応用セキュリティ クラス用であり、フォーマット文字列の脆弱性を持つように設計されています。

課題のシナリオは、悪の体制のサーバーにシェル コードを挿入することです。ここでの私の質問は、パイプ機能を使用して ASCII 範囲外の元の文字列に 16 進値を挿入できない場合に、アドレスを格納する方法のみです。

プログラムの書式文字列の脆弱な部分は入力を要求し、プログラム内のいくつかのオプションを介してのみアクセスできます。

アドレスを元の文字列にどのように格納しますか? フォーマット文字列の脆弱なプログラムのソース コードは隠されています。脆弱な文字列がプログラムに埋め込まれているため、脆弱な文字列にパイプできません。

現在、次の入力をコピーしてプログラムに貼り付けようとしています。

次の結果が得られます。

一度に 1 文字ずつ読み取れるようです。%d と %n を使用してアドレスの値を変更する次のステップを知っています。

アドレスを別の場所に保存する必要がありますか? ASCII 範囲外の文字を入力するためのトリックはありますか? アドレスを適切に保存するには、何を考慮する必要がありますか? これにはコツがありますが、私はそれを知りません。