Advertisement
Guest User

Untitled

a guest
Jul 29th, 2015
324
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.01 KB | None | 0 0
  1. #include "loader.h"
  2. void _start()
  3. {
  4.     unsigned int nsysnet_handle, coreinit_handle;
  5.     OSDynLoad_Acquire("nsysnet.rpl", &nsysnet_handle);
  6.     OSDynLoad_Acquire("coreinit.rpl", &coreinit_handle);
  7.     void (*DCFlushRange)(void *buffer, int length);
  8.     void (*DCInvalidateRange)(void *buffer, int length);
  9.     void (*ICInvalidateRange)(void *buffer, int length);
  10.    
  11.  
  12.     char (*NSSLSetClientPKI);
  13.     char (*NSSLAddServerPKI);
  14.     char (*NSSLAddServerPKIExternal);
  15.     char (*NSSLAddCRLExternal);
  16.     char (*NSSLContextSetFlags);
  17.     char (*NSSLAddServerPKIGroups);
  18.     char (*NSSLCreateConnection);
  19.     void (*_Exit)();
  20.    
  21.     OSDynLoad_FindExport(coreinit_handle, 0, "DCFlushRange", &DCFlushRange);
  22.     OSDynLoad_FindExport(coreinit_handle, 0, "DCInvalidateRange", &DCInvalidateRange);
  23.     OSDynLoad_FindExport(coreinit_handle, 0, "ICInvalidateRange", &ICInvalidateRange);
  24.    
  25.     OSDynLoad_FindExport(nsysnet_handle, 0, "NSSLSetClientPKI", &NSSLSetClientPKI);
  26.     OSDynLoad_FindExport(nsysnet_handle, 0, "NSSLAddServerPKI", &NSSLAddServerPKI);
  27.     OSDynLoad_FindExport(nsysnet_handle, 0, "NSSLAddServerPKIExternal", &NSSLAddServerPKIExternal);
  28.     OSDynLoad_FindExport(nsysnet_handle, 0, "NSSLAddCRLExternal", &NSSLAddCRLExternal);
  29.     OSDynLoad_FindExport(nsysnet_handle, 0, "NSSLContextSetFlags", &NSSLContextSetFlags);
  30.     OSDynLoad_FindExport(nsysnet_handle, 0, "NSSLAddServerPKIGroups", &NSSLAddServerPKIGroups);
  31.    
  32.     OSDynLoad_FindExport(nsysnet_handle, 0, "NSSLCreateConnection", &NSSLCreateConnection);//
  33.    
  34.     OSDynLoad_FindExport(coreinit_handle, 0, "_Exit", &_Exit);
  35.    
  36.  
  37.     ((int*)((int)NSSLSetClientPKI+0xA0000000))[0] = 0x38600000;
  38.     ((int*)((int)NSSLSetClientPKI+0xA0000000))[1] = 0x4E800020;
  39.     ((int*)((int)NSSLAddServerPKI+0xA0000000))[0] = 0x38600000;
  40.     ((int*)((int)NSSLAddServerPKI+0xA0000000))[1] = 0x4E800020;
  41.     ((int*)((int)NSSLAddServerPKIExternal+0xA0000000))[0] = 0x38600000;
  42.     ((int*)((int)NSSLAddServerPKIExternal+0xA0000000))[1] = 0x4E800020;
  43.     ((int*)((int)NSSLAddCRLExternal+0xA0000000))[0] = 0x38600000;
  44.     ((int*)((int)NSSLAddCRLExternal+0xA0000000))[1] = 0x4E800020;
  45.     ((int*)((int)NSSLContextSetFlags+0xA0000000))[0] = 0x38600000;
  46.     ((int*)((int)NSSLContextSetFlags+0xA0000000))[1] = 0x4E800020;
  47.     ((int*)((int)NSSLAddServerPKIGroups+0xA0000000))[0] = 0x38600000;
  48.     ((int*)((int)NSSLAddServerPKIGroups+0xA0000000))[1] = 0x4E800020;
  49.    
  50.     ((int*)((int)NSSLCreateConnection+0xA0000000))[0] = 0xFFFFFFFF;
  51.     DCFlushRange((int *)0xA0000000,0x40000000);
  52.     ICInvalidateRange((int *)0xA0000000,0x40000000);
  53.     DCFlushRange((int *)0xA0000000,0x40000000);
  54.      char buffer[256];
  55.      __os_snprintf(buffer, 256, "%08X - %08X - %08X", NSSLCreateConnection, ((int*)((int)NSSLCreateConnection+0xA0000000))[0], ((int*)(NSSLCreateConnection))[0]);
  56.      //OSFatal(buffer);
  57.     if(((int*)(NSSLCreateConnection))[0] == 0xFFFFFFFF)//This doesn't crash all SSL stuff but it should but it should
  58.         _Exit();
  59.     else
  60.         OSFatal("Patch Failed");
  61.     _Exit();
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement