zoukankan      html  css  js  c++  java
  • Reveal

    一、安装和简介

      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,如下

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

      f) 修改 makefile 文件,如下

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

      

      

  • 相关阅读:
    MySQL GTID复制Slave跳过错误事务Id以及复制排错问题总结
    Git基础命令整理
    原创-公司项目部署交付环境预检查shell脚本
    解决SecureCRT超时自动断开的问题
    Linux设置显示中文和设置字体
    高等代数4 线性方程组
    高等代数3 行列式
    高等代数2 向量组
    高等代数1 矩阵
    离散数学4 组合数学
  • 原文地址:https://www.cnblogs.com/eileenleung/p/3843028.html
Copyright © 2011-2022 走看看