Pythonでゼロからゲームを作ってみた | デザインから実装まで

初心者ながら、Pythonでゲームを自作してみました。 ゲーム制作にあたって行った準備から、実装時にハマった注意点、出来上がったゲームのデザインまでを記録します。 Introduction 何かを作りたい なぜPythonを選んだのか Material Abstract ゲーム画面のス…

Android Studioで実機が認識されないときの対処法

はじめてAndroid Studioを使ったのですが、実機が認識されないという問題が起きました。 いろいろ試した末に解決したので、対処法の記録を残します。 Introduction Material Results 「USB使用」を「写真を転送」または「ファイルを転送」に変える 「USBデバ…

VMware上のUbuntuをマルチディスプレイにする

VMware上で起動しているUbuntuを、マルチディスプレイで使用する方法を記録しました。 Introduction Results 最終目的: "複数のモニタを循環" をONにすること open-vm-toolsのインストール: 推奨 VMware Toolsのインストール: 非推奨 Perlがインストールされ…

初心者が挑むCTF入門 | OverTheWire: Bandit Level 0~20

CTF入門として評判のOverTheWire: Banditを、前提知識のほとんどない状態から挑んでみました。 始め方から、問題を解く際の試行錯誤までを詳細に記録します。 まずはLevel0からLevel10までを解いてみました。 ※Level20まで追記しました。 Introduction Mater…

初心者がGhidraを使ってみた | リバースエンジニアリング

Ghidraの環境構築/インストールから、Ghidraの使い方とリバースエンジニアリングの実践まで、記録を残します。 Introduction Material Results 環境構築 Ghidraをインストールする JDK(Java Development Kit)をインストールする Ghidraを起動する Ghidraでフ…

実験 | 画像をtxtファイルから3Dグラフで可視化したい | Python

txtファイルとして出力した画像ファイルを、Pythonを用いて3Dプロットで可視化してみます。 Introduction Material Results txtファイルの読み込み | pd.read_csv() XYの用意 | np.arange() / np.meshgrid() 3Dグラフプロット | mplot3d ModuleNotFoundError…

Ubuntuでpip / pip3がインストールできないときの対処法 | Python2 / 3

Ubuntuでは、Pythonのpip / pip3がインストールされていませんでした。 pip / pip3のインストールに予想外にもつまずいたので、記録を残します。 Introduction Material Results pipとpip3は違う はじめはapt installが機能しなかった : pip× / pip3× "get-p…

実験 | Ubuntuディスプレイ解像度を"1x1"に設定してみたい

Ubuntuディスプレイの解像度を、最小の"1x1"に設定できるのか、検証してみました。 Introduction Material Results 1x1解像度のパラメータを取得する | cvt 解像度を追加する | xrandr 解像度を変更する 設定から手動で変更 コマンドで変更 Ubuntuは機能し続…

UbuntuにAtomをインストールする | Atom公式推奨の手順を読み解く

Atom公式の推奨する手順に従って、AtomをUbuntuにインストールしました。 結論を言うと、次の4行のコマンドを実行しました。 $ wget -qO - https://packagecloud.io/AtomEditor/atom/gpgkey | sudo apt-key add - $ sudo sh -c 'echo "deb [arch=amd64] htt…

はじめてのWebスクレイピング | ブログ投稿曜日を分析する

はじめてのWebスクレイピングに挑戦しました。今回は手始めに、自分のブログの曜日ごとの投稿数を分析しました。 Introduction Material Results Wgetコマンドとは -r オプション | 再帰的にリンクをダウンロードする -w オプション | ダウンロード間隔をあ…

gdbをデフォルトでintel記法にする | 初期化処理の仕組み

gdbシンタックスをデフォルトでintel記法にする方法と、その仕組みを調べます。 Introduction Material Results ホームディレクトリ直下で".gdbinit"にコマンドを書き込む "."からはじまるドットファイルの意味 gdbドキュメントから調べる Discussion Introd…

Pythonで鍵生成 - Keygen | はじめてのリバースエンジニアリング#7

鍵生成プログラムKeygenをPythonで作成します。 まずはradare2を用いてパスワード認証アルゴリズムを解析し、それを開くことができるKeygenを作成しました。 Introduction Material Results radare2でアルゴリズムを解析する forループの特定 forループの処…

パスワード認証の暗号化 | はじめてのリバースエンジニアリング#6

ASCII値の合計を比較する簡単な暗号アルゴリズムを用いて、自らリバースエンジニアリングするためのパスワード認証プログラムを作成し直しました。 Introduction Material Results 簡単な暗号アルゴリズム 正規パスワードの合計ASCII値を算出する パスワード…

