Skip to content

Commit 6da8472

Browse files
committed
Fix formatting + add back self dump server init
1 parent 36ee72b commit 6da8472

File tree

3 files changed

+26
-91
lines changed

3 files changed

+26
-91
lines changed

Diff for: hen/src/patch_shellcore.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ uint64_t shellcore_get_addr(void *shellcore_proc)
9494
// kdlsym function pointers
9595
auto printf = (void (*)(const char *fmt, ...)) kdlsym(KERNEL_SYM_PRINTF);
9696
auto _vm_map_lock_read = (void (*)(void *map, const char *file, int line)) kdlsym(KERNEL_SYM_VM_MAP_LOCK_READ);
97-
auto _vm_map_unlock_read = (void (*)(void *map, const char *file, int line)) kdlsym(KERNEL_SYM_VM_MAP_UNLOCK_READ);
97+
auto _vm_map_unlock_read = (void (*)(void *map, const char *file, int line)) kdlsym(KERNEL_SYM_VM_MAP_UNLOCK_READ);
9898
auto _vm_map_lookup_entry = (int (*)(void *map, uint64_t offset, void *entry)) kdlsym(KERNEL_SYM_VM_MAP_LOOKUP_ENTRY);
9999

100100
// Get the process vm map

Diff for: src/main.cpp

+19-84
Original file line numberDiff line numberDiff line change
@@ -33,68 +33,6 @@ extern "C"
3333
int __sys_is_development_mode();
3434
}
3535

