Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "loader.h"
- void _start()
- {
- unsigned int nsysnet_handle, coreinit_handle;
- OSDynLoad_Acquire("nsysnet.rpl", &nsysnet_handle);
- OSDynLoad_Acquire("coreinit.rpl", &coreinit_handle);
- void (*DCFlushRange)(void *buffer, int length);
- void (*DCInvalidateRange)(void *buffer, int length);
- void (*ICInvalidateRange)(void *buffer, int length);
- char (*NSSLSetClientPKI);
- char (*NSSLAddServerPKI);
- char (*NSSLAddServerPKIExternal);
- char (*NSSLAddCRLExternal);
- char (*NSSLContextSetFlags);
- char (*NSSLAddServerPKIGroups);
- char (*NSSLCreateConnection);
- void (*_Exit)();
- OSDynLoad_FindExport(coreinit_handle, 0, "DCFlushRange", &DCFlushRange);
- OSDynLoad_FindExport(coreinit_handle, 0, "DCInvalidateRange", &DCInvalidateRange);
- OSDynLoad_FindExport(coreinit_handle, 0, "ICInvalidateRange", &ICInvalidateRange);
- OSDynLoad_FindExport(nsysnet_handle, 0, "NSSLSetClientPKI", &NSSLSetClientPKI);
- OSDynLoad_FindExport(nsysnet_handle, 0, "NSSLAddServerPKI", &NSSLAddServerPKI);
- OSDynLoad_FindExport(nsysnet_handle, 0, "NSSLAddServerPKIExternal", &NSSLAddServerPKIExternal);
- OSDynLoad_FindExport(nsysnet_handle, 0, "NSSLAddCRLExternal", &NSSLAddCRLExternal);
- OSDynLoad_FindExport(nsysnet_handle, 0, "NSSLContextSetFlags", &NSSLContextSetFlags);
- OSDynLoad_FindExport(nsysnet_handle, 0, "NSSLAddServerPKIGroups", &NSSLAddServerPKIGroups);
- OSDynLoad_FindExport(nsysnet_handle, 0, "NSSLCreateConnection", &NSSLCreateConnection);//
- OSDynLoad_FindExport(coreinit_handle, 0, "_Exit", &_Exit);
- ((int*)((int)NSSLSetClientPKI+0xA0000000))[0] = 0x38600000;
- ((int*)((int)NSSLSetClientPKI+0xA0000000))[1] = 0x4E800020;
- ((int*)((int)NSSLAddServerPKI+0xA0000000))[0] = 0x38600000;
- ((int*)((int)NSSLAddServerPKI+0xA0000000))[1] = 0x4E800020;
- ((int*)((int)NSSLAddServerPKIExternal+0xA0000000))[0] = 0x38600000;
- ((int*)((int)NSSLAddServerPKIExternal+0xA0000000))[1] = 0x4E800020;
- ((int*)((int)NSSLAddCRLExternal+0xA0000000))[0] = 0x38600000;
- ((int*)((int)NSSLAddCRLExternal+0xA0000000))[1] = 0x4E800020;
- ((int*)((int)NSSLContextSetFlags+0xA0000000))[0] = 0x38600000;
- ((int*)((int)NSSLContextSetFlags+0xA0000000))[1] = 0x4E800020;
- ((int*)((int)NSSLAddServerPKIGroups+0xA0000000))[0] = 0x38600000;
- ((int*)((int)NSSLAddServerPKIGroups+0xA0000000))[1] = 0x4E800020;
- ((int*)((int)NSSLCreateConnection+0xA0000000))[0] = 0xFFFFFFFF;
- DCFlushRange((int *)0xA0000000,0x40000000);
- ICInvalidateRange((int *)0xA0000000,0x40000000);
- DCFlushRange((int *)0xA0000000,0x40000000);
- char buffer[256];
- __os_snprintf(buffer, 256, "%08X - %08X - %08X", NSSLCreateConnection, ((int*)((int)NSSLCreateConnection+0xA0000000))[0], ((int*)(NSSLCreateConnection))[0]);
- //OSFatal(buffer);
- if(((int*)(NSSLCreateConnection))[0] == 0xFFFFFFFF)//This doesn't crash all SSL stuff but it should but it should
- _Exit();
- else
- OSFatal("Patch Failed");
- _Exit();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement