CyberChaos(さいばかおす)

プログラミング言語、トランスパイラ、RPA、ChatGPT、データマイニング、リバースエンジニアリングのための忘備録

北総線新柴又駅の発車メロディーは「男はつらいよ」なのはなぜ?

2025-02-01 15:14:41 | 日記



トピックス | 北総鉄道

トピックス | 北総鉄道

北総鉄道のお知らせやニュースリリースをご案内します。

北総鉄道



当社では、葛飾柴又寅さん記念館(東京都葛飾区)の開館20周年を記念し、8月26日(土)より新柴又駅の発車メロディとして「男はつらいよ」のテーマ曲を導入します。

 葛飾柴又寅さん記念館は平成9年に開館し、今年で開館20周年を迎え、8月26日(土)には開館20周年記念式典が開催されます。今回の導入は、この記念式典に併せて行うもので、当日の始発列車より新柴又駅の発車メロディに「男はつらいよ」のテーマ曲を導入することになりました。

・・・だとよ。
なるほどな。
通勤・帰宅時に各駅停車の便に乗るといつも癒される。

国家公認のネズミ講詐欺www

2025-01-26 17:45:13 | 日記


俺達が老人となる頃には年金制度は確実に破綻している。罪日犯罪反日バカチョンチャンコロ人擬き共に騙し取られた年金は絶対に戻らない。
そのことを自覚して年金保険料を払っているんだろうな?
俺は強制的に毟り取られて対抗する手段が無いだけだ。厚生年金に入らなくて済む方法があれば、とっくの昔に実行しているし、厚生年金加入を強制しない会社を探して入社している。昔は派遣会社でそういう所もあったが、今はそういう会社は残業代すら払わないブラックだけになってしまった。

年金やその他取りすぎている税金は、ダメリカ様に脅されて貢いでいるのだ。イラクみたいになりなくなかったら、大人しくお布施しろ!!!と。

ネイティブアプリ内のXSS脆弱性について

2025-01-11 23:27:24 | 日記

第4回 危険性が理解されにくいネイティブアプリ内XSS(1) | gihyo.jp

第4回 危険性が理解されにくいネイティブアプリ内XSS(1) | gihyo.jp

今回はネイティブアプリケーション内のXSS(Cross-Site Scripting、クロスサイトスクリプティング)脆弱性の傾向と対策について解説します。

gihyo.jp

ネイティブアプリ内のXSS脆弱性について

Javascriptで書かれたネイティブアプリのことやSkypeの脆弱性について書かれたものらしい。

俺が望んでいた内容は、AutoCADみたいなネイティブアプリについての脆弱性だ。
インストール時やアクティベーション時にIDやパスワードを入力するフォームにインジェクション攻撃を行い、クラックしたり、IDやパスワードを入手したり、任意のIDやパスワードに改竄することについて知りたかった。
そのような攻撃方法があるかどうか?その攻撃方法の名称は?具体的なインジェクションコードの例は?等。

クラッキングラボ解説記事?

2025-01-11 23:03:32 | 日記

脆弱性を攻撃してみよう (1) OSコマンドインジェクション (OGNL式インジェクション) - Qiita

脆弱性を攻撃してみよう (1) OSコマンドインジェクション (OGNL式インジェクション) - Qiita

はじめに脆弱性を理解するには、実際に脆弱性を攻撃してみるのが一番です。といっても、脆弱性のありそうなサイトを見つけて攻撃してみよう!と言っているわけではありませ...

Qiita

OSインジェクション攻撃について詳し目に解説していて、その他の攻撃方法や脆弱ポイントについての解説もある。

  • XSS (クロスサイトスクリプティング)
  • SQLインジェクション
  • LDAPインジェクション
  • コードインジェクション
  • OSコマンドインジェクション
  • メールヘッダーインジェクション
  • Nullバイトインジェクション
  • サイズ制限の無いファイルアップロード
  • 拡張子制限の無いファイルアップロード
  • オープンリダイレクト可能なログイン画面
  • ブルートフォース攻撃可能なログイン画面
  • セッション固定攻撃可能なログイン画面
  • 親切過ぎる認証エラーメッセージ
  • 危険なファイルインクルード
  • パストラバーサル
  • 意図しないファイル公開
  • CSRF (クロスサイトリクエストフォージェリ)
  • クリックジャッキング
  • XEE (XMLエンティティ拡張)
  • XXE (XML外部エンティティ)


OSコマンドインジェクション攻撃

