Wake Up People

👉

GitHubでスターしたリポジトリをランダムに出力する

まえがき 自分にはGitHubで気になったレポジトリにすぐスターを付けてしまう癖があります。 現在、自分のGitHubアカウントのスターは二千弱(2019/02/23 現在) 今後も増えていくでしょう。 さて、スターが増えて何が困るかというと、それはもう単純でどのレポジトリをスターしたか忘れてしまうのです。 後で見る、後で見ると先延ばしにしている内にスターが増えていき、結局どれを見るつもりだったんだっけ?と途方に暮れる毎日。 スターのリストを片っ端から見ていけば良いのですが、これもまたスターした日付順、スターが多い順など何でソートをしようか悩んでしまいます。 せっかくスターしたレポジトリ、こんなことで悩んで時間を使うよりも、実際に使ってみたり、コードを読み書きしたり、紹介なり何なりをして時間を使うほうが有益だと思います。 こんな時に”いま確認すべきスターしたレポジトリ”を示してくれるモノあれば悩まくて良いなと思い、タイトル通りのプログラムを書きました。 内容 ここにプログラムは置いておきます。 そんな大層な内容のものではなく30行ほど。 ユーザ名を引数に取り、そのユーザがスターしたレポジトリをapiを叩いて取得。 いくつか出てくると思うのでその中から1つだけ選んで出力するだけとなっている。 import urllib.request import json from random import choice from sys import argv if len(argv) != 2: print("Usage: python3 randstar.py <UserName>") exit(0) user_name = argv[1] url = "https://api.github.com/users/" + user_name + "/starred" req = urllib.request.Request(url) body = "" try: with urllib.request.urlopen(req) as res: body = res.read().decode('utf-8') except Exception as e: print("ERROR: {}".format(e)) exit(1) json_obj = json....

SandsifterでCPUをファジングする

概要 ファジングしていますか? ユーザランドのソフト、カーネルとファジング対象は数あれど、より高い権限を持った存在 - CPU - のファジングツールはなかなかお目にかかれない。 今回はそんなCPUをファジングするsandsifterを紹介します。 Sandsifterとは sandsifterとはx86プロセッサーに仕込まれた隠し命令やバグを発見するために開発されたファジングツール。 ツールの中にはファジングした記録を見やすくしてくれるPythonスクリプトも同梱されていまる。 仮想化ソフトのバグ(ハイパーバイザやエミュレータ,ディスアセンブラとかのバグ) ハードウェアのバグ(PentiumのFDIV命令起因のバグとか) CPUの隠しコマンド(メーカ向けに出されている非公開命令) を見つけることができる。 Sandsifter公開当時の資料を見ると大量のバグを発見している。 個人的に面白いと思ったのはディスアセンブラのバグの部分で、こんな命令を埋め込まれた日にはマルウェア解析とか面倒そうだなと思った。 使ってみる 使い方はとても簡単でいくつかライブラリをインストールして実行するだけ。 注意する点といえば Python3で実行するときにエラーを吐く ファザーのビルドが失敗する時がある どちらも既知の問題っぽい。 https://github.com/xoreaxeaxeax/sandsifter/issues/2 https://github.com/xoreaxeaxeax/sandsifter/issues/29 フォークして適当に直したコードを上げておいた。 https://github.com/famasoon/sandsifter 前置きが長くなったが実際に使ってみる。 環境 QEMU上でUbuntu 18.04を動かしている 手順 必要なライブラリをインストール ビルド Pythonスクリプト実行 sudo apt install libcapstone3 libcapstone-dev sudo pip3 install capstone git clone https://github.com/famasoon/sandsifter cd sandsifter make sudo python3 ./sifter.py --unk --dis --len --sync --tick -- -P1 -t これだけでCPUのファジングができる。 便利な世の中になったものですね。 もちろん変な命令を見つけて解析する部分は大変ですが。...

Vagrant boxからQEMU用のVMを作る

はじめに Windowsの評価用VMからQEMUに対応したVMを作りたくなった。 通常ならここでHyper-V用のマシンをダウンロードすればすんなりVMを作れるのだが、手が滑ってVagrant boxの方をダウンロードしてしまった。 再度ダウンロードするにも時間がかかるし帯域も食うのでboxファイルからQEMU対応のVMを作る。 環境 Ubuntu 16.04でやっている。 $ uname -a Linux ubuntu 4.15.0-43-generic #46~16.04.1-Ubuntu SMP Fri Dec 7 13:31:08 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux ファイルを変換する 今回ダウンロードしたファイルはここからIE8 on Win7(x86)、Vagrantを選択してダウンロードしたもの。 ダウンロードしたzipを開くと中にboxファイルが入っている。 fileコマンドで確認すると、このboxファイルのフォーマットはgzip形式で圧縮されたファイルだった 。 $ file win7.box win7.box: gzip compressed data, last modified: Wed Sep 23 13:40:40 2015, from Unix gzipコマンドで解凍してみる。 $ mv win7.box win7.gz \ gzip -d win7.gz すると今度はtarファイルが出てくるのでtarコマンドで展開する。 $ file win7 win7: POSIX tar archive $ mv win7 win7....

Hugo でブログを markdown で書く

はじめに 最近、やったことや知ったことをブログでしっかりアウトプットしようと思い始めた。 しかしながらブログ記事を投稿しようとしても、エディタで色々と書いた後にブログの作成ページを開いて文章をコピペして見た目を整えて…と作業をしている内に面倒になってくる。 これではいけないとエディタで適当に書いた後にいい感じに勝手にブログにしてくれるツールを探していたらHugoを見つけた。 普段からブログの下書きはmarkdownで書いているし、GitHubで管理しているからGitHub pages を使えば楽に運用できそう。 そんなこんなでHugoでやっていくことにした。 環境 Ubuntu 16.04 でやっていく。 $ uname -a Linux ubuntu 4.15.0-43-generic #46~16.04.1-Ubuntu SMP Fri Dec 7 13:31:08 UTC 2018 x86_64 x86_64 x86_64 GNU/Linu Hugo とは HUGO Golang製の静的サイトジェネレータ。 色々なテーマが使えるし記事のビルドも早い。 Hugo をインストール 公式ドキュメント通りにやったらできた。 $ snap install hugo パスワードの入力を求められる。 それが終わればインストール完了。 ブログ用のディレクトリを作成する 下記コマンドでhugo new site [サイト名]でHUGOの作業用ディレクトリができあがる。 $ hugo new site blog 日本語向けに設定を変える さて、HUGOはデフォルトだと英語圏向けの設定になっている。 これでは少しツライので日本語向け設定にする。 設定ファイルは先に作成した作業用ディレクトリ直下のconfig.toml。 これを自分好みのモノに変更する。 baseURL = "https://gyoza.in/" languageCode = "ja" title = "Wake Up People" baseURLはHUGOで公開したいサイトのドメイン。 languageCodeは利用する言語圏に合わせて変更する。 ここでは"ja"に変更。 titleはブログのタイトル。自分好みの名前に変更(某鉄球使いは関係ない)...

About me

JUST DO IT!! My interest lies in: Reverse-engineering Pwning(Exploitation) Penetration test CTF Operating systems Virtualization Contact Twitter GitHub old blog ...