36-
#pragma region Testing code
37-
// void dump_self_to_client(int client)
38-
// {
39-
// int ret;
40-
// uint64_t size;
41-
// int write_ret;
42-
// void *libkernel_data;
43-
44-
// // Try to decrypt libkernel
45-
// ret = decrypt_self("/system/common/lib/libkernel.sprx", &libkernel_data, &size);
46-
// SOCK_LOG("[+] decrypt test: 0x%x (%p, size = 0x%lx)\n", ret, libkernel_data, size);
47-
48-
// write_ret = write(client, libkernel_data, size);
49-
// if (write_ret < 0)
50-
// return;
51-
// SOCK_LOG("[+] wrote 0x%x bytes\n", write_ret);
52-
53-
// close(client);
54-
// SOCK_LOG("[+] Done\n");
55-
// }
56-
57-
// int run_dump_server(int port)
58-
// {
59-
// int s;
60-
// int client;
61-
// struct sockaddr_in sockaddr;
62-
63-
// s = socket(AF_INET, SOCK_STREAM, 0);
64-
// bzero(&sockaddr, sizeof(sockaddr));
65-
66-
// sockaddr.sin_family = AF_INET;
67-
// sockaddr.sin_port = htons(port);
68-
// sockaddr.sin_addr.s_addr = INADDR_ANY;
69-
70-
// if (bind(s, (const struct sockaddr *) &sockaddr, sizeof(sockaddr)) < 0) {
71-
// SOCK_LOG("[!] failed to bind server\n");
72-
// return -1;
73-
// }
74-
75-
// if (listen(s, 5) < 0) {
76-
// SOCK_LOG("[!] failed to listen on server\n");
77-
// return -1;
78-
// }
79-
80-
// SOCK_LOG("[SRV] dump server is now running (port: %d)...\n", port);
81-
82-
// // Accept clients
83-
// for (;;) {
84-
// client = accept(s, 0, 0);
85-
// SOCK_LOG("[SRV] accepted a client = %d\n", client);
86-
87-
// if (client > 0) {
88-
// //dump_kernel_to_client(client);
89-
// dump_self_to_client(client);
90-
// }
91-
// }
92-
93-
// return 0;
94-
// }
95-
96-
#pragma endregion
97-
9836
void dump_kernel_to_client(int client)
9937
{
10038
int write_ret;
@@ -135,8 +73,8 @@ void dump_kernel_to_client(int client)
13573
int main()
13674
{
13775
int ret;
138-
int debug_sock = -1;
139-
struct sockaddr_in addr;
76+
int debug_sock = -1;
77+
struct sockaddr_in addr;
14078
uint64_t kernel_pmap;
14179
uint64_t pte_addr;
14280
uint64_t pde_addr;
@@ -146,26 +84,26 @@ int main()
14684
// Set shellcore auth ID
14785
kernel_set_ucred_authid(getpid(), 0x4800000000000007);
14886

149-
// Open a debug socket if enabled
150-
if (PC_DEBUG_ENABLED) {
151-
debug_sock = socket(AF_INET, SOCK_STREAM, 0);
152-
if (debug_sock < 0) {
153-
return 0xDEAD0001;
154-
}
87+
// Open a debug socket if enabled
88+
if (PC_DEBUG_ENABLED) {
89+
debug_sock = socket(AF_INET, SOCK_STREAM, 0);
90+
if (debug_sock < 0) {
91+
return 0xDEAD0001;
92+
}
15593

156-
inet_pton(AF_INET, PC_DEBUG_IP, &addr.sin_addr);
157-
addr.sin_family = AF_INET;
158-
addr.sin_len = sizeof(addr);
159-
addr.sin_port = htons(PC_DEBUG_PORT);
94+
inet_pton(AF_INET, PC_DEBUG_IP, &addr.sin_addr);
95+
addr.sin_family = AF_INET;
96+
addr.sin_len = sizeof(addr);
97+
addr.sin_port = htons(PC_DEBUG_PORT);
16098

161-
ret = connect(debug_sock, (const struct sockaddr *) &addr, sizeof(addr));
162-
if (ret < 0) {
163-
return 0xDEAD0002;
164-
}
99+
ret = connect(debug_sock, (const struct sockaddr *) &addr, sizeof(addr));
100+
if (ret < 0) {
101+
return 0xDEAD0002;
102+
}
165103

166-
SOCK_LOG("[!] debug socket connected\n");
104+
SOCK_LOG("[!] debug socket connected\n");
167105
g_debug_sock = debug_sock;
168-
}
106+
}
169107

170108
// Jailbreak
171109
kernel_set_proc_rootdir(getpid(), kernel_get_root_vnode());
@@ -239,10 +177,7 @@ int main()
239177

240178
SOCK_LOG("[+] Aft. hook is_development_mode = 0x%x\n", __sys_is_development_mode());
241179

242-
ret = sceKernelLoadStartModule((char *) "/data/libExample.prx", 0, NULL, 0, NULL, NULL);
243-
SOCK_LOG("[+] load fself: 0x%x\n", ret);
244-
245-
// run_self_server(9005);
180+
run_self_server(9004);
246181
// run_dump_server(9003);
247182
reset_mirrors();
248183
return 0;

Diff for: src/self.cpp

+6-6
Original file line numberDiff line numberDiff line change
@@ -439,23 +439,23 @@ int run_self_server(int port)
439439
bzero(&sockaddr, sizeof(sockaddr));
440440

441441
sockaddr.sin_family = AF_INET;
442-
sockaddr.sin_port = htons(port);
443-
sockaddr.sin_addr.s_addr = INADDR_ANY;
442+
sockaddr.sin_port = htons(port);
443+
sockaddr.sin_addr.s_addr = INADDR_ANY;
444444

445445
if (bind(s, (const struct sockaddr *) &sockaddr, sizeof(sockaddr)) < 0) {
446446
SOCK_LOG("[!] failed to bind server\n");
447-
return -1;
447+
return -1;
448448
}
449449

450-
if (listen(s, 5) < 0) {
450+
if (listen(s, 5) < 0) {
451451
SOCK_LOG("[!] failed to listen on server\n");
452-
return -1;
452+
return -1;
453453
}
454454

455455
SOCK_LOG("[SRV] [SELF] self dump server is now running (port: %d)...\n", port);
456456

457457
// Accept clients
458-
for (;;) {
458+
for (;;) {
459459
if (g_die) {
460460
SOCK_LOG("[SRV] [SELF] rpc server is shutting down...\n");
461461
close(s);

0 commit comments

Comments
 (0)