radare2の使い方 | はじめてのリバースエンジニアリング#5

radare2のインストール方法から簡単な使い方までを記録しました。 直感では使いにくい面も感じましたが、使い慣れれば強力な武器となってくれるでしょう。 Introduction Material Results radare2をインストールする radare2を起動する radare2の使い方を調…

ハードコードされたパスワードを読み出す | はじめてのリバースエンジニアリング#4

stringsコマンドやobjdumpコマンドを用いて、プログラム中の正規パスワードを読み出す方法の記録を残します。 Introduction Material Results コード中の文字列からパスワードを読む | strings .rodataセクションからパスワードを読む | objdump -x / gdb Di…

レジスタ操作でアクセス承認を引き出す - gdb | はじめてのリバースエンジニアリング#3

gdbを用いてプログラムを実行させ、各ステップの処理を解析・操作することで、アクセス承認を目指しました。 Introduction Material Results プログラムの実行 | 第1分岐 - ハズレルート プログラムの実行 | 第1分岐 - 当たりルート プログラムの実行 | 第2…

逆アセンブル解析 - gdb | はじめてのリバースエンジニアリング#2

パスワード認証プログラムをリバースエンジニアリングして、アクセス承認を引き出したいシリーズその2。 gdbを用いてバイナリコードを逆アセンブルし、プログラムの全体像を解析しました。 Introduction Material Results gdbとは アセンブラコードを表示す…

Linuxコマンドまとめ | 使用例とマニュアル

私が使ったLinuxコマンドを、一覧としてまとめていきます。 ネット上には良質なLinuxコマンドのまとめがたくさんありますが1、自分が覚えておきたいコマンドの一覧は、やはり自分で作るしかありません。 この記事は備忘録として使うので、これからも順次更新…

パスワード認証プログラムの作成 | はじめてのリバースエンジニアリング#1

パスワード認証プログラムを作成し、それを自らリバースエンジニアリングしてアクセス承認を引き出したいシリーズその1。 今回は下準備として、今後解析していくための簡単なパスワード認証プログラムを作成しました。 Introduction Material Results パス…

はじめてのPython | Windows環境構築 - Atom

WindowsでPythonプログラミングを始める環境構築をしたので、ノートを残します。 Pythonを公式ページからダウンロードし、 テキストエディタのAtomをインストールしました。 Introduction Results Pythonのインストール Atomのインストール Atomでプログラム…

はじめてのC言語 | Linux環境構築 - vim

はじめてLinuxでC言語の初歩的なプログラミングをやったので、手順のノートを残します。 UbuntuにはもともとC言語が入っているので、 vimとgccをインストールすれば、 vimでテキストの作成、 gccでコンパイル、 ディレクトリの指定で実行、という手順で一連…

manコマンドを理解する | Linuxコマンド

manコマンドについて、ノートを残します。 manコマンドを使えば、マニュアルを表示させることができます。 使い方の例 $ man ls これでlsコマンドのマニュアルが表示されます。 また、セクションの指定をすることによって複数種類のマニュアルを読むこともで…

パーミッションを理解する | [ ls -l ] Linuxコマンド

パーミッションとは、ファイルやディレクトリへの操作権限のことです。 今回、Linuxでのパーミッションの調べ方を記録しました。 Introduction Results パーミッションとは パーミッションの調べ方 | ls -l Discussion Introduction 前回の記事1では、書き込…

Ubuntuディスプレイ解像度をデフォルトで1920x1080にする

Ubuntuのディスプレイ解像度の変更を、OS起動時のデフォルト設定にする方法を記録します。 結論から言うと、"/etc/profile.d"ディレクトリ下に、拡張子".sh"を持つファイルをroot権限で作成し、 xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2…

Ubuntuディスプレイ解像度の変更 | 1920x1080

Ubuntuは、デフォルトで1920x1080の解像度が設定できませんでした。 好きな解像度を設定する手順を記録します。 結論を言うと、次のコマンドの実行で1920x1080の解像度になりました。 $ xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080…

Windowsの上にUbuntuをインストールする | 仮想環境構築

Windows上にVMwareで仮想環境を構築し、Linux(Ubuntu)をインストールしました。 Introduction Results Linuxのいいところ どのLinuxを選ぶか VMwareで仮想環境を作れる Ubuntuを仮想環境上で起動 Ubuntuを仮想環境上にインストールする Discussion Introduct…

はじめに

コンピュータに関する諸々をいじっていてわかったこと、わからなかったことを記録します。 生物系の分野では実験手法や結果を実験ノートに書きますが、家でパソコンいじってるときにも実験ノートのようなものが欲しいと感じました。 未来の自分が困らないた…