本ブログを見て頂いて、ありがとうございます!
このブログでは、AI、機械学習、最適化、Python、セキュリティ(CTF)などについて、技術的な内容や、ツールの作成/紹介を書いています。
また、はてなブログを始めるにあたり、ブログをカスタマイズした方法についても、詳しく書いています。
もし、このブログでお気づきの点や、問い合わせなどありましたら、問い合わせフォームか、XのDMにお知らせください。
(当ブログは、プロモーションが含まれています)
エンジニアグループのランキングに参加中です。
気楽にポチッとよろしくお願いいたします🙇
AI
- ゼロから作るDeep Learning 4(強化学習編)の4章のサンプルコードにアニメーション化の機能を追加する
- ゼロから作るDeep Learning 4(強化学習編)の4章のサンプルコードに画像ファイルの出力機能を追加する
AI - Optuna
- 解説:Optunaによるブラックボックス最適化
- 解説:Google ColaboratoryでOptunaを実行する方法(Studyの再現性を確保する)
- Google ColaboratoryでOptunaの多目的最適化を実行する(可視化もする)
- 解説:Google ColaboratoryでOptuna Dashboardを使う方法
- DB4Sの使い方:インストール方法、Optunaのデータベースの操作方法
AI - 量子化
- 量子化:論文 Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference を読む(1)
- 量子化:論文 Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference を読む(2)
- 量子化:論文 Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference を読む(3)
- TensorFlow Lite Pythonで量子化モデルをRaspberry Pi 4で動かす
- TensorFlow Lite C++で量子化モデルをRaspberry Pi 4で動かす
- Raspberry Pi 4のTensorFlow Lite C++をVSCodeでリモートデバッグする
- gemmlowpライブラリのソースコードを読んで量子化を学ぶ(サンプルソースの実行)
- gemmlowpライブラリのソースコードをデバッガを使って理解する
AI - LLM
Java
- 準備編:Java開発環境構築(JDK+Visual Studio Code)
- 第1回:Javaでデザインパターンを学ぶ:Singletonパターン
- 第2回:Javaでデザインパターンを学ぶ:Template Methodパターン
- 第3回:Javaでデザインパターンを学ぶ:Observerパターン
- 第4回:Javaでデザインパターンを学ぶ:Iteratorパターン
- 第5回:Javaでデザインパターンを学ぶ:Factory Methodパターン
- 第6回:Javaでデザインパターンを学ぶ:Stateパターン
- 第7回:Javaでデザインパターンを学ぶ:Visitorパターン
- 第8回:Javaでデザインパターンを学ぶ:Adapterパターン
- 第9回:Javaでデザインパターンを学ぶ:Prototypeパターン
- 番外編:Javaのコンパイル方法(仕組み)をパッケージ含めていろいろ試してみる
- 番外編2:Jarの作り方とJarを含んだJavaのコンパイル方法をパッケージ含めていろいろ試してみる
- 番外編3:GradleでJavaプロジェクトを作ってみる(Ubuntu22.04)
- 番外編4:IntelliJを使ってJavaのGradleプロジェクトでデバッグしてみる(Ubuntu22.04)
- 番外編5:GradleプロジェクトでJGraphTを使う(Ubuntu22.04)
- 番外編6:JGraphTのサンプルソースの解説と可視化の補足(Ubuntu22.04、IntelliJ、Gradle)
- 番外編7:Androidアプリの開発環境の構築とHelloWorldアプリを作ってみる
- 番外編8:Androidアプリ:NFCリーダーアプリを動かしてソースコードを確認する
Python
- 開発環境の構築手順(用途:AI関連、Python)
- matplotlib:基本的な内容、設定、各ケーススタディ(アニメーションで潰れた感じになってしまう)
- PythonでWebスクレイピング(ChatGPTにPythonコードを生成してもらう)
- kEasyGUI(Python)で簡単GUI(PySimpleGUI有料化に伴い移行します!)
- URLからタイトルを取得するPythonのGUIアプリを作りました(url2title)
- PyInstallerを使ってTkEasyGUIを使ったGUIアプリ(url2title)をexe化する
Linux
- Raspberry Pi 4 カーネルビルド
- VirtualBox 7.0+Ubuntu22.04をWindows10にインストールする方法
- Ubuntu22.04(VirtualBox 7.0)の設定とソフトウェアインストール
- シェルスクリプトのテンプレート(bash)
- VirtualBoxのネットワークの理解(VirtualBox+Ubuntu 22.04)
- Ubuntu24.04(VirtualBox 7.1)のインストールと初期設定
- KVM/QEMU(virt-manager)でUbuntu24.04をインストールした
- USBについて勉強してみる
- tmuxの紹介
- GNU Globalとcflowでソースコードを可視化してみる
- ROS2のインストールと動作確認
- ROS2プログラミング:トピックの実装
- ROS2のソースコードを確認した(rclpy、rcl、rmw)
- WSL 2(Ubuntu 24.04)を導入してみた
- Windowsターミナルの使い方と設定方法
QEMU
- 第1回:STM32(ARM Cortex-M)をQEMUで動かす(環境構築編)
- 第2回:STM32(ARM Cortex-M)をQEMUで動かす(ソースコード確認編)
- 第3回:STM32(ARM Cortex-M)をQEMUで動かす(スタートアップルーチン編)
- 第4回:STM32(ARM Cortex-M)をQEMUで動かす(リンカスクリプト編)
- 第5回:STM32(ARM Cortex-M)のELFファイルの内容を確認する
- 第6回:STM32(ARM Cortex-M)のELFファイル⇔バイナリの変換を行う
- 第7回:STM32(ARM Cortex-M)のバイナリから構築したELFファイルをQEMUで動かす
- 第8回:QEMUのビルドに必要なxpm(xPack Project Manager)について学ぶ
- 第9回:QEMUをソースからビルドして動かす
- 第10回:QEMUのソースコードを変更してSTM32の動作を変える
- 第11回:QEMUで組み込みLinux(Buildroot+BusyBox)をやってみる
- 第12回:QEMUで組み込みLinux(Buildroot+BusyBox)をやってみる、の補足
- 第13回:QEMUで組み込みLinux(Buildroot+BusyBox)にU-Bootを追加する
- 第14回:QEMUで組み込みLinux(Buildroot+BusyBox+U-Boot)で起動する
- 第15回:QEMUで組み込みLinux(Buildroot+BusyBox+U-Boot)をinitramfsで起動する
- 第16回:QEMUで組み込みLinux(Buildroot+virtボード)で ARM64bitを起動する
- 第17回:QEMUで組み込みLinux(aarch64+virtボード)でネットワーク調査とツールのクロスコンパイル
Renode
- 第1回:QEMUに似たRenodeというOSSの組込みデバイスエミュレータを試す
- 第2回:QEMUに似たRenodeでSTM32をGDBを使ってデバッグする
- 第3回:QEMUに似たRenodeでSTM32をバイナリファイルで動かす
- 第4回:QEMUに似たRenodeをソースからビルドする
- 第5回:QEMUに似たRenodeでVSCodeを使ってデバッグする
- 第6回:QEMUに似たRenodeでVSCodeを使ってRenode自体をデバッグする
セキュリティ、Webアプリケーション
- 第1回:Ghidraで始めるリバースエンジニアリング(環境構築編)
- 第2回:Ghidraで始めるリバースエンジニアリング(使い方編)
- 第3回:VirtualBoxにParrotOS(OVA)をインストールする
- 第4回:HTTPを題材にtcpdumpの出力を理解する
- 第5回:nginx(エンジンエックス)を理解する
- 第6回:Python+Flask(WSGI+Werkzeug+Jinja2)を動かしてみる
- 第7回:Python+FlaskのファイルをCython化してみる
- 第8回:John the Ripperでshadowファイルのパスワードを解読してみる
- 第9回:安全なWebアプリケーションの作り方(徳丸本)の環境構築
- 第10回:Vue.jsの2.xと3.xをVue CLIを使って動かしてみる(ビルドも行う)
- 第11回:Vue.jsのソースコードを確認する(ビルド後のソースも見てみる)
- 第12回:徳丸本:OWASP ZAPの自動脆弱性スキャンをやってみる
- 第13回:徳丸本:セッション管理を理解してセッションID漏洩で成りすましを試す
- 第14回:OWASP ZAPの自動スキャン結果の分析と対策:パストラバーサル
- 第15回:OWASP ZAPの自動スキャン結果の分析と対策:クロスサイトスクリプティング(XSS)
- 第16回:OWASP ZAPの自動スキャン結果の分析と対策:SQLインジェクション
- 第17回:OWASP ZAPの自動スキャン結果の分析と対策:オープンリダイレクト
- 第18回:OWASP ZAPの自動スキャン結果の分析と対策:リスク中すべて
- 第19回:CTF初心者向けのCpawCTFをやってみた
- 第20回:hashcatの使い方とGPUで実行したときの時間を見積もってみる
- 第21回:Scapyの環境構築とネットワークプログラミング
- 第22回:CpawCTF2にチャレンジします(この記事はクリア状況を随時更新します)
- 第23回:K&Rのmalloc関数とfree関数を理解する
- 第24回:C言語、アセンブラでシェルを起動するプログラムを作る(ARM64)
- 第25回:機械語でシェルを起動するプログラムを作る(ARM64)
- 第26回:入門セキュリティコンテスト(CTFを解きながら学ぶ実践技術)を読んだ
- 第27回:x86-64 ELF(Linux)のアセンブラをGDBでデバッグしながら理解する(GDBコマンド、関連ツールもまとめておく)
- 第28回:入門セキュリティコンテスト(CTFを解きながら学ぶ実践技術)のPwnable問題をやってみる
- 第29回:実行ファイルのセキュリティ機構を調べるツール「checksec」のまとめ
- 第30回:setodaNote CTF Exhibitionにチャレンジします(クリア状況は随時更新します)
- 第31回:常設CTFのksnctfにチャレンジします(クリア状況は随時更新します)
- 第32回:セキュリティコンテストチャレンジブックの「Part2 pwn」を読んだ
- 第33回:セキュリティコンテストチャレンジブックの「付録」を読んでx86とx64のシェルコードを作った
- 第34回:TryHackMeを始めてみたけどハードルが高かった話
- 第35回:picoCTFを始めてみた(Beginner picoMini 2022:全13問完了)
- 第36回:picoCTF 2024:Binary Exploitationの全10問をやってみた(Hardの1問は後日やります)
- 第37回:picoCTF 2024:Reverse Engineeringの全7問をやってみた(Windowsプログラムの3問は後日やります)
- 第38回:picoCTF 2024:General Skillsの全10問をやってみた
- 第39回:picoCTF 2024:Web Exploitationの全6問をやってみた(最後の2問は解けず)
- 第40回:picoCTF 2024:Forensicsの全8問をやってみた(最後の2問は解けず)
- 第41回:picoCTF 2024:Cryptographyの全5問をやってみた(最後の2問は手つかず)
- 第42回:picoCTF 2023:General Skillsの全6問をやってみた
- 第43回:picoCTF 2023:Reverse Engineeringの全9問をやってみた
- 第44回:picoCTF 2023:Binary Exploitationの全7問をやってみた(最後の1問は後日やります)
- 第45回:書籍「セキュリティコンテストのためのCTF問題集」を読んだ
- 第46回:書籍「詳解セキュリティコンテスト」のReversingを読んだ
- 第47回:書籍「詳解セキュリティコンテスト」のPwnableのシェルコードを読んだ
- 第48回:書籍「バイナリファイル解析 実践ガイド」を読んだ
- 第49回:書籍「詳解セキュリティコンテスト」Pwnableのスタックベースエクスプロイトを読んだ
- 第50回:書籍「詳解セキュリティコンテスト」Pwnableの共有ライブラリと関数呼び出しを読んだ
- 第51回:picoCTF 2025:General Skillsの全5問をやってみた
- 第52回:picoCTF 2025:Reverse Engineeringの全7問をやってみた
- 第53回:picoCTF 2025:Binary Exploitationの全6問をやってみた
- 第54回:書籍「詳解セキュリティコンテスト」Pwnableの仕様に起因する脆弱性を読んだ
- 第55回:システムにインストールされたものと異なるバージョンのglibcを使う方法
- 第56回:書籍「詳解セキュリティコンテスト」Pwnableのヒープベースエクスプロイトを読んだ
- 第57回:書籍「解題pwnable」の第1章「準備」を読んだ
- 第58回:書籍「解題pwnable」の第2章「login1(スタックバッファオーバーフロー1)」を読んだ
- 第59回:書籍「解題pwnable」の第3章「login2(スタックバッファオーバーフロー2)」を読んだ
- 第60回:書籍「解題pwnable」の第4章「login3(スタックバッファオーバーフロー3)」を読んだ
- 第61回:書籍「解題pwnable」の第5章「rot13(書式文字列攻撃)」を読んだ
- 第62回:GitHubが開発した静的解析ツール(脆弱性検出ツール)のCodeQLを使ってみる
- 第63回:CodeQL(静的解析ツール)で使われるクエリの選ばれ方を調べた
- 第64回:CodeQL(静的解析ツール)のクエリの書き方を調べた
- 第65回:CodeQL(静的解析ツール)で使われているアラートクエリの中身を調べる
- 第66回:CodeQL(静的解析ツール)で使われているパスクエリの中身を調べる
- 第67回:CodeQL(静的解析ツール)をVSCodeで使う方法を理解する
- 第68回:CodeQL(静的解析ツール)の挙動を確認するための対象ソースコードとしてTinyhttpdを調査する
- 第69回:Tinyhttpdを使用してCodeQL(静的解析ツール)のクエリの挙動を確認する
- 第70回:セキュアコーディング:CERT C INT02-C 「整数変換のルールを理解する」を調べる
- 第71回:CodeQL(静的解析ツール)の挙動を確認するための対象ソースコードとしてlibusbを調査する
ブログカスタマイズ
- 準備編:はてなブログのHTML/CSSの構造を解析する(1)
- 準備編2:はてなブログのHTML/CSSの構造を解析する(2)
- 第1回:「Minimalism」テーマのコードブロックの行間を調整する
- 第2回:「Minimalism」テーマのスマホで太字にならない問題の原因と対策
- 第3回:「Minimalism」テーマの目次の外観とリンク文字をカスタマイズする
- 第4回:「Minimalism」テーマの見出しをカスタマイズする
- 第5回:「Minimalism」テーマのサイドバーの各モジュールをカスタマイズする
- 第6回:カテゴリを階層化する(補足と問題点を追記)
- 第7回:Minimalismのカスタマイズ2点と、2つの問題点(スマホで見たときの画像余白と画像と背景の境界)の解決
- 第8回:CSS対応のタイトル付きの囲み枠を使う方法(定型文に登録)
- 第9回:ページ全体の表示フォントを変更する
- 番外編:編集ボタンを表示させる(編集ボタンを復活させる)
- 番外編2:カテゴリー階層化のソースコードを解析する
- 発展編:自作のデザインテーマを作る
ブログ作成&運営
- はてなブログの書き方 Markdown記法
- 【ブログ便利ツール】デスクトップ操作を軽いGIFアニメで録画できる「LICEcap」の使い方
- 【ブログ便利ツール】Canvaの生成AIでブログの素材に使えるアイキャッチ画像の作り方(商用利用可能)
- 【ブログ便利ツール】マウスをかざすだけでフォント名が分かる「WhatFont」の紹介
- ページ内リンクが動作しない場合の対処方法(スペースやピリオド「.」などを含む場合)
便利ツール
- Visual Studio Code:設定内容、インストールした拡張機能
- ChatGPT(無料版)の始め方
- JSONファイルを扱う方法まとめ
- JSONファイルを扱うCUIツール「jq」を使ってみる
- Git BASH(Git for Windowsに付属するツール)の紹介とカスタマイズ方法
- VPNライフハック・裏ワザ完全ガイド!安全でお得なVPN活用法を徹底解説!
- Gitサーバ、GitHub、SSHにパスワードを入力せずに接続する方法
- RPAツールとしてよく聞くUiPath Studioで自動化を試してみた
- ユーザ行動を総合的に分析するWEBサイト、アプリ分析ツール「Amplitude」
- Genetec(ジェネテック)社の統合セキュリティシステム「Security Center」