2022年12月に読んだものまとめ

本記事では、2022年12月に読んだ記事、映像、およびツールを紹介する。

twitterやDiscordに読んだ記事を垂れ流していたが、以下の記事にように一定期間でまとめるのも良いと思ったため、本記事でも同じようにする。

interrupt.memfault.com

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版はこっち

GitHub - wong2/chat-gpt-google-extension: A browser extension to display ChatGPT response alongside search engine results

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円ほどだったので気になった。