Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SPRX Stuff C++ Jo-Milk
- To Fix Many undefined functions inside headers I always add those in project properties linker
- Additional Dependencies
- -------------------------------------------------------------------------------------------------------------------------------------
- libsn.a;libm.a;libio_stub.a;libfs_stub.a;$(SCE_PS3_ROOT)\target\ppu\lib\libsnc.a;$(SCE_PS3_ROOT)\target\ppu\lib\libsysutil_userinfo_stub.a;$(SCE_PS3_ROOT)\target\ppu\lib\libhttp_stub.a;$(SCE_PS3_ROOT)\target\ppu\lib\libhttp_util_stub.a;$(SCE_PS3_ROOT)\target\ppu\lib\libnet_stub.a;$(SCE_PS3_ROOT)\target\ppu\lib\libnetctl_stub.a;$(SCE_PS3_ROOT)\target\ppu\lib\libsysutil_np_trophy_stub.a;$(SCE_PS3_ROOT)\target\ppu\lib\libl10n_stub.a;$(SCE_PS3_ROOT)\target\ppu\lib\libsysutil_game_stub.a;$(SCE_PS3_ROOT)\target\ppu\lib\libsysutil_np_stub.a;$(SCE_PS3_ROOT)\target\ppu\lib\libc.a;$(SCE_PS3_ROOT)\target\ppu\lib\libc_stub.a;$(SN_PS3_PATH)\ppu\lib\sn\libsn.a;$(SCE_PS3_ROOT)\target\ppu\lib\libio_stub.a;$(SCE_PS3_ROOT)\target\ppu\lib\libsysutil_stub.a;$(SCE_PS3_ROOT)\target\ppu\lib\libsysmodule_stub.a;$(SCE_PS3_ROOT)\target\ppu\lib\libsyscall.a;$(SCE_PS3_ROOT)\target\ppu\lib\libstdc++_stub.a;$(SCE_PS3_ROOT)\target\ppu\lib\fno-exceptions\libstdc++_stub.a;$(SCE_PS3_ROOT)\target\ppu\lib\fno-exceptions\fno-rtti\libstdc++_stub.a;$(SCE_PS3_ROOT)\target\ppu\lib\libgcm_sys_stub.a;$(SCE_PS3_ROOT)\host-win32\spu\lib\gcc\spu-lv2\4.1.1\libgcc.a;%(AdditionalDependencies)
- -------------------------------------------------------------------------------------------------------------------------------------
- libsn.a;libm.a;libio_stub.a;libfs_stub.a;$(SCE_PS3_ROOT)\target\ppu\lib\libvshmain_export_stub.a;$(SCE_PS3_ROOT)\target\ppu\lib\libsnc.a;$(SCE_PS3_ROOT)\target\ppu\lib\libsysutil_userinfo_stub.a;$(SCE_PS3_ROOT)\target\ppu\lib\libhttp_stub.a;$(SCE_PS3_ROOT)\target\ppu\lib\libhttp_util_stub.a;$(SCE_PS3_ROOT)\target\ppu\lib\libnet_stub.a;$(SCE_PS3_ROOT)\target\ppu\lib\libnetctl_stub.a;$(SCE_PS3_ROOT)\target\ppu\lib\libsysutil_np_trophy_stub.a;$(SCE_PS3_ROOT)\target\ppu\lib\libl10n_stub.a;$(SCE_PS3_ROOT)\target\ppu\lib\libsysutil_game_stub.a;$(SCE_PS3_ROOT)\target\ppu\lib\libsysutil_np_stub.a;$(SCE_PS3_ROOT)\target\ppu\lib\libc.a;$(SCE_PS3_ROOT)\target\ppu\lib\libc_stub.a;$(SN_PS3_PATH)\ppu\lib\sn\libsn.a;$(SCE_PS3_ROOT)\target\ppu\lib\libio_stub.a;$(SCE_PS3_ROOT)\target\ppu\lib\libsysutil_stub.a;$(SCE_PS3_ROOT)\target\ppu\lib\libsysmodule_stub.a;$(SCE_PS3_ROOT)\target\ppu\lib\libsyscall.a;$(SCE_PS3_ROOT)\target\ppu\lib\libstdc++_stub.a;$(SCE_PS3_ROOT)\target\ppu\lib\fno-exceptions\libstdc++_stub.a;$(SCE_PS3_ROOT)\target\ppu\lib\fno-exceptions\fno-rtti\libstdc++_stub.a;$(SCE_PS3_ROOT)\target\ppu\lib\libgcm_sys_stub.a;$(SCE_PS3_ROOT)\host-win32\spu\lib\gcc\spu-lv2\4.1.1\libgcc.a;%(AdditionalDependencies)
- -------------------------------------------------------------------------------------------------------------------------------------
- #define SC_PEEK_LV2 6
- #define SC_POKE_LV2 7
- #define SC_PEEK_LV1 8
- #define SC_POKE_LV1 9
- static inline uint64_t peekq(uint64_t addr);
- static inline void pokeq( uint64_t addr, uint64_t val);
- static inline uint64_t peek_lv1(uint64_t addr);
- static inline void poke_lv1( uint64_t addr, uint64_t val);
- static inline uint64_t peekq(uint64_t addr) //lv2
- {
- system_call_1(SC_PEEK_LV2, addr);
- return_to_user_prog(uint64_t);
- }
- static inline void pokeq( uint64_t addr, uint64_t val) //lv2
- {
- system_call_2(SC_POKE_LV2, addr, val);
- }
- static inline uint64_t peek_lv1(uint64_t addr)
- {
- system_call_1(SC_PEEK_LV1, (uint64_t) addr);
- return (uint64_t) p1;
- }
- static inline void poke_lv1( uint64_t addr, uint64_t val)
- {
- system_call_2(SC_POKE_LV1, addr, val);
- }
- int console_write(const char * s)
- {
- uint32_t len;
- system_call_4(403, 0, (uint64_t) s, 32, (uint64_t) &len);
- return_to_user_prog(int);
- }
- void sleep(usecond_t time)
- {
- sys_timer_usleep(time * 1000);
- }
- sys_ppu_thread_t id;
- sys_ppu_thread_t create_thread(void (*entry)(uint64_t), int priority, size_t stacksize, const char* threadname)
- {
- if(sys_ppu_thread_create(&id, entry, 0, priority , stacksize, 0, threadname) != CELL_OK)
- {
- console_write("Thread creation failed\n");
- }
- else
- {
- console_write("Thread created\n");
- }
- return id;
- }
- int32_t sys_dbg_read_process_memory(uint64_t address, void *data, size_t size)//DEX READ
- {
- system_call_4(904, (uint64_t)sys_process_getpid(), address, size, (uint64_t)data);
- return_to_user_prog(int32_t);
- }
- template<typename T>
- int32_t ReadProcessMemory(uint32_t address, T data, size_t size)//DEX READ
- {
- return sys_dbg_read_process_memory(address, &data, size);
- }
- int32_t sys_dbg_write_process_memory(uint64_t address, const void *data, size_t size)//DEX write
- {
- system_call_4(905, (uint64_t)sys_process_getpid(), address, size, (uint64_t)data);
- return_to_user_prog(int32_t);
- }
- template<typename T>
- int32_t WriteProcessMemory(uint32_t address, const T value, size_t size)//DEX write
- {
- return sys_dbg_write_process_memory(address, &value, size);
- }
- void PS3_SetMemory(int Address,char* bytes,int length)//DEX write
- {
- for (int i = 0; i < length; i++)
- {
- WriteProcessMemory((Address + (i)),bytes[i],1);
- }
- }
- void HookFunctionStart(uint32_t functionStartAddress, uint32_t newFunction, uint32_t functionStub)
- {
- uint32_t normalFunctionStub[8], hookFunctionStub[4];
- sys_dbg_read_process_memory(functionStartAddress, normalFunctionStub, 0x10);
- normalFunctionStub[4] = 0x3D600000 + ((functionStartAddress + 0x10 >> 16) & 0xFFFF);
- normalFunctionStub[5] = 0x616B0000 + (functionStartAddress + 0x10 & 0xFFFF);
- normalFunctionStub[6] = 0x7D6903A6;
- normalFunctionStub[7] = 0x4E800420;
- sys_dbg_write_process_memory(functionStub, normalFunctionStub, 0x20);
- hookFunctionStub[0] = 0x3D600000 + ((newFunction >> 16) & 0xFFFF);
- hookFunctionStub[1] = 0x616B0000 + (newFunction & 0xFFFF);
- hookFunctionStub[2] = 0x7D6903A6;
- hookFunctionStub[3] = 0x4E800420;
- sys_dbg_write_process_memory(functionStartAddress, hookFunctionStub, 0x10);
- }
- int32_t HookFunction(uint32_t address, uint32_t function)
- {
- uint32_t opcode[4];
- opcode[0] = 0x3D600000 + ((function >> 16) & 0xFFFF);
- opcode[1] = 0x616B0000 + (function & 0xFFFF);
- opcode[2] = 0x7D6903A6;
- opcode[3] = 0x4E800420;
- return sys_dbg_write_process_memory(address, &opcode, 0x10);
- }
- int32_t HookFunctionLinked(uint32_t address, uint32_t function)
- {
- uint32_t opcode[4];
- opcode[0] = 0x3D600000 + ((function >> 16) & 0xFFFF);
- opcode[1] = 0x616B0000 + (function & 0xFFFF);
- opcode[2] = 0x7D6903A6;
- opcode[3] = 0x4E800421;
- return sys_dbg_write_process_memory(address, &opcode, 0x10);
- }
- int32_t BranchLinkedHook(uint32_t branchFrom, uint32_t branchTo)
- {
- uint32_t branch;
- if (branchTo > branchFrom)
- branch = 0x48000001 + (branchTo - branchFrom);
- else
- branch = 0x4C000001 - (branchFrom - branchTo);
- return sys_dbg_write_process_memory(branchFrom, &branch, 4);
- }
- int32_t BranchHook(uint32_t branchFrom, uint32_t branchTo)
- {
- uint32_t branch;
- if (branchTo > branchFrom)
- branch = 0x48000000 + (branchTo - branchFrom);
- else
- branch = 0x4C000000 - (branchFrom - branchTo);
- return sys_dbg_write_process_memory(branchFrom, &branch, 4);
- }
- const char * GetSelfUserName()
- {
- CellUserInfoUserStat stat;
- cellUserInfoGetStat(CELL_SYSUTIL_USERID_CURRENT, &stat);
- return stat.name;
- }
- const char * GetSelfOnlineName()
- {
- SceNpOnlineName onlineName;
- sceNpManagerGetOnlineName(&onlineName);
- return onlineName.data;
- }
- const char * GetSelfName()
- {
- int connectionStatus;
- sceNpManagerGetStatus(&connectionStatus);//checks if online
- if (connectionStatus == SCE_NP_MANAGER_STATUS_ONLINE)
- return GetSelfOnlineName();
- else
- return GetSelfUserName();
- }
- /*void WriteLog(const char * logDir, const char * log) {
- int fd;
- if (cellFsOpen(logDir, CELL_FS_O_CREAT | CELL_FS_O_APPEND, &fd, 0, 0) == CELL_FS_SUCCEEDED){
- cellFsWrite(fd, (const void*)&log, sizeof(log), 0);
- }
- }*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement