気まぐれブログ(日記・技術記事・研究のことなど)

気まぐれに更新します.温かい目で見ていただければ...

素数が無限個存在することの証明4選

本記事の内容 証明 解法1 解法2 解法3 解法4 最後に 本記事の内容 題名の通りです.整数論に関する洋書を輪講で読んでいるのですが,様々な角度から整数論に関することを解説しており,とても面白いです. その中でも,素数の無限個存在証明をいくつか紹介し…

坂本勇人を9人並べた打線と,鈴木誠也を9人並べた打線。どっちが強い?

はじめに Assumption 実験結果 考察 ソースコード 参考文献 はじめに こんにちは!field_flatです. 本日は久しぶりにプロ野球データ解析の記事です. プロ野球の開幕日時が決まりましたね.6/19らしいです. また日本シリーズも11/21開幕予定らしいです.プ…

24歳になりました。

こんにちは!field_flatです. 私は本日5/24に24回目の誕生日を迎えることができました. お祝いのメッセージを下さった方,本当にありがとうございます. 23歳も皆さんのおかげで楽しく過ごせたので,24歳も同じく毎日を楽しみながら過ごせればいいかなあ,…

自由に発信すること

こんにちは!field_flatです!最近、検察庁法改正案について賛否両論の意見が飛び交っていますね。有名人もハッシュタグ付きでこの件について意見を述べたりして、非常に話題を呼びました。その中でも、きゃりーぱみゅぱみゅさんが自身が投稿した検察庁法改…

バーコードについている数字の仕組み

こんにちは!field_flatです! 突然ですが,みなさん「バーコードについている数字の仕組み」についてご存知でしょうか? 私はとある本を読んだときに,バーコードの数字にはある工夫がされていることを知り,なるほど〜と思いました. そんな大したことでは…

夏の甲子園が中止になりそう...

こんにちは.field_flatです. 過ごしやすい天気になってきましたね.私もそろそろ半袖デビューをしようかと思っています. また緊急事態宣言も一部地域でもうすぐ解除されるということで,外出する機会も少しずつ増えてきそうですね. さて,今日は夏の甲子…

ABC156 D問「Bouquet」

問題リンク atcoder.jp 問題文 回答プログラム import math n, a, b = map(int, input().split(" ")) mod_num = 10**9 + 7 # n, aは正整数(n >= a), pは素数 def comb_mod(n, a, p): X = 1 for num in range(n, n-a, -1): X *= num X %= p Y = math.factoria…

しゃくとり法

はじめに しゃくとり法とは 例題1:AOJ Course The Number of Windows しゃくとり法が利用できる場合 例題2:3061 -- Subsequence 例題3:C - 列 例題4:C - 単調増加 例題5:B - 細長いお菓子 参考文献 はじめに 本記事では,「しゃくとり法」と呼ばれ…

FIDO認証とは

目次 目次 はじめに 既存の認証方式の問題点 FIDO認証モデル 本人性の確認方式 FIDO認証のアーキテクチャ FIDO認証の技術 技術仕様:FIDO UAFとU2F 認証器の信頼性 メタデータ FIDO認証の処理 FIDO2 プロジェクト Web認証 CTAP 参考文献 はじめに 本記事では…

TOEIC L&R:短期間で効率よく点数上げる方法&おすすめ参考書

はじめに これからTOEICを受けないといけないけど,「短時間で効率よく点数をあげたい」,「何から手をつけたらいいか分からない」といった人向けに,私の実体験を元にオススメの参考書&取り組み方を紹介します. あくまで個人的なオススメなので,参考程度…

サイバーセキュリティプログラミング(ARPキャッシュポイズニング)

今回は「Scapy」と呼ばれるライブラリを使用して,ネットワーク掌握に挑戦してみましょう.さらに,ARPキャッシュポイズニングという攻撃を仕掛けられるようにしましょう. Scapyの使い方 以下のようなコードを書くだけで簡単にパケット傍受をすることができ…

サイバーセキュリティプログラミング(パケット盗聴)

前回は基本的なTCP通信をPythonで実装しました.今回はrawソケットを使ってパケット盗聴をしてみましょう. 単純なパケット盗聴 (Windows & Linux 対応) import socket import os # ターゲットホスト host = "192.168.3.7" # パケットを盗聴するために必要な…

サイバーセキュリティプログラミング (TCPクライアントからSSH通信プログラムまで)

はじめに 本日はサイバーセキュリティプログラミングの基礎を解説していこうと思います.参考にした本はコチラです. サイバーセキュリティプログラミング ―Pythonで学ぶハッカーの思考作者: Justin Seitz,青木一史,新井悠,一瀬小夜,岩村誠,川古谷裕平,星澤…

5000円のワインと100万円のワインの味の違いがわかる方が人生が豊かになるのか?

新年あけましておめでとうございます. 2019年もよろしくお願いします. さて, 皆さんは年始をどのようにお過ごしでしょうか?友達と初詣に行ったり, おせちを食べながら家族団らんで過ごしたりする人もいることでしょう. 私は母方の祖父母の家で蟹鍋を食べる…

DES暗号を実装する(2) ~データ暗号化・復号編~