2025-01-11 22:45:00 | 日記

OSコマンドインジェクションとは?手口や被害事例、対策方法を紹介| Qbook

OSコマンドインジェクションとは?手口や被害事例、対策方法を紹介| Qbook

今回は「OSコマンドインジェクションとは何か」について、基本からわかりやすくお伝えします。OSコマンドインジェクションの被害事例や対策方法も紹介するため、セキュリテ...

OSコマンドインジェクションとは?手口や被害事例、対策方法を紹介| Qbook

OSコマンドインジェクションでは、さまざまなOSコマンドが攻撃に悪用されます。前述の例も含めて、悪用される代表的なOSコマンドをまとめました。
ファイル操作系のOSコマンドが主に用いられることがわかります。

コマンド名 主な機能
ls または dir フォルダの内容を表示する
cat ファイルの内容を表示する
rm または del ファイルを削除する
chmod ファイルの権限を変更する
mv ファイルやフォルダを移動または名称変更する
echo データをファイル出力する


web入力フォームに何か不正な文字やプログラムを入力することによってパスワード等が丸見えになってしまうようなことができるのでは?と以前から思っていた。

それがOSインジェクションというものらしい。
SQLインジェクションとは似て非なるものとのことだが、やっていることはほぼ同じことだと思うのは俺だけじゃないはず。

※その他→
URLパラメーター改竄攻撃

【追伸】ちなみに今、この記事を書いていて閃いたのだが、AutoCADなど高額アプリのインストールやアクティベーション時にIDやパスワード等を入力するのだが、その入力フォームに対してもOSインジェクションみたいなことができるんじゃないか?と思った。

昔ながらの方法でブルートフォースアタックとか辞書攻撃とか力技で時間をかけて総当たりするのもありかと思うが、めんどくさがり屋の俺としては、一撃でパスワードを破る方法はないものか?と思っていた。




虚数の階乗の求め方

2025-01-11 13:09:34 | 日記














