Androidアプリケーションの解析ツールについて,導入手順と使い方をメモする.
Smaliとは,apktoolをはじめとした多くの解析ツールで用いられる擬似コードのフォーマット.
Javaとのセマンティックギャップはあるものの,可逆性を備えており,apkファイルに変換することができる.
| #include <stdio.h> | |
| #include <stdlib.h> | |
| #include <signal.h> | |
| #include <string.h> | |
| #include <unistd.h> | |
| #include <sys/mman.h> | |
| #include <ucontext.h> | |
| char preserve; |
| お (*・ρ・)ジュルリ 名詞 | |
| お (*>ヮ<)(>ヮ<*)ネー 名詞 | |
| お ヾ(๑╹◡╹)ノ"♡ 名詞 | |
| お (╹⌓╹ ) 名詞 | |
| お (/ω\) 名詞 | |
| お (ヾノ・ω・`)ナイナイ 名詞 | |
| お ☆(ゝω・)v 名詞 | |
| お ヾ(>ヮ<*)ナデナデ 名詞 | |
| お (*/ω\*) 名詞 | |
| お (=△=`歩) 名詞 |
| #!/usr/bin/env python | |
| import subprocess | |
| import time | |
| from struct import pack, unpack | |
| TIME_RANGE = 10 | |
| def readlen(h, l, wait = 0.1, timeout = 3): | |
| data = "" |
| // Drafting By Hachima | |
| // http://blog.esuteru.com/ | |
| // http://m.esuteru.com/ | |
| // https://twitter.com/htmk73 | |
| // (OLD) http://blog.livedoor.jp/htmk73/ | |
| // (OLD) http://hatimaki.blog110.fc2.com/ | |
| // My Breaking Video Game News By Jin | |
| // http://jin115.com/ | |
| // https://twitter.com/Jin115 |
| #include <Windows.h> | |
| #include <winternl.h> | |
| typedef struct _CLIENT_ID | |
| { | |
| PVOID UniqueProcess; | |
| PVOID UniqueThread; | |
| } CLIENT_ID, *PCLIENT_ID; | |
| typedef LONG KPRIORITY; |
| #include <Windows.h> | |
| #include <stdio.h> | |
| #include <time.h> | |
| #include "resource.h" | |
| #define Msg(x) MessageBox(0, x, 0, 0); | |
| #define CT(x, y) CreateThread(0, 0, (LPTHREAD_START_ROUTINE)x, (LPVOID)y, 0, 0) | |
| #pragma warning(disable:4244) | |
| #pragma warning(disable:4800) | |
| #pragma warning(disable:4996) |
| // dllmain.cpp : Defines the entry point for the DLL application. | |
| #include "stdafx.h" | |
| #include <detours.h> | |
| DETOUR_TRAMPOLINE(DWORD WINAPI RealGT(LPTIME_ZONE_INFORMATION lpTimeZone), GetTimeZoneInformation); | |
| DETOUR_TRAMPOLINE(void WINAPI RealSysTime(LPSYSTEMTIME time), GetSystemTime); | |
| DWORD WINAPI DetourGTZI(LPTIME_ZONE_INFORMATION lpTimeZone) | |
| { |
| #include <stdio.h> | |
| #include <stdint.h> | |
| uint64_t rdtsc(void) | |
| { | |
| uint64_t ret; | |
| __asm__ volatile("rdtsc" : "=A"(ret)); | |
| return ret; | |
| } |
| data Tree a = EmptyTree | Node a (Tree a) (Tree a) deriving (Show) | |
| singleton :: a -> Tree a | |
| singleton x = Node x EmptyTree EmptyTree | |
| treeInsert :: (Ord a) => a -> Tree a -> Tree a | |
| treeInsert x EmptyTree = singleton x | |
| treeInsert x (Node a left right) | |
| | x == a = Node a left right | |
| | x < a = Node a (treeInsert x left) right | |
| | x > a = Node a left (treeInsert x right) |