備忘録

備忘録

リバースエンジニアリング

Photonの生パケットを読む

Ⅰ. はじめに 1. Photon とは クロスプラットフォームで動作する「ネットワークエンジン」です。 ドイツのベンチャー企業「Exit Games」が開発しています。「クラウド(SaaS)」と「オンプレミス」が選択できます。 アジアリージョンのクラウドはGMOが独占して…

リバースエンジニアリングを楽にする単語のメモ

Ⅰ. はじめに タイトルの通り「リバースエンジニアリングを楽にする単語のメモ」です。 随時追加します。 Ⅱ. 一覧 algorithm encrypt encode decrypt decode cipher extract rijndael aes pkcs rsa x509 certificate key block cbc su MII RSA暗号秘密鍵/公開…

Packer Detector一覧

Ⅰ. はじめに 解析対象のバイナリがどの Executable Packer を使っているかを自動的に判定するツールです。 Ⅱ. Packer Detector 一覧 Exeinfo PE http://exeinfo.atwebpages.com/ Detect It Easy http://ntinfo.biz/ PEiD http://www.peid.info/ 2017/05/07時…

仲介DLLを作成する

Ⅰ. はじめに 仲介DLLを作成する方法です。 DLL Proxy や DLL Wrapper とも呼ばれています。 Ⅱ. やり方 こちらを使います。 https://github.com/mavenlin/Dll_Wrapper_Gen 1. ファイルを自動生成する python Generate_Wrapper.py hoge.dll 2. ソリューション…

DoubleAgent を試してみる

Ⅰ. はじめに DoubleAgent とは? Microsoft Application Verifer を悪用した攻撃の事です。 セキュリティ会社 Cybellum によって 2017/03/22 に公開されました。 何ができるの? プロセスの開始と同時に 任意の dll が読み込まれ任意コードの実行が可能にな…

プロテクトを回避してメモリをフルダンプする

Ⅰ.はじめに 物理メモリを任意の物理記憶媒体にダンプする方法です。 Belkasoft社の無料ダンプツール(Belkasoft Live RAM Capture)を利用します。 Ⅱ. Belkasoft Live RAM Captureのすごいところ 無料 ダンプ後のファイルを解析するBelkasoft Evidence Cente…

.protoをシリアライズされているバイナリデータから作る

Ⅰ. はじめに 私の知る限りバイナリから自動で.protoを生成するツールは公開されていません。シリアライズされているバイナリデータを読み取る為の.proto作成は手動の為、非常に手間がかかります。手間がかかる理由として、例えば、ProtocolBuffersはシリアラ…

JMPの隠蔽

Ⅰ. はじめに リバースエンジニアリングのテクニックの1つです。 パターン化しているので覚えておいて損はありません。 主に ASProtect というパッカーが利用する方法です。 Ⅱ. JMPの隠蔽方法 通常の場合 アセンブリでJMPする場合は以下のように書きます。 JM…

ファイル調査に使えるツール達

Home of Hexinator - The Professional Hex Editor - Hexinatorforemostbinwalk

Frida の使い方

Ⅰ. はじめに Frida は JavaScriptを用いてでネイティブアプリをデバッグすることができる強力なツールです。 www.frida.reAndroidアプリをトレースする ※予めAndroidにfrida-serverを入れ、起動しておく必要があります。 frida-trace -U -i *Func* appWindow…

disunity でフォルダを対象にする

disunity asset unpack c:\hoge\*※ファイル単体の場合 disunity asset unpack c:\hoge\CAB-xxx

Androidで他アプリのメソッドをhookする

Qiitaで投稿しました http://qiita.com/kagasu/items/7a3421ec471349885b10

ARM Opcodeメモ

※2017/05/29 追記 とても理解しやすい解説サイト https://azeria-labs.com/writing-arm-assembly-part-1/ ADD 加算 例. ADD(S) <dst>, <op 1>, <op 2> dst = op1 + op2; SUB 減算 例. SUB(S) <dst>, <op 1>, <op 2> dst = op1 - op2; EOR 排他的論理和(XOR) 例. EOR <op 1>, <op 2> (op1 == op2)? 0 : 1; </op></op></op></op></dst></op></op></dst>…

Wireshark POSTだけ絞り込む

http.request.method=="POST"おまけ HTTPだけ絞り込む (tcpを付け加えると SSDP NOTIFYも除外できる) http && tcp

C# IL boolの戻り値を反転させる。

パターン1 bool hoge() { return gege(); } // ↓こうしたい bool hoge() { return !gege(); } bool gege { // return false // または // return true; } ldc.i4.0 ceq を追加する call gege() stloc.0 ... ret ↓ call gege() ldc.i4.0 ceq stloc.0 .. ret …

C++ 高速にメモリサーチを行う方法

ある特定範囲の最初から最後までをサーチをする場合、 メモリを確保していない場所までサーチするため非常に遅くなります。VirtualQueryExを使うと、 メモリのアクセス状態などによって分岐を行えるため、 非常に高速にメモリサーチを行うことができます。 v…

ktxをpngに変換する

ktxにはdisunity extractしたとき、たまに出会います。 それをpngに変換するときの話。 1. 必要なもの 1) PowerVR | Imagination Community http://community.imgtec.com/developers/powervr/2) ImageMagick: Convert, Edit, Or Compose Bitmap Images http:…

APK(smali)を弄る

用意するもの・JDK ・apktool.jar https://code.google.com/p/android-apktool/downloads/list手順# デコンパイル 1) java -jar apktool.jar d hoge.apk# smaliを弄る ○弄るときに役に立つもの一覧 ・Dalvik opecodes http://pallergabor.uw.hu/androidblog/…