今回は、Windows10 がインストールされた PC に対して、WSL(Windows Subsystem for Linux)をインストールし、さらに、Ubuntu 24.04 をインストールしてみたいと思います。 それでは、やっていきます。
AI、機械学習、最適化、Pythonなどについて、技術的な内容や、ツールの作成/紹介を書いています。また、はてなブログのブログをカスタマイズした方法についても、詳しく書いています。
セキュリティコンテストチャレンジブックの「付録」を読んでx86とx64のシェルコードを作った
前回 は、「セキュリティコンテストチャレンジブック CTFで学ぼう!情報を守るための戦い方」の「Part2 pwn」を読んで、実際に動かしてみました。だいぶ時間がかかりましたが、とても勉強になりました。 今回は、「セキュリティコンテストチャレンジブック CTFで学ぼう!情報を守るための戦い方」の付録を読んでいきます。付録は 2つあって、1つは、Part 1(1章)の「バイナリ解析」の付録で、もう 1つは、Part 2(2章)の「pwn」の付録です。今回は、この 2つの付録について見ていきます。 それでは、やっていきます。
セキュリティコンテストチャレンジブックの「Part2 pwn」を読んだ
前回 から、ksnctf を開始しました。少し難しかったので、書籍などから知識を得ることも並行してやっていきます。 「セキュリティコンテストチャレンジブック CTFで学ぼう!情報を守るための戦い方」の「Part2 pwn」を読みましたが、なかなか内容が濃くて、読んだだけでは、十分に理解できませんでした。今回は、「Part2 pwn」の演習を、実際に自分で動かしていきたいと思います。 それでは、やっていきます。
常設CTFのksnctfにチャレンジします(クリア状況は随時更新します)
前回 から、setodaNote CTF Exhibition を開始しました。CTF には複数のカテゴリがありますが、リバースエンジニアリング、Pwn を優先的に取り組みたいと思っています。これらがだいたい終わったので、次は、ksnctf も並行して進めようと思います。 ksnctf も、国内の常設の CTF です。 それでは、やっていきます。
setodaNote CTF Exhibitionにチャレンジします(クリア状況は随時更新します)
前回 は、実行ファイルのセキュリティ機構(脆弱性緩和技術とも言う)を調べるツールである「checksec」の理解を深めました。 今回から、setodaNote CTF Exhibition に挑戦します。前に、CpawCTF2 を始めたのですが、あまりメンテナンスされていないようで、サーバに接続できないなどがあったので、setodaNote CTF Exhibition も並行して進めようと思います。 setodaNote CTF Exhibition とは、2021年に、リアルタイムで開催された setodaNote CTF を同じ問題を常設で参加を可能にしてくれたものです。 ※2024/9…
実行ファイルのセキュリティ機構を調べるツール「checksec」のまとめ
前回 は、Pwnable問題に取り組みました。CTF のカテゴリの中でも、一番難しいと言われるだけあって、かなり苦労しました。 今回は、前回のPwnable問題でも使用した、実行ファイルのセキュリティ機構(脆弱性緩和技術とも言う)を調べるツールである「checksec」の深掘りをしたいと思います。 実行ファイルのセキュリティ機構とは、もし、実行ファイルに脆弱性が存在していたとしても、その脆弱性に対する攻撃をやりにくくする仕組みのことです。 例えば、スタックカナリヤは、関数開始時にスタックにランダムな値を格納しておき、関数終了時に、その値が変化していないかをチェックします。これによって、スタック…
入門セキュリティコンテスト(CTFを解きながら学ぶ実践技術)のPwnable問題をやってみる
前回 は、x86-64 ELF(Linux)のアセンブラを簡単なプログラムで理解しました。 本当は、先に今回の記事を書くつもりだったのですが、x86-64 ELF(Linux)のアセンブラが分からないと全然進まなかったので、前回の記事をはさみました。 今回は「入門セキュリティコンテストーーCTFを解きながら学ぶ実戦技術」で扱っている Pwnable の問題について、書籍を見ながら、実際に動かして、理解してみたいと思います。 それでは、やっていきます。
x86-64 ELF(Linux)のアセンブラをGDBでデバッグしながら理解する(GDBコマンド、関連ツールもまとめておく)
前回 は、「入門セキュリティコンテストーーCTFを解きながら学ぶ実戦技術」を読んで、CTF の各ジャンルごとに使われている技術やツールについて、調べたり、実際に使ってみたりしました。 今回は、x86-64 ELF(Linux)のアセンブラを理解していきます。また、よく使う GDBコマンドや、バイナリに対してよく使うコマンド、x86-64 のよく使う命令を書きとめておこうと思います。 それでは、やっていきます。
RPAツールとしてよく聞くUiPath Studioで自動化を試してみた
今回は、RPA(Robotic Process Automation)のツールでよく目にする「UiPath Studio」を使って、Windowsの自動化を試してみたいと思います。 それでは、やっていきます。
入門セキュリティコンテスト(CTFを解きながら学ぶ実践技術)を読んだ
前回 は、C言語とアセンブラでシェルを起動するプログラムを機械語に直して動かしてみました。 今回は、「入門セキュリティコンテストーーCTFを解きながら学ぶ実戦技術」を読みました。CTF の各ジャンルごとに、練習問題の解き方を丁寧に説明された本で、とてもオススメできる内容でした。単なる解法だけではなく、そこで使われている技術についても丁寧な解説がされていました。 また、この本では、CTF で、よく使われているとされるツールが、たくさん紹介されていたので、今回は、そのツールを調べたり、実際に使ってみたりしたいと思います。 それでは、やっていきます。
前回 は、C言語とアセンブラでシェルを起動するプログラムを作ってみました。 今回は、アセンブラで作ったプログラムをExploitコードの部品となりそうな C言語からシェルを起動するプログラムを実装してみたいと思います。 それでは、やっていきます。
「ブログリーダー」を活用して、daisukeさんをフォローしませんか?
今回は、Windows10 がインストールされた PC に対して、WSL(Windows Subsystem for Linux)をインストールし、さらに、Ubuntu 24.04 をインストールしてみたいと思います。 それでは、やっていきます。
前回 は、GitHub が開発した CodeQL(セキュリティ脆弱性を検出するオープンソースのツール)を、ローカル(CodeQL CLI )で使ってみました。 しかし、UAF(Use After Free)が入ったソースコードを準備しましたが、標準クエリでは、UAF を検出できませんでした。 今回は、そのあたりを深掘りして、UAF を検知させるところまでやってみたいと思います。 それでは、やっていきます。
今回は、GitHub が開発し、また、GitHub で使われている CodeQL という、セキュリティ脆弱性を検出するオープンソースのツール(コード分析エンジン)を使ってみたいと思います。 VSCode(Visual Studio Code)に、CodeQL をインストールして使われる場合が多いかもしれませんが、ここでは、まずは、ローカルで使っていこうと思います(CodeQL CLI)。 それでは、やっていきます。
前回 は、ROS2 のユーザノードのトピックの実装をやってみました。 今回は、ROS2 の中身を見ていきたいと思います。 それでは、やっていきます。
前回 は、ROS2 のインストールと、CUI、GUI のいくつかの動作確認を行いました。 今回は、自分でノード(ユーザアプリ)を作ってみたいと思います。これにより、既存のノードを読めるようになると思います。 それでは、やっていきます。
ROS2 に関する書籍を入手したので、今回は、ROS2 について調べていきたいと思います。 ROS1 は、少しやっていたのですが、ROS2 は初めてです。 それでは、やっていきます。
最近、ソースコードを読むことが多いので、便利そうなツールを探しています。 しかし、なかなか、新しいよく出来たツールはありません。やはり、昔ながらのツールがいいのかなと思ったりしてます。GNU Global は、昔、サクラエディタで使えるようになった時期があって、少しの間使っていましたが、ctags で十分かな、と思って、いつの間にか使わなくなっていました。 あと、コールツリー(コールグラフ)も、いいツールが無いか、探して見ましたが、結局、cflow になりました。 GNU Global と cflow を連携させて、HTML化するのは初めて知りました。こちらも紹介したいと思います。 それでは、…
前回 から、「解題pwnable セキュリティコンテストに挑戦しよう! 技術の泉シリーズ (技術の泉シリーズ(NextPublishing))」を読み進めています。 今回は、第5章の「rot13(書式文字列攻撃)」を読んでいきたいと思います。 それでは、やっていきます。
前回 から、「解題pwnable セキュリティコンテストに挑戦しよう! 技術の泉シリーズ (技術の泉シリーズ(NextPublishing))」を読み進めています。 今回は、第4章の「login3(スタックバッファオーバーフロー3)」を読んでいきたいと思います。 それでは、やっていきます。
前回 から、「解題pwnable セキュリティコンテストに挑戦しよう! 技術の泉シリーズ (技術の泉シリーズ(NextPublishing))」を読み進めています。 今回は、第3章の「login2(スタックバッファオーバーフロー2)」を読んでいきたいと思います。 それでは、やっていきます。
前回 から、「解題pwnable セキュリティコンテストに挑戦しよう! 技術の泉シリーズ (技術の泉シリーズ(NextPublishing))」を読み進めています。 今回は、第2章の「login1(スタックバッファオーバーフロー1)」を読んでいきたいと思います。 それでは、やっていきます。
前回 までは、「詳解セキュリティコンテスト: CTFで学ぶ脆弱性攻略の技術 Compass Booksシリーズ」を読み進めてきました。ようやく読み終わったので、今回からは、「解題pwnable セキュリティコンテストに挑戦しよう! 技術の泉シリーズ (技術の泉シリーズ(NextPublishing))」を読んでいきます。 全体で、140ページぐらいで、第1章から第12章まであります。 今回は、第1章の「準備」を読んでいきたいと思います。 それでは、やっていきます。
pwntools を使ったエクスプロイトコードをデバッグする(gdb.debug( bin_file ))とき、別ウィンドウが立ち上がって、GDB が起動します。Ubuntu では、うまく別ウィンドウが起動してくれるのですが、Parrot OS 6.1 では、なぜか、別ウィンドウが起動してくれません。 いろいろ情報を探したり、ChatGPT に聞いたりしたところ、context の terminal を明示的に設定する必要がある、ということが分かりました。 書籍の「詳解セキュリティコンテスト: CTFで学ぶ脆弱性攻略の技術 Compass Booksシリーズ」の提供してくれているエクスプロイト…
前回 は、引き続き、「詳解セキュリティコンテスト: CTFで学ぶ脆弱性攻略の技術 Compass Booksシリーズ」を読み進めました。前回は、今回の「ヒープベースエクスプロイト」を飛ばして、35章の「仕様に起因する脆弱性」でした。 今回は、34章の「ヒープベースエクスプロイト」を読んでいきたいと思います。だいぶ長いので、しばらくかかると思います。 それでは、やっていきます。
現在、「詳解セキュリティコンテスト: CTFで学ぶ脆弱性攻略の技術 Compass Booksシリーズ」の 34章の「ヒープベースエクスプロイト」を読み進めています。34章では、glibc-2.31 を使うことを前提に解説がされています。出来れば、書籍と同じ環境を準備したいところです。 しかし、glibc-2.31 は Ubuntu 20.04 のシステムで使われていた?そうなのですが、現在は、少し古いバージョンの glibc です。現在、Parrot OS 6.1 を使ってますが、glibc のバージョンは、2.36 でした。 そこで、この記事では、システムの glibc とは異なるバージョ…
前回 は、引き続き、「詳解セキュリティコンテスト: CTFで学ぶ脆弱性攻略の技術 Compass Booksシリーズ」を読み進めました。 前回は、32章の「共有ライブラリと関数呼び出し」でした。34章の「ヒープベースエクスプロイト」は、次回に回して、今回は、35章の「仕様に起因する脆弱性」を読んでいきたいと思います。 35章の「仕様に起因する脆弱性」では、書式文字列攻撃を取り扱っています。picoCTF 2025 の Binary Exploitation で、書式文字列攻撃の問題が出たのですが、エクスプロイトコードをうまく実装できなかったので、こちらを先に読んでいきたいと思います。 それでは…
本日(2025/4/2)、Googleアドセンスの収益化が確認できました!! はてなブログを無料版で開設してから、約1年で達成できました。 いつもアクセスして頂いている方には、本当に感謝です 🙇 今日は、その報告と、この1年を簡単に振り返ってみたいと思います。 この記事が、Googleアドセンスを目指してる方の参考になれば嬉しいです。
最近、いくつかの USB に関する本を読んだので、理解した内容についてまとめておこうと思います。 それでは、やっていきます。
今回は、povo 2.0 の「通話+データ」の契約を実際にやってみたので、その手順をまとめておきたいと思います。povo 2.0 は、月々の基本料が 0円で、今持ってるスマホとは別に、新しい電話番号を取得することが出来ます。 必要になったときに、トッピングと呼ばれるデータや通話が出来るオプションを購入することで使うことが出来ます。ただし、契約してから、180日間以内にトッピングを購入する必要があります。また、最後にトッピングを購入してから、180日間以内に再度、トッピングを購入する必要があります。 つまり、半年に 1回はトッピングを購入する必要があります。たくさんの種類のトッピングがありますが…
前回 から、picoCTF 2025 にリアルタイムで参戦しています。 picoCTF 2025 が 3/7 から始まっていて、昨日(3/17)に終了しました。今回は、リアルタイムで参戦できました。終了するまでは、解法や、フラグを公開することは禁止されていましたので、順番にその内容を公開していきます。 今回は、Binary Exploitation です。 それでは、やっていきます。
前回 は、QEMU で Arm の組み込み Linux(Buildroot+BusyBox+U-Boot)で、initramfs を追加しました。 これまで、今回は、initramfsを追加していきます。 それでは、やっていきます。
前回 は、QEMU で Arm の組み込み Linux(Buildroot+BusyBox)で、U-Boot を追加しました。 今回は、initramfsを追加していきます。 それでは、やっていきます。
前回 は、QEMU で Arm の組み込み Linux(Buildroot+BusyBox)で、U-Boot を追加して、U-Boot の起動まで確認しました。 今回は、U-Boot の設定をして、カーネル、ルートファイルシステムを起動していきます。 それでは、やっていきます。
前々回 と 前回 は、QEMU で Arm の組み込み Linux(Buildroot+BusyBox)を動かしました。 今回は、Buildroot の別のオプションで Linux を構築します。 それでは、やっていきます。
前回 は、QEMU で Arm の組み込み Linux(Buildroot+BusyBox)を動かしました。 今回は、前回の起動について、カーネルのパラメータなど、可能な限り、調査してみたいと思います。 それでは、やっていきます。
今回は、QEMU で Arm の組み込み Linux を動かしていきたいと思います。 これまで、STM32 を動かしていたのは、本家の QEMU ではなく、xPackプロジェクトの QEMU Arm でした。 今回は、Linux なので、本家の QEMU をインストールして、開発環境の構築と、簡単なものを動かしてみたいと思います。 それでは、やっていきます。
今回は、Git BASH の紹介と、カスタマイズについて説明します。 Git BASH とは、Git for Windows をインストールすると一緒にインストールされるツールです。 簡単に言うと、Windows で、Linux のようなコンソールが使えるようになります。 Windows のシステムに影響するような操作は、コマンドプロンプトか、PowerShell を使った方がいいと思います。 以前は、だいぶ苦労して、Cygwin をインストールする必要がありましたが、日常の操作ぐらいなら Git BASH で十分だと思います。
前回 は、JSON ファイルを扱う方法をまとめました。 今回は、JSONファイルを扱うCUIツール「jq」について紹介します。
今回は、JSON ファイルを扱う方法を書きます。 巨大な JSON ファイルを扱うのは、なかなか大変です。 そこで、効率よく扱うための方法を調べたので、実際にやっていきます。
今回は、シェルスクリプトのテンプレートを作りました。 いつもシェルスクリプトを作るときは、前に作ったコードをコピーして使うことが多いのですが、前のコードが見つからないときに困ることがあったので、ブログに書いておこうと思います。 それではやっていきます!
前回 は、JGraphT というグラフ理論のライブラリを Gradle プロジェクトで実行して、GraphViz で可視化するところまでやりました。 今回は、前回の補足として、サンプルソースの解説と、可視化のソースを完成させようと思います。 それではやっていきます!
前回 は、前々回 に作った Gradle プロジェクトを、IntelliJ を使ってデバッグするところをやりました。 今回は、その Gradle プロジェクトを使って、JGraphT というグラフ理論のライブラリを Java で使ってみます。 JGraphT で簡単なサンプルを動かして、GraphViz で可視化するところまでやりたいと思います。 JGraphT には、Python バインディングもあるようです。 それではやっていきます!
前回は、リバースエンジニアリングツールである Ghidra を使って、STM32 の ELFファイルを解析してみました。 今回も、書籍「リバースエンジニアリングツールGhidra実践ガイド (Compass Booksシリーズ)」を読みながら、さらに、STM32 の ELFファイルの解析を進めていきます。 それでは、やっていきます。
今回から、リバースエンジニアリングツールである Ghidra を使っていきます。 書籍「リバースエンジニアリングツールGhidra実践ガイド (Compass Booksシリーズ)」を読みながら進めていきます。 それでは、やっていきます。
Renode という QEMU に似たオープンソースのエミュレータを試しています。 前回 は、STM32 のサンプルアプリを対象として、GDB でデバッグする代わりに、VSCode を使ってデバッグするところまで行いました。 今回は、STM32 のサンプルアプリではなく、サンプルアプリが動いている Renode 自体をデバッグする環境を構築していきます。 それでは、やっていきます。
Renode という QEMU に似たオープンソースのエミュレータを試しています。 前回 は、バイナリファイルから構築した ELFファイルが動かない原因を解析して、対策を行い、無事に動作するところまで行いました。 今回は、VSCode でデバッグする環境を構築していきます。 それでは、やっていきます。
Renode という QEMU に似たオープンソースのエミュレータを試しています。 前回 は、バイナリファイルが動かない原因を解析しましたが、分かりませんでした。 もう少し深く解析するために、今回は、Renode をソースからビルドして、問題個所の特定と対策までやっていきます。 それでは、やっていきます。
前々回から、Renode という QEMU に似たオープンソースのエミュレータを試しています。 前回は、GDB で接続するところをやりましたが、バイナリファイルではうまく動きませんでした。 この記事では、バイナリファイルで動かない原因を調べて、その記録となります。 古いバージョンを使ったり、デバッグログを出して確認してみましたが、原因は分かりませんでした。後で役立つかもしれないので、記事として投稿しますが、有益な情報は無いと思います。
前回から、Renode という QEMU に似たオープンソースのエミュレータを試してます。 前回は、インストールとSTM32のサンプルソースの実行までをやりました。 今回は、GDB で接続して、デバッグしてみます。 それでは、やっていきます。
今回から、Renode というオープンソースの組込みデバイスのエミュレータを試していきます。 簡単に言うと、QEMU と同じ位置付けの OSS です。QEMU よりも、組込みデバイスのサポートが充実しているようです。 それでは、やっていきます。