int _main(void) { // Init and resolve libraries initKernel(); initLibc(); initNetwork(); initPthread(); // Init netdebug struct sockaddr_in server; server.sin_family = sceNetHtons(AF_INET); server.sin_addr.s_addr = IP(192, 168, 0, 4); server.sin_port = sceNetHtons(9023); memset(server.sin_zero, 0, sizeof(server.sin_zero)); netdbg_sock = sceNetSocket("netdebug", AF_INET, SOCK_STREAM, 0); sceNetConnect(netdbg_sock, (struct sockaddr *)&server, sizeof(server)); ftp_init(PS4_IP, PS4_PORT); //INFO("PS4 listening on IP %s Port %i\n", PS4_IP, PS4_PORT); while (1) { sceKernelUsleep(100 * 1000); } ftp_fini(); return 0; }
int _main(void) { // Init and resolve libraries initKernel(); initLibc(); initNetwork(); // Connect to server and send message char socketName[] = "debug"; struct sockaddr_in server; server.sin_len = sizeof(server); server.sin_family = AF_INET; server.sin_addr.s_addr = IP(192, 168, 0, 4); server.sin_port = sceNetHtons(9023); memset(server.sin_zero, 0, sizeof(server.sin_zero)); int sock = sceNetSocket(socketName, AF_INET, SOCK_STREAM, 0); sceNetConnect(sock, (struct sockaddr *)&server, sizeof(server)); debug(sock, "PID: %d", syscall(20)); sceNetSocketClose(sock); // Return to browser return 0; }
int _main(void) { // Init and resolve libraries initKernel(); initLibc(); initNetwork(); // Connect to server char socketName[] = "debug"; struct sockaddr_in server; server.sin_len = sizeof(server); server.sin_family = AF_INET; server.sin_addr.s_addr = IP(192, 168, 0, 4); server.sin_port = sceNetHtons(9023); memset(server.sin_zero, 0, sizeof(server.sin_zero)); int sock = sceNetSocket(socketName, AF_INET, SOCK_STREAM, 0); sceNetConnect(sock, (struct sockaddr *)&server, sizeof(server)); // Get font path char path[256] = "/"; int length = 11; getSandboxDirectory(path + 1, &length); strcpy(path + 11, "/common/font/DFHEI5-SONY.ttf"); // Open for reading, and get size int fd = open(path, O_RDONLY, 0); struct stat s; fstat(fd, &s); // Allocate buffer and read char *buffer = malloc(s.st_size); read(fd, buffer, s.st_size); close(fd); // Send sceNetSend(sock, buffer, s.st_size, 0); free(buffer); sceNetSocketClose(sock); // Return to browser return 0; }
int _main(void) { // Pass address of a syscall gadget in rcx register f rcx asm("rcx"); directSyscall = rcx; // Init and resolve libraries initLibc(); initNetwork(); // Connect to server and send message char socketName[] = "debug"; struct sockaddr_in server; server.sin_family = sceNetHtons(AF_INET); server.sin_addr.s_addr = IP(192, 168, 0, 4); server.sin_port = sceNetHtons(9023); memset(server.sin_zero, 0, sizeof(server.sin_zero)); int sock = sceNetSocket(socketName, AF_INET, SOCK_STREAM, 0); sceNetConnect(sock, (struct sockaddr *)&server, sizeof(server)); char buffer[512]; struct dirent *dent; int dfd = open("/", O_RDONLY, 0); if(dfd < 0) { debug(sock, "Invalid directory.\n"); return 1; } while(getdents(dfd, buffer, sizeof(buffer)) != 0) { dent = (struct dirent *)buffer; while(dent->d_fileno) { debug(sock, "%s\n", dent->d_name); dent = (struct dirent *)((void *)dent + dent->d_reclen); } memset(buffer, 0, sizeof(buffer)); } // Return to browser close(dfd); sceNetSocketClose(sock); return 0; }
int _main(void) { // Init and resolve libraries initLibc(); initNetwork(); // Connect to server char socketName[] = "debug"; struct sockaddr_in server; server.sin_len = sizeof(server); server.sin_family = AF_INET; server.sin_addr.s_addr = IP(192, 168, 0, 4); server.sin_port = sceNetHtons(9023); memset(server.sin_zero, 0, sizeof(server.sin_zero)); int sock = sceNetSocket(socketName, AF_INET, SOCK_STREAM, 0); sceNetConnect(sock, (struct sockaddr *)&server, sizeof(server)); // Read / directory char buffer[512]; struct dirent *dent; int dfd = open("/", O_RDONLY, 0); if(dfd < 0) { debug(sock, "Invalid directory.\n"); return 1; } while(getdents(dfd, buffer, sizeof(buffer)) != 0) { dent = (struct dirent *)buffer; while(dent->d_fileno) { debug(sock, "[%s]: %s\n", entryName(dent->d_type), dent->d_name); dent = (struct dirent *)((void *)dent + dent->d_reclen); } memset(buffer, 0, sizeof(buffer)); } // Return to browser close(dfd); sceNetSocketClose(sock); return 0; }
int _main(void) { // Init and resolve libraries initLibc(); initPthread(); int foo = 0; ScePthread thread; scePthreadCreate(&thread, NULL, thread_func, (void *)&foo, "pthread_sample"); // Wait until the thread terminates scePthreadJoin(thread, NULL); return foo; }
int _main(void) { // Pass address of a syscall gadget in rcx register f rcx asm("rcx"); directSyscall = rcx; // Init and resolve libraries initLibc(); // Copy some data strcpy(DATA, "Hello!"); // Use getpid system call int pid = syscall(20); // Return to browser return pid; }
int _main(void) { // Init and resolve libraries initLibc(); initNetwork(); initPad(); // Connect to debug server char socketName[] = "debug"; struct sockaddr_in server; server.sin_len = sizeof(server); server.sin_family = AF_INET; server.sin_addr.s_addr = IP(192, 168, 0, 4); server.sin_port = sceNetHtons(9023); memset(server.sin_zero, 0, sizeof(server.sin_zero)); int sock = sceNetSocket(socketName, AF_INET, SOCK_STREAM, 0); sceNetConnect(sock, (struct sockaddr *)&server, sizeof(server)); // Browser /user/home/ to see all user IDs (in hex) int userID = 0x10000000; int pad = scePadOpen(userID, 0, 0, NULL); while(1) { scePadReadState(pad, data); sceNetSend(sock, data, 0x60, 0); } // Return to browser scePadClose(pad); sceNetSocketClose(sock); return 0; }