本記事では、2022年12月に読んだ記事、映像、およびツールを紹介する。
twitterやDiscordに読んだ記事を垂れ流していたが、以下の記事にように一定期間でまとめるのも良いと思ったため、本記事でも同じようにする。
Articles & Learning
QEMU CodeBlock Translation - Bletchley Park
QEMUにおいてtarget codeを実行する際、translation blockがキャッシュ済みであればキャッシュから、なければ生成する処理が存在する。その辺の実装のまとめ。fastとslowの命名が初見だと分かりにくい。
arduino-cliによるArduinoアプリケーションの開発 - スイッチサイエンス 開発者ブログ
Arduinoのプロジェクトをビルドする際、毎回GUIをぽちぽちしては面倒ですがCLIでもできるツールがある。IDEからでは、bin(data形式)ファイルしか得られなかっため、ELF形式のバイナリが欲しい場合はこちらを使ってみてはどうだろうか。
フォールトインジェクションとは?電圧グリッチでnRF52のプロテクションを破って学ぶ | Shooting!!!
フォールトインジェクションの過程が見られる。グリッチの実装あたりを再読して理解したい。
Projects & Tools
GitHub - gaasedelen/lighthouse: A Coverage Explorer for Reverse Engineers
Binary NinjaとIDAでコードカバレッジを確認できるツール。HTMLへexportする機能が動かなかったため、PRを出した。Ghidra版はこっち。
Googleの検索と同時にchatGPTに質問するextension。便利だが頻繁に検索するとセッションが切れるため、現在は使っていない。
GitHub - hathach/tinyusb: An open source cross-platform USB stack for embedded system
組み込みシステム用のOSSのUSBホスト/デバイススタック。picoに実装する人がいたので今度やってみたい。ただinterfaceの記事を読んでも仕様が分からなかった。
GitHub - jgraph/drawio-desktop: Official electron build of draw.io
draw.ioのデスクトップ版。web版でPDF exportをすると漢字が中国語のフォントに変換されて違和感があった。しかし、デスクトップ版ではその問題が解決した。
Tips
How to calculate the total basic block number in a Linux ELF binary - Stack Overflow
angrでelfの全基本ブロックを取得する方法。 Ghidraと比較すると明らかにbase addressがずれた基本ブロックまで取得していたため、精度は要調査。
How to ask GDB to break at a function only after it's called certain times? - Stack Overflow
gdbでcontinueをn回実行する方法。(gdb) continue n
で良かった。
diff + grep + perlで相違点(差分)だけを抽出する - hogehoge foobar Blog Style Beta
タイトルの通り、diffの結果から差分だけをcsvに出力する方法
Random
BananaPi M2 Zeroを使ってみる! その1 - レトロパソコンであそぼう!
バナナパイというものがあるらしい。aliexpressで1500円ほどだったので気になった。