LoginSignup
11
18

More than 3 years have passed since last update.

iOSアプリのリバースエンジニアリング-[ツール編]

Last updated at Posted at 2020-09-19

はじめに

この記事は随時追記していきます。時々思い出した頃に見に来てください。ストックかLGTMで多分更新時に通知がいくようにするのでみたい人はお願いします

ツールたち

LLDB

LLVM(Xcodeでも使われているコンパイラ)のプロジェクトの一部として開発された高性能な動的デバッガ。
以下のサイトはgdb to lldbのチートシートであるが、普通にlldbのコマンドを調べるためにも役に立つ。
http://lldb.llvm.org/use/map.html
こちらは純粋なlldbのチートシート
https://www.nesono.com/sites/default/files/lldb%20cheat%20sheet.pdf

breakpointはもちろん、bt(バックトレース)やimage lookup --address、thread returnなどをよく使ってる。
XcodeからでなくコマンドラインでLLDBを使うようになってから、普通のiOSアプリの開発においてもコマンドから使ったりするようになった。

あんまり実用性はないけどGUIも用意されてたりする。
スクリーンショット 2020-09-19 22.07.20.png

otool

いくつかの用法がある。

ライブラリの依存関係を調べる

lddみたいな使い方

otool -L ファイル名

nm

シンボルを抽出して表示する。使用されているクラス名などを調べることができる。

nm ファイル名

strings

ファイルから文字列の部分を抽出する。例えば、pirntf("aaaa");としていれば、aaaaが見つかる。
このコマンドから見つからないようにする方法も今度記事にしようと思っています。

strings ファイル名

dsdump

Hopper Disassembler V4

スクリーンショット 2020-10-27 21.33.19.png

Ghidra

frida

11
18
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
18