Advertisement
Guest User

Untitled

a guest
Jul 15th, 2022
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #import <Foundation/Foundation.h>
  2. #import <Security/SecureTransport.h>
  3. #import <SpringBoard/SpringBoard.h>
  4. #import "substrate.h"
  5.  
  6. #import <dlfcn.h>
  7.  
  8. #pragma mark Utility Functions
  9.  
  10. static void TweakLog(NSString *format, ...)
  11. {
  12.     NSString *newFormat = [[NSString alloc] initWithFormat:@"=== Tweak Log: %@", format];
  13.     va_list args;
  14.     va_start(args, format);
  15.     NSLogv(newFormat, args);
  16.     va_end(args);
  17. }
  18.  
  19.  
  20. static void (*original_SSL_CTX_set_info_callback)(void *ssl, void* (*callback)(void *ssl, uint8_t *out_alert));
  21. static void replaced_SSL_CTX_set_info_callback(void *ssl, void*(*callback)(void *ssl, uint8_t *out_alert))
  22. {
  23.     TweakLog(@"Entering replaced_SSL_CTX_set_info_callback()");
  24.     original_SSL_CTX_set_info_callback(ssl, callback);
  25.     TweakLog(@"Called original replaced_SSL_CTX_set_info_callback()");
  26.     return;
  27. }
  28.  
  29. __attribute__((constructor)) static void init(int argc, const char **argv)
  30. {
  31.     TweakLog(@"Substrate hook enabled.");
  32.     void* boringssl_handle = dlopen("/usr/lib/libboringssl.dylib", RTLD_NOW);
  33.     void *SSL_CTX_set_info_callback = dlsym(boringssl_handle, "SSL_CTX_set_info_callback");
  34.  
  35.     if (SSL_CTX_set_info_callback)
  36.     {
  37.         TweakLog(@"Hooking SSL_set_custom_verify()...");
  38.         MSHookFunction((void *) SSL_CTX_set_info_callback, (void *) replaced_SSL_CTX_set_info_callback,  (void **) &original_SSL_CTX_set_info_callback);
  39.     }
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement