Linux

Raspberry Piを購入してセットアップする | Raspberry Pi入門

Raspberry Pi 4とその周辺パーツの購入から、Raspberry Pi OS起動までの作業をまとめます。 はじめに Raspberry Piを購入してセットアップする Raspberry Piとその周辺パーツの購入 microSDカードのセットアップ Raspberry Piの起動 おわりに 参考 はじめに …

パイプ処理の終了ステータスを取得する | Linux shell

パイプ処理の終了ステータスを取得する方法をまとめます。 はじめに 環境 パイプ処理の終了ステータスを取得する PIPESTATUS を参照する方法 set -o pipefail を利用した方法 おわりに 参考 はじめに おはよう。@bioerrorlogです。 パイプ処理の終了ステータ…

JSONのレコード件数をjqコマンドでカウントする | Linux shell

JSON形式毎に、jqコマンドでレコード件数をカウントする方法をまとめます。 はじめに 環境 JSONのレコード件数をカウントする 配列括りのJSON Document オブジェクト括りのJSON Document JSON Lines おわりに 参考 はじめに おはよう。@bioerrorlogです。 先…

Pythonでメモリ/ディスク容量を確認する

Pythonを用いて、実行環境のメモリおよびディスク容量を確認する方法をメモします。 はじめに 環境 ディスク/メモリ容量を取得する ディスク容量 メモリ容量 おわりに 参考 はじめに おはよう。@bioerrorlogです。 あるとき、Pythonを用いて実行環境のメモリ…

Session Managerで自動実行コマンドを設定する | AWS Systems Manager

Session Managerでセッション開始時の自動実行コマンド(shell profiles)を指定する方法とその利用例をメモします。 はじめに 環境 Session Managerの自動実行コマンドを設定する 自動実行コマンド(shell profiles)の設定方法 利用例) デフォルトshellをbash…

Session Managerの"sh-4.2$"をbashに切り替える | AWS Systems Manager

Session Managerで表示される sh-4.2$の正体と、それをbashに切り替える方法の備忘録です。 はじめに 環境 Session Managerの"sh-4.2$"をbashに切り替える sh-4.2$の正体は何か bashに切り替える方法 おわりに 参考 はじめに おはよう。@bioerrorlogです。 A…

aws s3 cpコマンドで標準入出力をデータ出力/入力先に指定する | AWS CLI

AWS CLIのs3 cpコマンドにて、データの出力/入力先に標準入出力を指定する方法の備忘録です。 はじめに 環境 cpコマンドで標準入出力を活用する 標準入出力の指定方法 具体例 おわりに 参考 はじめに おはよう。@bioerrorlogです。 AWS CLIのs3 cpコマンドは…

whoisエラー対処 | No whois server is known for this kind of object.

whoisコマンド実行時に以下のエラーが出たときの対処法です。 No whois server is known for this kind of object. はじめに 作業環境 エラー対処 接続先ホストを特定する ホストを指定してwhoisコマンドを実行する おわりに 参考 はじめに おはよう。@bioer…

S3既存オブジェクトに一括でbucket-owner-full-controlを付与する | AWS CLI

S3バケットの既存の全オブジェクトに--acl bucket-owner-full-controlを一括付与するやり方の備忘録です。 はじめに 既存オブジェクトにbucket-owner-full-controllを一括付与する 追記バージョンコマンドの解説 旧バージョンコマンドの解説 おわりに 関連記…

grepコマンドで特定の文字列を含むファイルを検索する | Linux shell

ある特定の文字列を含むファイルをLinuxコマンドで検索する方法の備忘録です。 はじめに ある文字列を含むファイルをコマンドで検索する やり方 解説 おわりに 参考 はじめに おはよう。@bioerrorlogです。 コードを検索したいときなど、特定の文字列を含む…

エラー対処: RuntimeError: Click will abort further execution because Python 3 was configured to use ASCII as encoding for the environment.

以下のエラーの対処法を記します。 RuntimeError: Click will abort further execution because Python 3 was configured to use ASCII as encoding for the environment. Consult https://click.palletsprojects.com/python3/ for mitigation steps. はじめ…

Session Managerでec2-userやrootとして作業する | AWS Systems Manager

AWS Systems Manager(SSM)のSession Manager (以下セッションマネージャー) でec2-userやrootとして作業するやり方の備忘録です。 はじめに 環境 Session Managerでec2-userやrootとして作業する 現状: ssm-userとしてシェルアクセス 解決策: sudo su --logi…

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

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

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

Ubuntuでは、Pythonのpip/pip3がプリインストールされていませんでした。 これらのインストールに予想外にもつまずいたので、記録を残します。 はじめに 作業環境 Ubuntuでpip/pip3をインストールする pipとpip3は違う apt installが機能しない: pip× / pip3…

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

Ubuntuディスプレイの解像度を、最小の"1x1"に設定できるのか、検証してみました。 はじめに 作業環境 Ubuntuディスプレイ解像度を"1x1"に設定してみたい 1x1解像度のパラメータを取得する | cvt 解像度を追加する | xrandr 解像度を変更する 設定から手動で…

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] https…

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

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

Pythonで鍵生成 - Keygen | リバースエンジニアリング入門#7

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

パスワード認証の暗号化 | リバースエンジニアリング入門#6

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

radare2の使い方 | リバースエンジニアリング入門#5

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

ハードコードされたパスワードを読み出す | リバースエンジニアリング入門#4

stringsコマンドやobjdumpコマンドを用いて、プログラム中の正規パスワードを読み出す方法の記録を残します。 はじめに 作業環境 ハードコードされたパスワードを読み出す コード中の文字列からパスワードを読む | strings .rodataセクションからパスワード…

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

gdbを用いてプログラムの各ステップを解析・操作することで、アクセス承認を目指します。 はじめに 作業環境 レジスタ操作でアクセス承認を引き出す プログラムの実行 | 第1分岐 - ハズレルート プログラムの実行 | 第1分岐 - 当たりルート プログラムの実行…

逆アセンブル解析 - gdb | リバースエンジニアリング入門#2

gdbを用いてバイナリコードを逆アセンブル (ディスアセンブル)し、Cで書かれたプログラムの全体像を解析します。 はじめに 作業環境 逆アセンブル解析 gdbとは アセンブラコードを表示する | (gdb) disassemble アセンブラコードの流れを解析する おわりに …

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

おはよう。@bioerrorlogです。 Linux基本コマンドを一覧でまとめていきます。 ネット上には良質なLinuxコマンドのまとめがたくさんありますが1、自分が覚えておきたいコマンドの一覧は、やはり自分で作るしかありません。 備忘録としてまとめます。 基本コマ…

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

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

LinuxではじめてのC言語を実行する | vim + gcc

Linux (Ubuntu) + vimでC言語を実行する環境構築をしたので、手順のノートを残します。 UbuntuにはもともとC言語が入っているため、以下の流れでC言語を実行できるようになりました。 vimとgccのインストール vimでテキストの作成 gccでコンパイル ディレク…

manコマンドの基本的な使い方を理解する | Linuxコマンド

manコマンドの基本的な使い方を整理します。 はじめに manコマンドの基本的な使い方を理解する manの使い方の初歩 マニュアルのセクションを指定する マニュアルを検索する おわりに はじめに おはよう。@bioerrorlogです。 manコマンドは、マニュアルを表示…

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

パーミッションとは、ファイルやディレクトリへの操作権限のことです。 今回、Linuxでのパーミッションの調べ方を記録しました。 はじめに パーミッションを理解する パーミッションとは パーミッションの調べ方 | ls -l おわりに はじめに おはよう。@bioer…

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 257…