2018-01-01から1年間の記事一覧

IDAの便利プラグイン3選!!!

IDA

これはセキュリティツール系 Advent Calendar 2018 の25日目の記事です。 この記事では便利なIDAのプラグインを3つ紹介したいと思います。 findCrypt findCryptは暗号に使われる定数をgrepすることで、どんな暗号が使われているか判別するIDAプラグインです…

リアルモードでも32bitのレジスタを使うことができる

この記事は自作OS Advent Calendar 2018の21日目の記事です。 自作OSのアドカレなので、まずは作っているCPUエミュの話をしましょう。 CPUエミュを作っている話 そもそもなぜCPUエミュを作っているのかというと、 Golangで書かれたファミコンのエミュのコー…

PinなどのDBIツールでトレースした結果をIDAにマッピングするプラグイン「Lighthouse」を使ってみた

IDA

Lighthouseとは Lighthouse とは、DBIツールでトレースすることで得たコードカバレッジデータを見やすくIDA内の独自のViewに表示し、IDAのDisassembly View、Graph ViewにマッピングしてくれるIDAプラグインである。 github.com DBI(Dynamic Binary Instrum…

Rails appのRuboCopのconfigにはGitHub社で使われているものを使うとよさそう

RuboCopとは RuboCopはRuby向けのコードフォーマッターで、書いたコードがスタイルガイドに準拠しているかシュッとチェックできる。 github.com -aでauto fixすることができてとても便利であるが、 結構うるさいのでconfigである.rubocop.ymlを調整しないと…

Android/iOS端末、アプリを扱うのに便利なコマンド、aliasたち

Android/iOS端末、アプリについて取得したい情報があるとき、ついついAndroidやiPhoneの端末のUIからがんばってしまいがちだが、 コマンドでやると楽に取得できる。 そんなときに使える、Android/iOSアプリを開発するときや、解析するときに便利なコマンド、…

MagSafe2のケーブルを熱収縮チューブで補修した

MagSafe 2のケーブルの皮膜が劣化して、中の電線が見える状態になったので熱収縮チューブで補修した。使い始めて5年なので寿命かな。 チューブをケーブルで巻いてはんだごてで温めるだけ。 手持ちの熱収縮チューブが見当たらなくて新しく買うことにしたけれ…

Homebrewで入るNASMは古すぎて、aptで入るNASMとは挙動が違う

自作CPUエミュの動作確認をしているときに、Homebrewで入るNASMとaptで入るNASMの挙動が違うことに気がついた。 挙動の違いを見る 簡単なコードをアセンブルして違いを見る。 BITS 32 org 0x7c00 sub esp, 16 aptで入るNASM Ubuntuにaptで入るNASMを使って、…

LLVM IR、LLVM bitcodeを扱うコマンドたちのメモ

LLVM IR、LLVM bitcodeを扱うコマンドをよく忘れるのでメモしておく。 CのコードをLLVM IR、LLVM bitcodeに変換するコマンド、LLVM bitcodeをインタプリタから実行するコマンド、コンパイルするコマンドなどを書いておく。 以下のCのコードを変換していく。 …

LLVMのPassを題材にした0CTF CTF quals 2017のChoicesを解いた

最近、LLVMに興味があって、いろいろ調べているうちにLLVMのPassのreversingの問題を見つけたので解いてみた。 write-ups-2017/0ctf-quals-2017/reverse/Choices-297 at master · ctfs/write-ups-2017 問題 All roads lead to Vegas. Compile: clang -Xclang…

技術書展4でTomoriNao Vol.2を頒布してきた!!

11時20分くらいに着いたら整理券が1918番で結局入れたのは12時半ごろだった。予想以上に人が多い。 13時頃には200冊全部売れてよかったですね。 TomoriNao vol.2完売!!ありがとうございます!!!kindle版をよろしくお願いします!!!! #技術書典4— たけ…

rails 5.1.6 のアプリをrails 5.2.0にアップデートしたときに困ったとこメモ

rails 5.1.6 のアプリをrails 5.2.0にアップデートしたときに、いろいろハマったのでメモ。 rails側 rails側での作業メモ。 cannot load such file -- bootsnap/setup とりあえず rails app:updateしてみる。 route.rbなどは上書きしたらダメだけど、boot.rb…

技術書典4で TomoriNao vol.2 を頒布します!!

技術書典4で TomoriNao vol.2 を頒布します!! 場所は「お16」です!!! techbookfest.org ぼくは、「アンチデバックのためのデッドコードをLLVM optimizerで緩和してみる」という題で書きました。 LLVMのパスを使った難読化/難読化緩和の研究がちょくちょ…

JSONを扱いやすくするコマンド(jq, gron)のメモ

JSONを扱いやすくするコマンドのjq、gronのメモ。 jq コマンド jq コマンドはJSON向けのawkのようなコマンド。 インストール方法(on Mac) $ brew install jq 使い方 パイプで渡されたJSONデータにフィルターをかけることができる。 GitHub APIを使ってリポ…

株式会社はてなに入社しました

株式会社はてなに入社しました株式会社はてなに入社しました - hitode909の日記

IDAプラグインの更新をサボっていたら割れIDAへのリンクを貼られた

IDA

IDA 7.0が昨年9月くらいに出たので、IDA 6.xのプラグインはIDA 7.xに対応するべく更新する必要がありました。 更新されたAPIへの差し替え、32bitアプリケーションだったのが64bitアプリケーションになったことによる変更などなど.... www.hex-rays.com naoと…

Rails appのコードを変更したときに、Guardに自動でRuboCop、RSpecを実行してもらう

Guardとは Guardはファイルに変更があったときに、タスクを走らせてくれるgemで、コードを変更したときに、静的なコードチェックをしてくれるRuboCopやRSpecで書かれたテストを実行させることができる。RuboCopやテストコードを随時走らせてコーディングして…

LLVM bitcodeのCFGを生成する

LLVM bitcodeとは LLVM内ではLLVM IRという中間言語表現が用いられる。 ソースコードをLLVM IRコードに変換したあと、そのLLVM IRコードをターゲットのアーキテクチャのバイナリに変換...という流れでコンパイルは行われる。 LLVM bitcode は LLVMの独自バ…

死んだサーバーで動いていたアプリの引っ越しの歌

記憶の欠片に描いたnginx.confを見つめて 跡切れた想い出重ねる 変わらない夢に Oh 死んだHDD どれだけ涙を流せば 貴方を忘れられるだろう Just tell me my life 何処まで歩いてみても 涙で明日が見えない以上、X JAPANのRusty Nailの替え歌でした。www.yout…