Reveal - UI 分析工具

一、安装和简介

  a) download url

  b) Reveal 使用的方法有两种: Static Library Intefration, Dynamic Library Intefration。(我们使用 Dynamic Library Intefration)


二、Dynamic Library Intefration

  a) 打开 Reveal -> Help -> Show Reveal Library In Finder, copy libReveal.dylib 到目标 app 的 Documents 目录。(我使用的是新浪的天气通)

  b) 创建 RevealUtil.h 和 RevealUtil.m,来自《iOS应用逆向工程》。

  RevealUtil.h

#import <Foundation/Foundation.h>

@interface RevealUtil : NSObject {
@private
void* revealLib;
} - (void)startReveal;
- (void)stopReveal; @end

  RevealUtil.m  

#import "RevealUtil.h"
#import <dlfcn.h> @implementation RevealUtil - (void)startReveal {
NSString* revealLibName = @"libReveal.dylib";
NSString* documentDirectory = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
NSString* dyLibPath = [documentDirectory stringByAppendingPathComponent:revealLibName]; revealLib = dlopen([dyLibPath cStringUsingEncoding:NSUTF8StringEncoding], RTLD_NOW); if (revealLib == nil) {
char *error = dlerror();
NSLog(@"dlopen error: %s", error); } else {
[[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStart" object:self];
}
} - (void)stopReveal {
if (revealLib != nil) {
[[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStop" object:self]; if (dlclose(revealLib) == 0) {
revealLib = nil; } else {
char *error = dlerror();
NSLog(@"Reveal Library could not be unloaded: %s", error);
}
}
} @end

  c) 创建一个 Theos Tweak 项目(ref

  d) 修改 xxxtweak.plist,如下

Reveal - UI 分析工具

  e) 修改 Tweak.xm 如下, (注意:这里 hook 的 class name 一定要对应,我这里是凭感觉猜的)

Reveal - UI 分析工具

  f) 修改 makefile 文件,如下

Reveal - UI 分析工具

  g) 打包安装到 ios 设备上,先关闭之前代开的目标应用,然后重新打开,并打开 mac 端的 Reveal,会有如下效果:(注意:保持 ios 设备和 mac 处于同一网段)

  Reveal - UI 分析工具

  

上一篇:SQL Server的镜像是基于物理块变化的复制 镜像Failover之后数据的预热问题


下一篇:Python基础题