データ暗号化・復号アルゴリズム 転置 ラウンド関数 拡大転置, 出力転置 S-boxの仕組み コード 出力結果 まとめ 前回はサブ鍵の構成方法について説明しましたが, 今回はデータの暗号化と復号アルゴリズムについて見ていきましょう. データ暗号化・復号アルゴ…

DES暗号を実装する(1) ~サブ鍵生成アルゴリズム編~

使用言語 DES暗号とは サブ鍵の生成方法 サブ鍵生成アルゴリズム プログラム 共通鍵暗号方式の代表的な暗号方式である「DES暗号」を実装してみたいと思います. 今回の記事では, DESで使用する「サブ鍵」の生成アルゴリズムを実装していきます. 使用言語 Pyth…

共通鍵暗号の攻撃モデル

暗号文単独攻撃(Ciphertext Only Attack; COA) 既知平文攻撃(Known Plaintext Attack; KPA) 選択平文攻撃(Chosen Plaintext Attack; CPA) 選択暗号文攻撃 適応的選択暗号文攻撃 今回は, 共通鍵暗号の攻撃モデルについて説明していきたいと思います. 暗号文単…

pwnable.kr writeup [blackjack]

問題 http://cboard.cprogramming.com/c-programming/114023-simple-blackjack-program.html 解説 この問題は, blackjackのゲームでmillionareになればflagゲットとなります. 問題 Hey! check out this C implementation of blackjack game! I found it onli…

pwnable.kr writeup [cmd1]

問題 解答 この問題は, 一時的にPATHを変更された場合にどのようにシェルを動かすかっていう話ですね. 問題 Mommy! what is PATH environment in Linux?ssh cmd1@pwnable.kr -p2222 (pw:guest) 解答 まずはcmd1.cを見てみましょう. #include <stdio.h> #include <string.h> int </string.h></stdio.h>…

pwnable.kr writeup [shellshock]

問題 解説 この問題はおそらく知らないと解けない問題です... 問題 Mommy, there was a shocking news about bash. I bet you already know, but lets just make it sure :) ssh shellshock@pwnable.kr -p2222 (pw:guest) 解説 これはCVE-2014-6271というbas…

pwnable.kr writeup [mistake]

問題 解説 最後に 今回はpwnable.krのmistakeという問題のwriteupを紹介します. 問題 We all make mistakes, let's move on. (don't take this too seriously, no fancy hacking skill is required at all)This task is based on real event Thanks to dhmon…

pwnable.kr writeup [random]

問題 解説 今回は, pwnable.krのrandomという問題のwriteupを紹介します. C言語のrand()関数の使い方が誤っていると, randomな数字が得られませんよって感じの問題ですね. 問題 Daddy, teach me how to use random value in programming!ssh random@pwnable.…

pwnable.kr writeup "passcode"

問題 解説 表層解析 動的解析 静的解析 GOT-Overwriteの仕組み. この問題の解法 解答 今回は, http://pwnable.kr/play.phpの"passcode"のwriteupを書いていこうと思います.この問題はわからなかったので, 他の方のwriteupを参考にさせていただきました. この…

"flag" 「UPXとは」

問題 解説 ところでUPXってなに? pwnableの問題を解き進めていたところ, 「UPX」を使用する問題に出会いました. UPXについて何も知らなかったので, writeupがてらUPXについて調べたことをまとめておこうと思います. 問題 http://pwnable.kr/play.phpバイナ…

scpコマンドとsshコマンド

scpコマンド sshコマンド scpコマンドとsshコマンドのusageがたまにごっちゃになるので, メモしておく. scpコマンド (例) scp -r -P 2222 fd@pwnable.kr:~/ ./ sshコマンド (例) ssh col@pwnable.kr -p 2222

埋め込みファイルを抽出する

binwalkコマンド ddコマンド 引用サイト [Google CTF 2018 BEGINNERS QUEST] FLOPPY を解いていたところ, icoファイルにzipデータが埋め込まれていて, それを取り出す方法を知らなかったので備忘録としてまとめておきます. binwalkコマンド [Google CTF 2018…

[SECCON CTF writeup] classic pwn

先日行われたSECCON CTFで出題された「classic pwn」のwriteupを書こうと思います. ファイルの調査 解法 解答 exploitコード(python2系) 実行結果 exploitコード(python3系) 実行結果 ファイルの調査 まずは定石通り, ファイルのタイプやRELRO情報などを調べ…

アドレスリークにおけるexploitコード

コード read_untilメソッド pメソッド uメソッド interactメソッド mainメソッド CTFにおいてpythonでexploitコードを書くことは頻繁にあるので, ここでコードとその詳細についてまとめておきます. コード from socket import * from telnetlib import Telne…

uuencodeというものに出会ったので一応簡単にまとめた

uuencodeとは コマンド uuencodeとは uuencodeは, バイナリデータをテキストデータに変換するUNIX及びUnix系OSのコマンドのことを指します. 今でも多くのメーラに対応していますが, 一般的にはbase64が使用されていることが多いです. 初期のUnix系OSではUUCP…

BASE64の仕組み

今回はbase64というエンコード方式についてまとめます. base64とは base64の仕組み 実装 base64とは base64とは, 64種類の印字可能な英数字(a-z, A-Z, 0-9, +, /)のみを用いて, マルチバイト文字やバイナリデータをエンコードする方式です. SMTPという電子メ…