虚数の階乗も、ガンマ関数 <math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi mathvariant="normal">Γ</mi><mo stretchy="false">(</mo><mi>z</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">\Gamma(z)</annotation></semantics></math> を用いることで計算することができます。複素数全体に階乗を拡張するために、ガンマ関数は非常に重要です。


1. ガンマ関数の一般定義(複素数にも対応)

ガンマ関数は複素数 <math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>z</mi></mrow><annotation encoding="application/x-tex">z</annotation></semantics></math> に対しても以下の積分で定義されます:

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mi mathvariant="normal">Γ</mi><mo stretchy="false">(</mo><mi>z</mi><mo stretchy="false">)</mo><mo>=</mo><msubsup><mo>∫</mo><mn>0</mn><mi mathvariant="normal">∞</mi></msubsup><msup><mi>t</mi><mrow><mi>z</mi><mo>−</mo><mn>1</mn></mrow></msup><msup><mi>e</mi><mrow><mo>−</mo><mi>t</mi></mrow></msup><mtext> </mtext><mi>d</mi><mi>t</mi></mrow><annotation encoding="application/x-tex">\Gamma(z) = \int_0^{\infty} t^{z-1} e^{-t} \,dt</annotation></semantics></math>

階乗は次の関係で表せます:

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mi>z</mi><mo stretchy="false">!</mo><mo>=</mo><mi mathvariant="normal">Γ</mi><mo stretchy="false">(</mo><mi>z</mi><mo>+</mo><mn>1</mn><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">z! = \Gamma(z+1)</annotation></semantics></math>

2. 虚数の階乗の具体例

虚数 <math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>i</mi></mrow><annotation encoding="application/x-tex">i</annotation></semantics></math>(虚数単位)の階乗 <math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>i</mi><mo stretchy="false">!</mo></mrow><annotation encoding="application/x-tex">i!</annotation></semantics></math> を求める場合、ガンマ関数で計算できます。

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mi>i</mi><mo stretchy="false">!</mo><mo>=</mo><mi mathvariant="normal">Γ</mi><mo stretchy="false">(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">i! = \Gamma(i + 1)</annotation></semantics></math>

この積分は解析的に計算できますが、非常に複雑な値を持つため、一般的には数値計算ソフトウェアを使って求めます。


3. Pythonで虚数の階乗を計算する方法

Pythonの scipy ライブラリを使用して、複素数の階乗を計算する例です。

from scipy.special import gamma
import cmath

# 虚数単位の階乗を計算
z = 1j  # 虚数単位
factorial_z = gamma(z + 1)
print(f"{z}! =", factorial_z)

出力結果の例:

1j! = (0.4980156681183561-0.1549498283018107j)

4. 複素数の階乗の可視化

複素平面上でガンマ関数の絶対値や偏角を視覚化すると、美しいフラクタル模様が現れます。特に極が現れる点(負の整数)は、ガンマ関数の特異点です。


5. ガンマ関数の特異点と複素数階乗の注意点

  • 負の整数ではガンマ関数は発散(無限大)します。
  • 複素数の階乗は多価関数ではなく、一価関数です(ガンマ関数自体が一価関数)。

6. まとめ

  • 虚数の階乗はガンマ関数で定義され、<math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>z</mi><mo stretchy="false">!</mo><mo>=</mo><mi mathvariant="normal">Γ</mi><mo stretchy="false">(</mo><mi>z</mi><mo>+</mo><mn>1</mn><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">z! = \Gamma(z+1)</annotation></semantics></math> で計算可能。
  • 負の整数では未定義(ガンマ関数が特異点を持つ)。
  • Pythonのscipyで複素数の階乗計算が可能 (scipy.special.gamma)。

小数の階乗の求め方

2025-01-11 13:05:42 | 日記











小数の階乗は、**ガンマ関数**を使って求めることができます。ガンマ関数は、通常の階乗を連続的に拡張したものです。

---

## 1. ガンマ関数の定義
ガンマ関数 \(\Gamma(z)\) は、次の積分で定義されます:

\[
\Gamma(z) = \int_0^{\infty} t^{z-1} e^{-t} \,dt
\]

この関数は、正の整数に対して次の性質を持ちます:

\[
\Gamma(n) = (n-1)!
\]

したがって、小数の階乗も次のように計算できます:

\[
x! = \Gamma(x+1)
\]

---

## 2. 例:\(\frac{1}{2}\) の階乗
有名な例として、\(\frac{1}{2}\) の階乗(\(\Gamma\left(\frac{3}{2}\right)\))は次のように求められます。

\[
\Gamma\left(\frac{3}{2}\right) = \frac{1}{2} \Gamma\left(\frac{1}{2}\right)
\]

また、\(\Gamma\left(\frac{1}{2}\right)\) は以下のように計算できます:

\[
\Gamma\left(\frac{1}{2}\right) = \sqrt{\pi}
\]

したがって:

\[
\frac{1}{2}! = \frac{\sqrt{\pi}}{2} \approx 0.886
\]

---

## 3. Pythonで小数の階乗を計算する方法
Pythonの `scipy` ライブラリの `gamma` 関数を使って、小数の階乗を計算できます。

```python
from scipy.special import gamma

# 小数の階乗を計算
x = 0.5
factorial_x = gamma(x + 1)
print(f"{x}! =", factorial_x)
```

### 出力結果
```plaintext
0.5! = 0.886226925452758
```

---

## 4. 近似計算方法(スターリングの近似式)
スターリングの近似式を使って、階乗の近似値を求めることもできます:

\[
n! \approx \sqrt{2\pi n}\left(\frac{n}{e}\right)^n
\]

---

## 5. まとめ
- 小数の階乗は**ガンマ関数**で定義される。
- 定義は積分で与えられ、\(x! = \Gamma(x+1)\) で計算可能。
- Pythonでは `scipy.special.gamma` 関数を使用。
- 特殊例として \(\frac{1}{2}!\) は \(\frac{\sqrt{\pi}}{2}\)。


負の数の階乗を求めることは可能か?

2025-01-11 13:00:24 | 日記














負の数の階乗は、通常の整数の階乗のように直接計算することはできません。しかし、階乗を拡張したガンマ関数を用いることで、負の数の階乗を一般化できます。


1. 階乗の定義とガンマ関数

階乗は自然数 <math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math> に対して次のように定義されます:

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mi>n</mi><mo stretchy="false">!</mo><mo>=</mo><mi>n</mi><mo>×</mo><mo stretchy="false">(</mo><mi>n</mi><mo>−</mo><mn>1</mn><mo stretchy="false">)</mo><mo>×</mo><mo>…</mo><mo>×</mo><mn>1</mn></mrow><annotation encoding="application/x-tex">n! = n \times (n-1) \times \ldots \times 1</annotation></semantics></math>

これを一般化したガンマ関数 <math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi mathvariant="normal">Γ</mi><mo stretchy="false">(</mo><mi>z</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">\Gamma(z)</annotation></semantics></math> は、複素数領域で以下の積分によって定義されます:

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mi mathvariant="normal">Γ</mi><mo stretchy="false">(</mo><mi>z</mi><mo stretchy="false">)</mo><mo>=</mo><msubsup><mo>∫</mo><mn>0</mn><mi mathvariant="normal">∞</mi></msubsup><msup><mi>t</mi><mrow><mi>z</mi><mo>−</mo><mn>1</mn></mrow></msup><msup><mi>e</mi><mrow><mo>−</mo><mi>t</mi></mrow></msup><mtext> </mtext><mi>d</mi><mi>t</mi></mrow><annotation encoding="application/x-tex">\Gamma(z) = \int_0^{\infty} t^{z-1} e^{-t} \,dt</annotation></semantics></math>

この関数は、正の整数 <math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math> に対して次の性質を持ちます:

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mi mathvariant="normal">Γ</mi><mo stretchy="false">(</mo><mi>n</mi><mo stretchy="false">)</mo><mo>=</mo><mo stretchy="false">(</mo><mi>n</mi><mo>−</mo><mn>1</mn><mo stretchy="false">)</mo><mo stretchy="false">!</mo></mrow><annotation encoding="application/x-tex">\Gamma(n) = (n-1)!</annotation></semantics></math>

これにより、ガンマ関数は連続的に階乗を拡張しています。


2. 負の数の階乗の定義

負の整数以外の負の数に対して、次のように定義されます:

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mo stretchy="false">(</mo><mo>−</mo><mi>n</mi><mo stretchy="false">)</mo><mo stretchy="false">!</mo><mo>=</mo><mfrac><mrow><mi mathvariant="normal">Γ</mi><mo stretchy="false">(</mo><mo>−</mo><mi>n</mi><mo>+</mo><mn>1</mn><mo stretchy="false">)</mo></mrow><mn>1</mn></mfrac></mrow><annotation encoding="application/x-tex">(-n)! = \frac{\Gamma(-n+1)}{1}</annotation></semantics></math>

ただし、負の整数ではガンマ関数は特異点(無限大になる点)を持つため、定義されません。

例:<math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mo>−</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mo stretchy="false">!</mo></mrow><annotation encoding="application/x-tex">-\frac{1}{2}!</annotation></semantics></math> の計算

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mi mathvariant="normal">Γ</mi><mrow><mo fence="true">(</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mo fence="true">)</mo></mrow><mo>=</mo><msqrt><mi>π</mi></msqrt></mrow><annotation encoding="application/x-tex">\Gamma\left(\frac{1}{2}\right) = \sqrt{\pi}</annotation></semantics></math>

したがって、<math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mo>−</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mo stretchy="false">!</mo></mrow><annotation encoding="application/x-tex">-\frac{1}{2}!</annotation></semantics></math> は次のようになります:

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mo>−</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mo stretchy="false">!</mo><mo>=</mo><mfrac><msqrt><mi>π</mi></msqrt><mn>2</mn></mfrac></mrow><annotation encoding="application/x-tex">-\frac{1}{2}! = \frac{\sqrt{\pi}}{2}</annotation></semantics></math>

3. 負の整数の階乗は未定義

負の整数の場合、ガンマ関数は**極(無限大)**となるため、計算不可能です。

例:

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mi mathvariant="normal">Γ</mi><mo stretchy="false">(</mo><mn>0</mn><mo stretchy="false">)</mo><mo>=</mo><mi mathvariant="normal">∞</mi><mo separator="true">,</mo><mspace width="1em"></mspace><mi mathvariant="normal">Γ</mi><mo stretchy="false">(</mo><mo>−</mo><mn>1</mn><mo stretchy="false">)</mo><mo>=</mo><mi mathvariant="normal">∞</mi></mrow><annotation encoding="application/x-tex">\Gamma(0) = \infty,\quad \Gamma(-1) = \infty</annotation></semantics></math>

4. Pythonでの計算例(scipy使用)

Pythonの scipy ライブラリを使って負の数の階乗を計算する例です:

from scipy.special import gamma

# -0.5の階乗を計算
n = -0.5
factorial_neg = gamma(n + 1)
print(f"{n}! =", factorial_neg)

出力

-0.5! = 1.7724538509055159  # ≈ √π

5. まとめ

  • 負の整数の階乗は未定義(無限大)。
  • 負の非整数の階乗はガンマ関数で計算可能。
  • Pythonのscipyで計算可能(scipy.special.gamma)。