├── .gitignore ├── README.md ├── agents └── arm64.default.js ├── data └── arm64.json ├── main.py ├── parseSyscallNumbers.py ├── reporter.py ├── syscalls.txt └── table.html /.gitignore: -------------------------------------------------------------------------------- 1 | # Project exclude paths 2 | /venv/ -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Tiny frida script to parse system calls by using Stalker and checking for `svc`. Based off https://github.com/sh1ma/iostrace/blob/master/src/tracer.js 2 | 3 | Uses some code from frida as well https://github.com/frida/frida-tools/tree/f772d2ee692165a5f6a1d2e4fdf3c9798c2a654d 4 | 5 | 6 | `main.py` will trace the specified package name and generate JSON output in `/tmp/x.json`, `report.py` will generate `/tmp/x.html` based off the JSON file. 7 | 8 | This is buggy and I'm working on something better. -------------------------------------------------------------------------------- /agents/arm64.default.js: -------------------------------------------------------------------------------- 1 | let threads = Process.enumerateThreads() // A bug that returns empty for the threads? Haven't seen it 2 | threads.forEach(thread => { 3 | let entryObj = {} 4 | let exitObj = {} 5 | Stalker.follow(thread.id, { 6 | transform: function (iterator) { 7 | const instruction = iterator.next(); 8 | let parseReturn = false 9 | do { 10 | if (parseReturn === true) { // This might not be the correct way to detect once a system call has finished... 11 | parseReturn = false 12 | iterator.putCallout((context) => { 13 | exitObj = { 14 | "context": context, 15 | "syscall": { 16 | "returnValue": context["x0"] 17 | } 18 | } 19 | exitObj.tid = thread.id 20 | send({onEnter: entryObj, onExit: exitObj}) 21 | entryObj = {} 22 | exitObj = {} 23 | }) 24 | } 25 | if (instruction.mnemonic === "svc") { // OnEntry 26 | iterator.putCallout((context) => { 27 | const syscall = sysCallMap[context['x8']] 28 | 29 | entryObj.syscall = { 30 | name: syscall.name, 31 | number: context['x8'], 32 | arguments: parseParameters(syscall.arguments, context), // You can actually read the value of registers 33 | // so if the syscall is open and you know the parameter is a cstring, then you can do context['x1'].readCString() 34 | } 35 | entryObj.context = context 36 | entryObj.tid = thread.id 37 | 38 | }) 39 | parseReturn = true 40 | } 41 | iterator.keep() 42 | } while (iterator.next() !== null) 43 | } 44 | }); 45 | }) 46 | 47 | function parseParameters(parameters, context) { 48 | let params = [] 49 | for (const i in parameters) { 50 | parameters[i]['value'] = context[`x${i}`] 51 | } 52 | return parameters 53 | } 54 | 55 | 56 | let sysCallMap = { 57 | "0x0": { 58 | "name": "io_setup", 59 | "number": "0x0", 60 | "arguments": [{"type": "unsigned int", "arg": "nr_events"}, {"type": "aio_context_t *", "arg": "ctx_idp"}] 61 | }, 62 | "0x1": {"name": "io_destroy", "number": "0x1", "arguments": [{"type": "aio_context_t", "arg": "ctx_id"}]}, 63 | "0x2": { 64 | "name": "io_submit", 65 | "number": "0x2", 66 | "arguments": [{"type": "aio_context_t", "arg": "ctx_id"}, { 67 | "type": "long", 68 | "arg": "nr" 69 | }, {"type": "struct iocb **", "arg": "iocbpp"}] 70 | }, 71 | "0x3": { 72 | "name": "io_cancel", 73 | "number": "0x3", 74 | "arguments": [{"type": "aio_context_t", "arg": "ctx_id"}, { 75 | "type": "struct iocb *", 76 | "arg": "iocb" 77 | }, {"type": "struct io_event *", "arg": "result"}] 78 | }, 79 | "0x4": { 80 | "name": "io_getevents", 81 | "number": "0x4", 82 | "arguments": [{"type": "aio_context_t", "arg": "ctx_id"}, {"type": "long", "arg": "min_nr"}, { 83 | "type": "long", 84 | "arg": "nr" 85 | }, {"type": "struct io_event *", "arg": "events"}, {"type": "struct timespec *", "arg": "timeout"}] 86 | }, 87 | "0x5": { 88 | "name": "setxattr", 89 | "number": "0x5", 90 | "arguments": [{"type": "const char *", "arg": "path"}, { 91 | "type": "const char *", 92 | "arg": "name" 93 | }, {"type": "const void *", "arg": "value"}, {"type": "size_t", "arg": "size"}, {"type": "int", "arg": "flags"}] 94 | }, 95 | "0x6": { 96 | "name": "lsetxattr", 97 | "number": "0x6", 98 | "arguments": [{"type": "const char *", "arg": "path"}, { 99 | "type": "const char *", 100 | "arg": "name" 101 | }, {"type": "const void *", "arg": "value"}, {"type": "size_t", "arg": "size"}, {"type": "int", "arg": "flags"}] 102 | }, 103 | "0x7": { 104 | "name": "fsetxattr", 105 | "number": "0x7", 106 | "arguments": [{"type": "int", "arg": "fd"}, {"type": "const char *", "arg": "name"}, { 107 | "type": "const void *", 108 | "arg": "value" 109 | }, {"type": "size_t", "arg": "size"}, {"type": "int", "arg": "flags"}] 110 | }, 111 | "0x8": { 112 | "name": "getxattr", 113 | "number": "0x8", 114 | "arguments": [{"type": "const char *", "arg": "path"}, { 115 | "type": "const char *", 116 | "arg": "name" 117 | }, {"type": "void *", "arg": "value"}, {"type": "size_t", "arg": "size"}] 118 | }, 119 | "0x9": { 120 | "name": "lgetxattr", 121 | "number": "0x9", 122 | "arguments": [{"type": "const char *", "arg": "path"}, { 123 | "type": "const char *", 124 | "arg": "name" 125 | }, {"type": "void *", "arg": "value"}, {"type": "size_t", "arg": "size"}] 126 | }, 127 | "0xa": { 128 | "name": "fgetxattr", 129 | "number": "0xa", 130 | "arguments": [{"type": "int", "arg": "fd"}, {"type": "const char *", "arg": "name"}, { 131 | "type": "void *", 132 | "arg": "value" 133 | }, {"type": "size_t", "arg": "size"}] 134 | }, 135 | "0xb": { 136 | "name": "listxattr", 137 | "number": "0xb", 138 | "arguments": [{"type": "const char *", "arg": "path"}, {"type": "char *", "arg": "list"}, { 139 | "type": "size_t", 140 | "arg": "size" 141 | }] 142 | }, 143 | "0xc": { 144 | "name": "llistxattr", 145 | "number": "0xc", 146 | "arguments": [{"type": "const char *", "arg": "path"}, {"type": "char *", "arg": "list"}, { 147 | "type": "size_t", 148 | "arg": "size" 149 | }] 150 | }, 151 | "0xd": { 152 | "name": "flistxattr", 153 | "number": "0xd", 154 | "arguments": [{"type": "int", "arg": "fd"}, {"type": "char *", "arg": "list"}, { 155 | "type": "size_t", 156 | "arg": "size" 157 | }] 158 | }, 159 | "0xe": { 160 | "name": "removexattr", 161 | "number": "0xe", 162 | "arguments": [{"type": "const char *", "arg": "path"}, {"type": "const char *", "arg": "name"}] 163 | }, 164 | "0xf": { 165 | "name": "lremovexattr", 166 | "number": "0xf", 167 | "arguments": [{"type": "const char *", "arg": "path"}, {"type": "const char *", "arg": "name"}] 168 | }, 169 | "0x10": { 170 | "name": "fremovexattr", 171 | "number": "0x10", 172 | "arguments": [{"type": "int", "arg": "fd"}, {"type": "const char *", "arg": "name"}] 173 | }, 174 | "0x11": { 175 | "name": "getcwd", 176 | "number": "0x11", 177 | "arguments": [{"type": "char *", "arg": "buf"}, {"type": "size_t", "arg": "size"}] 178 | }, 179 | "0x12": { 180 | "name": "lookup_dcookie", 181 | "number": "0x12", 182 | "arguments": [{"type": "uint64_t", "arg": "cookie"}, {"type": "char *", "arg": "buffer"}, { 183 | "type": "size_t", 184 | "arg": "len" 185 | }] 186 | }, 187 | "0x13": {"name": "eventfd2", "number": "0x13", "arguments": null}, 188 | "0x14": {"name": "epoll_create1", "number": "0x14", "arguments": [{"type": "int", "arg": "flags"}]}, 189 | "0x15": { 190 | "name": "epoll_ctl", 191 | "number": "0x15", 192 | "arguments": [{"type": "int", "arg": "epfd"}, {"type": "int", "arg": "op"}, { 193 | "type": "int", 194 | "arg": "fd" 195 | }, {"type": "struct epoll_event *", "arg": "event"}] 196 | }, 197 | "0x16": { 198 | "name": "epoll_pwait", 199 | "number": "0x16", 200 | "arguments": [{"type": "int", "arg": "epfd"}, {"type": "struct epoll_event *", "arg": "events"}, { 201 | "type": "int", 202 | "arg": "maxevents" 203 | }, {"type": "int", "arg": "timeout"}, {"type": "const sigset_t *", "arg": "sigmask"}] 204 | }, 205 | "0x17": {"name": "dup", "number": "0x17", "arguments": [{"type": "int", "arg": "oldfd"}]}, 206 | "0x18": { 207 | "name": "dup3", 208 | "number": "0x18", 209 | "arguments": [{"type": "int", "arg": "oldfd"}, {"type": "int", "arg": "newfd"}, {"type": "int", "arg": "flags"}] 210 | }, 211 | "0x19": { 212 | "name": "fcntl", 213 | "number": "0x19", 214 | "arguments": [{"type": "int", "arg": "fd"}, {"type": "int", "arg": "cmd"}] 215 | }, 216 | "0x1a": {"name": "inotify_init1", "number": "0x1a", "arguments": [{"type": "int", "arg": "flags"}]}, 217 | "0x1b": { 218 | "name": "inotify_add_watch", 219 | "number": "0x1b", 220 | "arguments": [{"type": "int", "arg": "fd"}, {"type": "const char *", "arg": "pathname"}, { 221 | "type": "uint32_t", 222 | "arg": "mask" 223 | }] 224 | }, 225 | "0x1c": { 226 | "name": "inotify_rm_watch", 227 | "number": "0x1c", 228 | "arguments": [{"type": "int", "arg": "fd"}, {"type": "int", "arg": "wd"}] 229 | }, 230 | "0x1d": { 231 | "name": "ioctl", 232 | "number": "0x1d", 233 | "arguments": [{"type": "int", "arg": "fd"}, {"type": "unsigned long", "arg": "request"}] 234 | }, 235 | "0x1e": { 236 | "name": "ioprio_set", 237 | "number": "0x1e", 238 | "arguments": [{"type": "int", "arg": "which"}, {"type": "int", "arg": "who"}, {"type": "int", "arg": "ioprio"}] 239 | }, 240 | "0x1f": { 241 | "name": "ioprio_get", 242 | "number": "0x1f", 243 | "arguments": [{"type": "int", "arg": "which"}, {"type": "int", "arg": "who"}] 244 | }, 245 | "0x20": { 246 | "name": "flock", 247 | "number": "0x20", 248 | "arguments": [{"type": "int", "arg": "fd"}, {"type": "int", "arg": "operation"}] 249 | }, 250 | "0x21": { 251 | "name": "mknodat", 252 | "number": "0x21", 253 | "arguments": [{"type": "int", "arg": "dirfd"}, {"type": "const char *", "arg": "pathname"}, { 254 | "type": "mode_t", 255 | "arg": "mode" 256 | }, {"type": "dev_t", "arg": "dev"}] 257 | }, 258 | "0x22": { 259 | "name": "mkdirat", 260 | "number": "0x22", 261 | "arguments": [{"type": "int", "arg": "dirfd"}, {"type": "const char *", "arg": "pathname"}, { 262 | "type": "mode_t", 263 | "arg": "mode" 264 | }] 265 | }, 266 | "0x23": { 267 | "name": "unlinkat", 268 | "number": "0x23", 269 | "arguments": [{"type": "int", "arg": "dirfd"}, {"type": "const char *", "arg": "pathname"}, { 270 | "type": "int", 271 | "arg": "flags" 272 | }] 273 | }, 274 | "0x24": { 275 | "name": "symlinkat", 276 | "number": "0x24", 277 | "arguments": [{"type": "const char *", "arg": "target"}, { 278 | "type": "int", 279 | "arg": "newdirfd" 280 | }, {"type": "const char *", "arg": "linkpath"}] 281 | }, 282 | "0x25": { 283 | "name": "linkat", 284 | "number": "0x25", 285 | "arguments": [{"type": "int", "arg": "olddirfd"}, {"type": "const char *", "arg": "oldpath"}, { 286 | "type": "int", 287 | "arg": "newdirfd" 288 | }, {"type": "const char *", "arg": "newpath"}, {"type": "int", "arg": "flags"}] 289 | }, 290 | "0x26": { 291 | "name": "renameat", 292 | "number": "0x26", 293 | "arguments": [{"type": "int", "arg": "olddirfd"}, {"type": "const char *", "arg": "oldpath"}, { 294 | "type": "int", 295 | "arg": "newdirfd" 296 | }, {"type": "const char *", "arg": "newpath"}] 297 | }, 298 | "0x27": { 299 | "name": "umount2", 300 | "number": "0x27", 301 | "arguments": [{"type": "const char *", "arg": "target"}, {"type": "int", "arg": "flags"}] 302 | }, 303 | "0x28": { 304 | "name": "mount", 305 | "number": "0x28", 306 | "arguments": [{"type": "const char *", "arg": "source"}, { 307 | "type": "const char *", 308 | "arg": "target" 309 | }, {"type": "const char *", "arg": "filesystemtype"}, { 310 | "type": "unsigned long", 311 | "arg": "mountflags" 312 | }, {"type": "const void *", "arg": "data"}] 313 | }, 314 | "0x29": { 315 | "name": "pivot_root", 316 | "number": "0x29", 317 | "arguments": [{"type": "const char *", "arg": "new_root"}, {"type": "const char *", "arg": "put_old"}] 318 | }, 319 | "0x2a": { 320 | "name": "nfsservctl", 321 | "number": "0x2a", 322 | "arguments": [{"type": "int", "arg": "cmd"}, { 323 | "type": "struct nfsctl_arg *", 324 | "arg": "argp" 325 | }, {"type": "union nfsctl_res *", "arg": "resp"}] 326 | }, 327 | "0x2b": { 328 | "name": "statfs", 329 | "number": "0x2b", 330 | "arguments": [{"type": "const char *", "arg": "path"}, {"type": "struct statfs *", "arg": "buf"}] 331 | }, 332 | "0x2c": { 333 | "name": "fstatfs", 334 | "number": "0x2c", 335 | "arguments": [{"type": "int", "arg": "fd"}, {"type": "struct statfs *", "arg": "buf"}] 336 | }, 337 | "0x2d": { 338 | "name": "truncate", 339 | "number": "0x2d", 340 | "arguments": [{"type": "const char *", "arg": "path"}, {"type": "off_t", "arg": "length"}] 341 | }, 342 | "0x2e": { 343 | "name": "ftruncate", 344 | "number": "0x2e", 345 | "arguments": [{"type": "int", "arg": "fd"}, {"type": "off_t", "arg": "length"}] 346 | }, 347 | "0x2f": { 348 | "name": "fallocate", 349 | "number": "0x2f", 350 | "arguments": [{"type": "int", "arg": "fd"}, {"type": "int", "arg": "mode"}, { 351 | "type": "off_t", 352 | "arg": "offset" 353 | }, {"type": "off_t", "arg": "len"}] 354 | }, 355 | "0x30": { 356 | "name": "faccessat", 357 | "number": "0x30", 358 | "arguments": [{"type": "int", "arg": "dirfd"}, {"type": "const char *", "arg": "pathname"}, { 359 | "type": "int", 360 | "arg": "mode" 361 | }, {"type": "int", "arg": "flags"}] 362 | }, 363 | "0x31": {"name": "chdir", "number": "0x31", "arguments": [{"type": "const char *", "arg": "path"}]}, 364 | "0x32": {"name": "fchdir", "number": "0x32", "arguments": [{"type": "int", "arg": "fd"}]}, 365 | "0x33": {"name": "chroot", "number": "0x33", "arguments": [{"type": "const char *", "arg": "path"}]}, 366 | "0x34": { 367 | "name": "fchmod", 368 | "number": "0x34", 369 | "arguments": [{"type": "int", "arg": "fd"}, {"type": "mode_t", "arg": "mode"}] 370 | }, 371 | "0x35": { 372 | "name": "fchmodat", 373 | "number": "0x35", 374 | "arguments": [{"type": "int", "arg": "dirfd"}, {"type": "const char *", "arg": "pathname"}, { 375 | "type": "mode_t", 376 | "arg": "mode" 377 | }, {"type": "int", "arg": "flags"}] 378 | }, 379 | "0x36": { 380 | "name": "fchownat", 381 | "number": "0x36", 382 | "arguments": [{"type": "int", "arg": "dirfd"}, {"type": "const char *", "arg": "pathname"}, { 383 | "type": "uid_t", 384 | "arg": "owner" 385 | }, {"type": "gid_t", "arg": "group"}, {"type": "int", "arg": "flags"}] 386 | }, 387 | "0x37": { 388 | "name": "fchown", 389 | "number": "0x37", 390 | "arguments": [{"type": "int", "arg": "fd"}, {"type": "uid_t", "arg": "owner"}, { 391 | "type": "gid_t", 392 | "arg": "group" 393 | }] 394 | }, 395 | "0x38": { 396 | "name": "openat", 397 | "number": "0x38", 398 | "arguments": [{"type": "int", "arg": "dirfd"}, {"type": "const char *", "arg": "pathname"}, { 399 | "type": "int", 400 | "arg": "flags" 401 | }] 402 | }, 403 | "0x39": {"name": "close", "number": "0x39", "arguments": [{"type": "int", "arg": "fd"}]}, 404 | "0x3a": {"name": "vhangup", "number": "0x3a", "arguments": []}, 405 | "0x3b": {"name": "pipe2", "number": "0x3b", "arguments": [{"type": "int pipefd[2], int", "arg": "flags"}]}, 406 | "0x3c": { 407 | "name": "quotactl", 408 | "number": "0x3c", 409 | "arguments": [{"type": "int", "arg": "cmd"}, {"type": "const char *", "arg": "special"}, { 410 | "type": "int", 411 | "arg": "id" 412 | }, {"type": "caddr_t", "arg": "addr"}] 413 | }, 414 | "0x3d": { 415 | "name": "getdents64", 416 | "number": "0x3d", 417 | "arguments": [{"type": "int", "arg": "fd"}, {"type": "void *", "arg": "dirp"}, { 418 | "type": "size_t", 419 | "arg": "count" 420 | }] 421 | }, 422 | "0x3e": { 423 | "name": "lseek", 424 | "number": "0x3e", 425 | "arguments": [{"type": "int", "arg": "fd"}, {"type": "off_t", "arg": "offset"}, { 426 | "type": "int", 427 | "arg": "whence" 428 | }] 429 | }, 430 | "0x3f": { 431 | "name": "read", 432 | "number": "0x3f", 433 | "arguments": [{"type": "int", "arg": "fd"}, {"type": "void *", "arg": "buf"}, { 434 | "type": "size_t", 435 | "arg": "count" 436 | }] 437 | }, 438 | "0x40": { 439 | "name": "write", 440 | "number": "0x40", 441 | "arguments": [{"type": "int", "arg": "fd"}, {"type": "const void *", "arg": "buf"}, { 442 | "type": "size_t", 443 | "arg": "count" 444 | }] 445 | }, 446 | "0x41": { 447 | "name": "readv", 448 | "number": "0x41", 449 | "arguments": [{"type": "int", "arg": "fd"}, {"type": "const struct iovec *", "arg": "iov"}, { 450 | "type": "int", 451 | "arg": "iovcnt" 452 | }] 453 | }, 454 | "0x42": { 455 | "name": "writev", 456 | "number": "0x42", 457 | "arguments": [{"type": "int", "arg": "fd"}, {"type": "const struct iovec *", "arg": "iov"}, { 458 | "type": "int", 459 | "arg": "iovcnt" 460 | }] 461 | }, 462 | "0x43": {"name": "pread64", "number": "0x43", "arguments": null}, 463 | "0x44": {"name": "pwrite64", "number": "0x44", "arguments": null}, 464 | "0x45": { 465 | "name": "preadv", 466 | "number": "0x45", 467 | "arguments": [{"type": "int", "arg": "fd"}, {"type": "const struct iovec *", "arg": "iov"}, { 468 | "type": "int", 469 | "arg": "iovcnt" 470 | }, {"type": "off_t", "arg": "offset"}] 471 | }, 472 | "0x46": { 473 | "name": "pwritev", 474 | "number": "0x46", 475 | "arguments": [{"type": "int", "arg": "fd"}, {"type": "const struct iovec *", "arg": "iov"}, { 476 | "type": "int", 477 | "arg": "iovcnt" 478 | }, {"type": "off_t", "arg": "offset"}] 479 | }, 480 | "0x47": { 481 | "name": "sendfile", 482 | "number": "0x47", 483 | "arguments": [{"type": "int", "arg": "out_fd"}, {"type": "int", "arg": "in_fd"}, { 484 | "type": "off_t *", 485 | "arg": "offset" 486 | }, {"type": "size_t", "arg": "count"}] 487 | }, 488 | "0x48": {"name": "pselect6", "number": "0x48", "arguments": null}, 489 | "0x49": { 490 | "name": "ppoll", 491 | "number": "0x49", 492 | "arguments": [{"type": "struct pollfd *", "arg": "fds"}, { 493 | "type": "nfds_t", 494 | "arg": "nfds" 495 | }, {"type": "const struct timespec *", "arg": "tmo_p"}, {"type": "const sigset_t *", "arg": "sigmask"}] 496 | }, 497 | "0x4a": {"name": "signalfd4", "number": "0x4a", "arguments": null}, 498 | "0x4b": { 499 | "name": "vmsplice", 500 | "number": "0x4b", 501 | "arguments": [{"type": "int", "arg": "fd"}, {"type": "const struct iovec *", "arg": "iov"}, { 502 | "type": "size_t", 503 | "arg": "nr_segs" 504 | }, {"type": "unsigned int", "arg": "flags"}] 505 | }, 506 | "0x4c": { 507 | "name": "splice", 508 | "number": "0x4c", 509 | "arguments": [{"type": "int", "arg": "fd_in"}, {"type": "off64_t *", "arg": "off_in"}, { 510 | "type": "int", 511 | "arg": "fd_out" 512 | }, {"type": "off64_t *", "arg": "off_out"}, {"type": "size_t", "arg": "len"}, { 513 | "type": "unsigned int", 514 | "arg": "flags" 515 | }] 516 | }, 517 | "0x4d": { 518 | "name": "tee", 519 | "number": "0x4d", 520 | "arguments": [{"type": "int", "arg": "fd_in"}, {"type": "int", "arg": "fd_out"}, { 521 | "type": "size_t", 522 | "arg": "len" 523 | }, {"type": "unsigned int", "arg": "flags"}] 524 | }, 525 | "0x4e": { 526 | "name": "readlinkat", 527 | "number": "0x4e", 528 | "arguments": [{"type": "int", "arg": "dirfd"}, { 529 | "type": "const char *restrict", 530 | "arg": "pathname" 531 | }, {"type": "char *restrict", "arg": "buf"}, {"type": "size_t", "arg": "bufsiz"}] 532 | }, 533 | "0x4f": { 534 | "name": "fstatat", 535 | "number": "0x4f", 536 | "arguments": [{"type": "int", "arg": "dirfd"}, { 537 | "type": "const char *restrict", 538 | "arg": "pathname" 539 | }, {"type": "struct stat *restrict", "arg": "statbuf"}, {"type": "int", "arg": "flags"}] 540 | }, 541 | "0x50": { 542 | "name": "fstat", 543 | "number": "0x50", 544 | "arguments": [{"type": "int", "arg": "fd"}, {"type": "struct stat *", "arg": "statbuf"}] 545 | }, 546 | "0x51": {"name": "sync", "number": "0x51", "arguments": []}, 547 | "0x52": {"name": "fsync", "number": "0x52", "arguments": [{"type": "int", "arg": "fd"}]}, 548 | "0x53": {"name": "fdatasync", "number": "0x53", "arguments": [{"type": "int", "arg": "fd"}]}, 549 | "0x54": { 550 | "name": "sync_file_range", 551 | "number": "0x54", 552 | "arguments": [{"type": "int", "arg": "fd"}, {"type": "off64_t", "arg": "offset"}, { 553 | "type": "off64_t", 554 | "arg": "nbytes" 555 | }, {"type": "unsigned int", "arg": "flags"}] 556 | }, 557 | "0x55": { 558 | "name": "timerfd_create", 559 | "number": "0x55", 560 | "arguments": [{"type": "int", "arg": "clockid"}, {"type": "int", "arg": "flags"}] 561 | }, 562 | "0x56": { 563 | "name": "timerfd_settime", 564 | "number": "0x56", 565 | "arguments": [{"type": "int", "arg": "fd"}, { 566 | "type": "int", 567 | "arg": "flags" 568 | }, {"type": "const struct itimerspec *", "arg": "new_value"}, { 569 | "type": "struct itimerspec *", 570 | "arg": "old_value" 571 | }] 572 | }, 573 | "0x57": { 574 | "name": "timerfd_gettime", 575 | "number": "0x57", 576 | "arguments": [{"type": "int", "arg": "fd"}, {"type": "struct itimerspec *", "arg": "curr_value"}] 577 | }, 578 | "0x58": { 579 | "name": "utimensat", 580 | "number": "0x58", 581 | "arguments": [{"type": "int", "arg": "dirfd"}, { 582 | "type": "const char *", 583 | "arg": "pathname" 584 | }, {"type": "const struct timespec times[2], int", "arg": "flags"}] 585 | }, 586 | "0x59": {"name": "acct", "number": "0x59", "arguments": [{"type": "const char *", "arg": "filename"}]}, 587 | "0x5a": { 588 | "name": "capget", 589 | "number": "0x5a", 590 | "arguments": [{"type": "cap_user_header_t", "arg": "hdrp"}, {"type": "cap_user_data_t", "arg": "datap"}] 591 | }, 592 | "0x5b": { 593 | "name": "capset", 594 | "number": "0x5b", 595 | "arguments": [{"type": "cap_user_header_t", "arg": "hdrp"}, {"type": "const cap_user_data_t", "arg": "datap"}] 596 | }, 597 | "0x5c": {"name": "personality", "number": "0x5c", "arguments": [{"type": "unsigned long", "arg": "persona"}]}, 598 | "0x5d": {"name": "exit", "number": "0x5d", "arguments": null}, 599 | "0x5e": {"name": "exit_group", "number": "0x5e", "arguments": [{"type": "int", "arg": "status"}]}, 600 | "0x5f": { 601 | "name": "waitid", 602 | "number": "0x5f", 603 | "arguments": [{"type": "idtype_t", "arg": "idtype"}, {"type": "id_t", "arg": "id"}, { 604 | "type": "siginfo_t *", 605 | "arg": "infop" 606 | }, {"type": "int", "arg": "options"}] 607 | }, 608 | "0x60": {"name": "set_tid_address", "number": "0x60", "arguments": [{"type": "int *", "arg": "tidptr"}]}, 609 | "0x61": {"name": "unshare", "number": "0x61", "arguments": [{"type": "int", "arg": "flags"}]}, 610 | "0x62": {"name": "futex", "number": "0x62", "arguments": null}, 611 | "0x63": { 612 | "name": "set_robust_list", 613 | "number": "0x63", 614 | "arguments": [{"type": "struct robust_list_head *", "arg": "head"}, {"type": "size_t", "arg": "len"}] 615 | }, 616 | "0x64": { 617 | "name": "get_robust_list", 618 | "number": "0x64", 619 | "arguments": [{"type": "int", "arg": "pid"}, { 620 | "type": "struct robust_list_head **", 621 | "arg": "head_ptr" 622 | }, {"type": "size_t *", "arg": "len_ptr"}] 623 | }, 624 | "0x65": { 625 | "name": "nanosleep", 626 | "number": "0x65", 627 | "arguments": [{"type": "const struct timespec *", "arg": "req"}, {"type": "struct timespec *", "arg": "rem"}] 628 | }, 629 | "0x66": { 630 | "name": "getitimer", 631 | "number": "0x66", 632 | "arguments": [{"type": "int", "arg": "which"}, {"type": "struct itimerval *", "arg": "curr_value"}] 633 | }, 634 | "0x67": { 635 | "name": "setitimer", 636 | "number": "0x67", 637 | "arguments": [{"type": "int", "arg": "which"}, { 638 | "type": "const struct itimerval *restrict", 639 | "arg": "new_value" 640 | }, {"type": "struct itimerval *restrict", "arg": "old_value"}] 641 | }, 642 | "0x68": { 643 | "name": "kexec_load", 644 | "number": "0x68", 645 | "arguments": [{"type": "unsigned long", "arg": "entry"}, { 646 | "type": "unsigned long", 647 | "arg": "nr_segments" 648 | }, {"type": "struct kexec_segment *", "arg": "segments"}, {"type": "unsigned long", "arg": "flags"}] 649 | }, 650 | "0x69": { 651 | "name": "init_module", 652 | "number": "0x69", 653 | "arguments": [{"type": "void *", "arg": "module_image"}, { 654 | "type": "unsigned long", 655 | "arg": "len" 656 | }, {"type": "const char *", "arg": "param_values"}] 657 | }, 658 | "0x6a": { 659 | "name": "delete_module", 660 | "number": "0x6a", 661 | "arguments": [{"type": "const char *", "arg": "name"}, {"type": "unsigned int", "arg": "flags"}] 662 | }, 663 | "0x6b": { 664 | "name": "timer_create", 665 | "number": "0x6b", 666 | "arguments": [{"type": "clockid_t", "arg": "clockid"}, { 667 | "type": "struct sigevent *restrict", 668 | "arg": "sevp" 669 | }, {"type": "timer_t *restrict", "arg": "timerid"}] 670 | }, 671 | "0x6c": { 672 | "name": "timer_gettime", 673 | "number": "0x6c", 674 | "arguments": [{"type": "timer_t", "arg": "timerid"}, {"type": "struct itimerspec *", "arg": "curr_value"}] 675 | }, 676 | "0x6d": {"name": "timer_getoverrun", "number": "0x6d", "arguments": [{"type": "timer_t", "arg": "timerid"}]}, 677 | "0x6e": { 678 | "name": "timer_settime", 679 | "number": "0x6e", 680 | "arguments": [{"type": "timer_t", "arg": "timerid"}, { 681 | "type": "int", 682 | "arg": "flags" 683 | }, {"type": "const struct itimerspec *restrict", "arg": "new_value"}, { 684 | "type": "struct itimerspec *restrict", 685 | "arg": "old_value" 686 | }] 687 | }, 688 | "0x6f": {"name": "timer_delete", "number": "0x6f", "arguments": [{"type": "timer_t", "arg": "timerid"}]}, 689 | "0x70": { 690 | "name": "clock_settime", 691 | "number": "0x70", 692 | "arguments": [{"type": "clockid_t", "arg": "clockid"}, {"type": "const struct timespec *", "arg": "tp"}] 693 | }, 694 | "0x71": { 695 | "name": "clock_gettime", 696 | "number": "0x71", 697 | "arguments": [{"type": "clockid_t", "arg": "clockid"}, {"type": "struct timespec *", "arg": "tp"}] 698 | }, 699 | "0x72": { 700 | "name": "clock_getres", 701 | "number": "0x72", 702 | "arguments": [{"type": "clockid_t", "arg": "clockid"}, {"type": "struct timespec *", "arg": "res"}] 703 | }, 704 | "0x73": { 705 | "name": "clock_nanosleep", 706 | "number": "0x73", 707 | "arguments": [{"type": "clockid_t", "arg": "clockid"}, { 708 | "type": "int", 709 | "arg": "flags" 710 | }, {"type": "const struct timespec *", "arg": "request"}, {"type": "struct timespec *", "arg": "remain"}] 711 | }, 712 | "0x74": { 713 | "name": "syslog", 714 | "number": "0x74", 715 | "arguments": [{"type": "int", "arg": "type"}, {"type": "char *", "arg": "bufp"}, {"type": "int", "arg": "len"}] 716 | }, 717 | "0x75": { 718 | "name": "ptrace", 719 | "number": "0x75", 720 | "arguments": [{"type": "enum __ptrace_request", "arg": "request"}, { 721 | "type": "pid_t", 722 | "arg": "pid" 723 | }, {"type": "void *", "arg": "addr"}, {"type": "void *", "arg": "data"}] 724 | }, 725 | "0x76": { 726 | "name": "sched_setparam", 727 | "number": "0x76", 728 | "arguments": [{"type": "pid_t", "arg": "pid"}, {"type": "const struct sched_param *", "arg": "param"}] 729 | }, 730 | "0x77": { 731 | "name": "sched_setscheduler", 732 | "number": "0x77", 733 | "arguments": [{"type": "pid_t", "arg": "pid"}, { 734 | "type": "int", 735 | "arg": "policy" 736 | }, {"type": "const struct sched_param *", "arg": "param"}] 737 | }, 738 | "0x78": {"name": "sched_getscheduler", "number": "0x78", "arguments": [{"type": "pid_t", "arg": "pid"}]}, 739 | "0x79": { 740 | "name": "sched_getparam", 741 | "number": "0x79", 742 | "arguments": [{"type": "pid_t", "arg": "pid"}, {"type": "struct sched_param *", "arg": "param"}] 743 | }, 744 | "0x7a": { 745 | "name": "sched_setaffinity", 746 | "number": "0x7a", 747 | "arguments": [{"type": "pid_t", "arg": "pid"}, { 748 | "type": "size_t", 749 | "arg": "cpusetsize" 750 | }, {"type": "const cpu_set_t *", "arg": "mask"}] 751 | }, 752 | "0x7b": { 753 | "name": "sched_getaffinity", 754 | "number": "0x7b", 755 | "arguments": [{"type": "pid_t", "arg": "pid"}, {"type": "size_t", "arg": "cpusetsize"}, { 756 | "type": "cpu_set_t *", 757 | "arg": "mask" 758 | }] 759 | }, 760 | "0x7c": {"name": "sched_yield", "number": "0x7c", "arguments": []}, 761 | "0x7d": {"name": "sched_get_priority_max", "number": "0x7d", "arguments": [{"type": "int", "arg": "policy"}]}, 762 | "0x7e": {"name": "sched_get_priority_min", "number": "0x7e", "arguments": [{"type": "int", "arg": "policy"}]}, 763 | "0x7f": { 764 | "name": "sched_rr_get_interval", 765 | "number": "0x7f", 766 | "arguments": [{"type": "pid_t", "arg": "pid"}, {"type": "struct timespec *", "arg": "tp"}] 767 | }, 768 | "0x80": {"name": "restart_syscall", "number": "0x80", "arguments": []}, 769 | "0x81": { 770 | "name": "kill", 771 | "number": "0x81", 772 | "arguments": [{"type": "pid_t", "arg": "pid"}, {"type": "int", "arg": "sig"}] 773 | }, 774 | "0x82": { 775 | "name": "tkill", 776 | "number": "0x82", 777 | "arguments": [{"type": "pid_t", "arg": "tid"}, {"type": "int", "arg": "sig"}] 778 | }, 779 | "0x83": { 780 | "name": "tgkill", 781 | "number": "0x83", 782 | "arguments": [{"type": "pid_t", "arg": "tgid"}, {"type": "pid_t", "arg": "tid"}, {"type": "int", "arg": "sig"}] 783 | }, 784 | "0x84": { 785 | "name": "sigaltstack", 786 | "number": "0x84", 787 | "arguments": [{"type": "const stack_t *restrict", "arg": "ss"}, {"type": "stack_t *restrict", "arg": "old_ss"}] 788 | }, 789 | "0x85": {"name": "rt_sigsuspend", "number": "0x85", "arguments": null}, 790 | "0x86": {"name": "rt_sigaction", "number": "0x86", "arguments": null}, 791 | "0x87": { 792 | "name": "rt_sigprocmask", 793 | "number": "0x87", 794 | "arguments": [{"type": "int", "arg": "how"}, { 795 | "type": "const kernel_sigset_t *", 796 | "arg": "set" 797 | }, {"type": "kernel_sigset_t *", "arg": "oldset"}, {"type": "size_t", "arg": "sigsetsize"}] 798 | }, 799 | "0x88": {"name": "rt_sigpending", "number": "0x88", "arguments": null}, 800 | "0x89": {"name": "rt_sigtimedwait", "number": "0x89", "arguments": null}, 801 | "0x8a": { 802 | "name": "rt_sigqueueinfo", 803 | "number": "0x8a", 804 | "arguments": [{"type": "pid_t", "arg": "tgid"}, {"type": "int", "arg": "sig"}, { 805 | "type": "siginfo_t *", 806 | "arg": "info" 807 | }] 808 | }, 809 | "0x8b": {"name": "rt_sigreturn", "number": "0x8b", "arguments": null}, 810 | "0x8c": { 811 | "name": "setpriority", 812 | "number": "0x8c", 813 | "arguments": [{"type": "int", "arg": "which"}, {"type": "id_t", "arg": "who"}, {"type": "int", "arg": "prio"}] 814 | }, 815 | "0x8d": { 816 | "name": "getpriority", 817 | "number": "0x8d", 818 | "arguments": [{"type": "int", "arg": "which"}, {"type": "id_t", "arg": "who"}] 819 | }, 820 | "0x8e": { 821 | "name": "reboot", 822 | "number": "0x8e", 823 | "arguments": [{"type": "int", "arg": "magic"}, {"type": "int", "arg": "magic2"}, { 824 | "type": "int", 825 | "arg": "cmd" 826 | }, {"type": "void *", "arg": "arg"}] 827 | }, 828 | "0x8f": { 829 | "name": "setregid", 830 | "number": "0x8f", 831 | "arguments": [{"type": "gid_t", "arg": "rgid"}, {"type": "gid_t", "arg": "egid"}] 832 | }, 833 | "0x90": {"name": "setgid", "number": "0x90", "arguments": [{"type": "gid_t", "arg": "gid"}]}, 834 | "0x91": { 835 | "name": "setreuid", 836 | "number": "0x91", 837 | "arguments": [{"type": "uid_t", "arg": "ruid"}, {"type": "uid_t", "arg": "euid"}] 838 | }, 839 | "0x92": {"name": "setuid", "number": "0x92", "arguments": [{"type": "uid_t", "arg": "uid"}]}, 840 | "0x93": { 841 | "name": "setresuid", 842 | "number": "0x93", 843 | "arguments": [{"type": "uid_t", "arg": "ruid"}, {"type": "uid_t", "arg": "euid"}, { 844 | "type": "uid_t", 845 | "arg": "suid" 846 | }] 847 | }, 848 | "0x94": { 849 | "name": "getresuid", 850 | "number": "0x94", 851 | "arguments": [{"type": "uid_t *", "arg": "ruid"}, {"type": "uid_t *", "arg": "euid"}, { 852 | "type": "uid_t *", 853 | "arg": "suid" 854 | }] 855 | }, 856 | "0x95": { 857 | "name": "setresgid", 858 | "number": "0x95", 859 | "arguments": [{"type": "gid_t", "arg": "rgid"}, {"type": "gid_t", "arg": "egid"}, { 860 | "type": "gid_t", 861 | "arg": "sgid" 862 | }] 863 | }, 864 | "0x96": { 865 | "name": "getresgid", 866 | "number": "0x96", 867 | "arguments": [{"type": "gid_t *", "arg": "rgid"}, {"type": "gid_t *", "arg": "egid"}, { 868 | "type": "gid_t *", 869 | "arg": "sgid" 870 | }] 871 | }, 872 | "0x97": {"name": "setfsuid", "number": "0x97", "arguments": [{"type": "uid_t", "arg": "fsuid"}]}, 873 | "0x98": {"name": "setfsgid", "number": "0x98", "arguments": [{"type": "gid_t", "arg": "fsgid"}]}, 874 | "0x99": {"name": "times", "number": "0x99", "arguments": [{"type": "struct tms *", "arg": "buf"}]}, 875 | "0x9a": { 876 | "name": "setpgid", 877 | "number": "0x9a", 878 | "arguments": [{"type": "pid_t", "arg": "pid"}, {"type": "pid_t", "arg": "pgid"}] 879 | }, 880 | "0x9b": {"name": "getpgid", "number": "0x9b", "arguments": [{"type": "pid_t", "arg": "pid"}]}, 881 | "0x9c": {"name": "getsid", "number": "0x9c", "arguments": [{"type": "pid_t", "arg": "pid"}]}, 882 | "0x9d": {"name": "setsid", "number": "0x9d", "arguments": []}, 883 | "0x9e": {"name": "getgroups", "number": "0x9e", "arguments": [{"type": "int", "arg": "size"}]}, 884 | "0x9f": { 885 | "name": "setgroups", 886 | "number": "0x9f", 887 | "arguments": [{"type": "size_t", "arg": "size"}, {"type": "const gid_t *", "arg": "list"}] 888 | }, 889 | "0xa0": {"name": "uname", "number": "0xa0", "arguments": [{"type": "struct utsname *", "arg": "buf"}]}, 890 | "0xa1": { 891 | "name": "sethostname", 892 | "number": "0xa1", 893 | "arguments": [{"type": "const char *", "arg": "name"}, {"type": "size_t", "arg": "len"}] 894 | }, 895 | "0xa2": { 896 | "name": "setdomainname", 897 | "number": "0xa2", 898 | "arguments": [{"type": "const char *", "arg": "name"}, {"type": "size_t", "arg": "len"}] 899 | }, 900 | "0xa3": { 901 | "name": "getrlimit", 902 | "number": "0xa3", 903 | "arguments": [{"type": "int", "arg": "resource"}, {"type": "struct rlimit *", "arg": "rlim"}] 904 | }, 905 | "0xa4": { 906 | "name": "setrlimit", 907 | "number": "0xa4", 908 | "arguments": [{"type": "int", "arg": "resource"}, {"type": "const struct rlimit *", "arg": "rlim"}] 909 | }, 910 | "0xa5": { 911 | "name": "getrusage", 912 | "number": "0xa5", 913 | "arguments": [{"type": "int", "arg": "who"}, {"type": "struct rusage *", "arg": "usage"}] 914 | }, 915 | "0xa6": {"name": "umask", "number": "0xa6", "arguments": [{"type": "mode_t", "arg": "mask"}]}, 916 | "0xa7": { 917 | "name": "prctl", 918 | "number": "0xa7", 919 | "arguments": [{"type": "int", "arg": "option"}, { 920 | "type": "unsigned long", 921 | "arg": "arg2" 922 | }, {"type": "unsigned long", "arg": "arg3"}, {"type": "unsigned long", "arg": "arg4"}, { 923 | "type": "unsigned long", 924 | "arg": "arg5" 925 | }] 926 | }, 927 | "0xa8": { 928 | "name": "getcpu", 929 | "number": "0xa8", 930 | "arguments": [{"type": "unsigned int *", "arg": "cpu"}, {"type": "unsigned int *", "arg": "node"}] 931 | }, 932 | "0xa9": { 933 | "name": "gettimeofday", 934 | "number": "0xa9", 935 | "arguments": [{"type": "struct timeval *restrict", "arg": "tv"}, { 936 | "type": "struct timezone *restrict", 937 | "arg": "tz" 938 | }] 939 | }, 940 | "0xaa": { 941 | "name": "settimeofday", 942 | "number": "0xaa", 943 | "arguments": [{"type": "const struct timeval *", "arg": "tv"}, {"type": "const struct timezone *", "arg": "tz"}] 944 | }, 945 | "0xab": {"name": "adjtimex", "number": "0xab", "arguments": [{"type": "struct timex *", "arg": "buf"}]}, 946 | "0xac": {"name": "getpid", "number": "0xac", "arguments": []}, 947 | "0xad": {"name": "getppid", "number": "0xad", "arguments": []}, 948 | "0xae": {"name": "getuid", "number": "0xae", "arguments": []}, 949 | "0xaf": {"name": "geteuid", "number": "0xaf", "arguments": []}, 950 | "0xb0": {"name": "getgid", "number": "0xb0", "arguments": []}, 951 | "0xb1": {"name": "getegid", "number": "0xb1", "arguments": []}, 952 | "0xb2": {"name": "gettid", "number": "0xb2", "arguments": []}, 953 | "0xb3": {"name": "sysinfo", "number": "0xb3", "arguments": [{"type": "struct sysinfo *", "arg": "info"}]}, 954 | "0xb4": { 955 | "name": "mq_open", 956 | "number": "0xb4", 957 | "arguments": [{"type": "const char *", "arg": "name"}, {"type": "int", "arg": "oflag"}] 958 | }, 959 | "0xb5": {"name": "mq_unlink", "number": "0xb5", "arguments": [{"type": "const char *", "arg": "name"}]}, 960 | "0xb6": { 961 | "name": "mq_timedsend", 962 | "number": "0xb6", 963 | "arguments": [{"type": "mqd_t", "arg": "mqdes"}, {"type": "const char *", "arg": "msg_ptr"}, { 964 | "type": "size_t", 965 | "arg": "msg_len" 966 | }, {"type": "unsigned int", "arg": "msg_prio"}, {"type": "const struct timespec *", "arg": "abs_timeout"}] 967 | }, 968 | "0xb7": { 969 | "name": "mq_timedreceive", 970 | "number": "0xb7", 971 | "arguments": [{"type": "mqd_t", "arg": "mqdes"}, { 972 | "type": "char *restrict", 973 | "arg": "msg_ptr" 974 | }, {"type": "size_t", "arg": "msg_len"}, { 975 | "type": "unsigned int *restrict", 976 | "arg": "msg_prio" 977 | }, {"type": "const struct timespec *restrict", "arg": "abs_timeout"}] 978 | }, 979 | "0xb8": { 980 | "name": "mq_notify", 981 | "number": "0xb8", 982 | "arguments": [{"type": "mqd_t", "arg": "mqdes"}, {"type": "const struct sigevent *", "arg": "sevp"}] 983 | }, 984 | "0xb9": { 985 | "name": "mq_getsetattr", 986 | "number": "0xb9", 987 | "arguments": [{"type": "mqd_t", "arg": "mqdes"}, { 988 | "type": "const struct mq_attr *", 989 | "arg": "newattr" 990 | }, {"type": "struct mq_attr *", "arg": "oldattr"}] 991 | }, 992 | "0xba": { 993 | "name": "msgget", 994 | "number": "0xba", 995 | "arguments": [{"type": "key_t", "arg": "key"}, {"type": "int", "arg": "msgflg"}] 996 | }, 997 | "0xbb": { 998 | "name": "msgctl", 999 | "number": "0xbb", 1000 | "arguments": [{"type": "int", "arg": "msqid"}, {"type": "int", "arg": "cmd"}, { 1001 | "type": "struct msqid_ds *", 1002 | "arg": "buf" 1003 | }] 1004 | }, 1005 | "0xbc": { 1006 | "name": "msgrcv", 1007 | "number": "0xbc", 1008 | "arguments": [{"type": "int", "arg": "msqid"}, {"type": "void *", "arg": "msgp"}, { 1009 | "type": "size_t", 1010 | "arg": "msgsz" 1011 | }, {"type": "long", "arg": "msgtyp"}, {"type": "int", "arg": "msgflg"}] 1012 | }, 1013 | "0xbd": { 1014 | "name": "msgsnd", 1015 | "number": "0xbd", 1016 | "arguments": [{"type": "int", "arg": "msqid"}, {"type": "const void *", "arg": "msgp"}, { 1017 | "type": "size_t", 1018 | "arg": "msgsz" 1019 | }, {"type": "int", "arg": "msgflg"}] 1020 | }, 1021 | "0xbe": { 1022 | "name": "semget", 1023 | "number": "0xbe", 1024 | "arguments": [{"type": "key_t", "arg": "key"}, {"type": "int", "arg": "nsems"}, { 1025 | "type": "int", 1026 | "arg": "semflg" 1027 | }] 1028 | }, 1029 | "0xbf": { 1030 | "name": "semctl", 1031 | "number": "0xbf", 1032 | "arguments": [{"type": "int", "arg": "semid"}, {"type": "int", "arg": "semnum"}, {"type": "int", "arg": "cmd"}] 1033 | }, 1034 | "0xc0": { 1035 | "name": "semtimedop", 1036 | "number": "0xc0", 1037 | "arguments": [{"type": "int", "arg": "semid"}, {"type": "struct sembuf *", "arg": "sops"}, { 1038 | "type": "size_t", 1039 | "arg": "nsops" 1040 | }, {"type": "const struct timespec *", "arg": "timeout"}] 1041 | }, 1042 | "0xc1": { 1043 | "name": "semop", 1044 | "number": "0xc1", 1045 | "arguments": [{"type": "int", "arg": "semid"}, {"type": "struct sembuf *", "arg": "sops"}, { 1046 | "type": "size_t", 1047 | "arg": "nsops" 1048 | }] 1049 | }, 1050 | "0xc2": { 1051 | "name": "shmget", 1052 | "number": "0xc2", 1053 | "arguments": [{"type": "key_t", "arg": "key"}, {"type": "size_t", "arg": "size"}, { 1054 | "type": "int", 1055 | "arg": "shmflg" 1056 | }] 1057 | }, 1058 | "0xc3": { 1059 | "name": "shmctl", 1060 | "number": "0xc3", 1061 | "arguments": [{"type": "int", "arg": "shmid"}, {"type": "int", "arg": "cmd"}, { 1062 | "type": "struct shmid_ds *", 1063 | "arg": "buf" 1064 | }] 1065 | }, 1066 | "0xc4": { 1067 | "name": "shmat", 1068 | "number": "0xc4", 1069 | "arguments": [{"type": "int", "arg": "shmid"}, {"type": "const void *", "arg": "shmaddr"}, { 1070 | "type": "int", 1071 | "arg": "shmflg" 1072 | }] 1073 | }, 1074 | "0xc5": {"name": "shmdt", "number": "0xc5", "arguments": [{"type": "const void *", "arg": "shmaddr"}]}, 1075 | "0xc6": { 1076 | "name": "socket", 1077 | "number": "0xc6", 1078 | "arguments": [{"type": "int", "arg": "domain"}, {"type": "int", "arg": "type"}, { 1079 | "type": "int", 1080 | "arg": "protocol" 1081 | }] 1082 | }, 1083 | "0xc7": { 1084 | "name": "socketpair", 1085 | "number": "0xc7", 1086 | "arguments": [{"type": "int", "arg": "domain"}, {"type": "int", "arg": "type"}, { 1087 | "type": "int", 1088 | "arg": "protocol" 1089 | }] 1090 | }, 1091 | "0xc8": { 1092 | "name": "bind", 1093 | "number": "0xc8", 1094 | "arguments": [{"type": "int", "arg": "sockfd"}, { 1095 | "type": "const struct sockaddr *", 1096 | "arg": "addr" 1097 | }, {"type": "socklen_t", "arg": "addrlen"}] 1098 | }, 1099 | "0xc9": { 1100 | "name": "listen", 1101 | "number": "0xc9", 1102 | "arguments": [{"type": "int", "arg": "sockfd"}, {"type": "int", "arg": "backlog"}] 1103 | }, 1104 | "0xca": { 1105 | "name": "accept", 1106 | "number": "0xca", 1107 | "arguments": [{"type": "int", "arg": "sockfd"}, { 1108 | "type": "struct sockaddr *restrict", 1109 | "arg": "addr" 1110 | }, {"type": "socklen_t *restrict", "arg": "addrlen"}] 1111 | }, 1112 | "0xcb": { 1113 | "name": "connect", 1114 | "number": "0xcb", 1115 | "arguments": [{"type": "int", "arg": "sockfd"}, { 1116 | "type": "const struct sockaddr *", 1117 | "arg": "addr" 1118 | }, {"type": "socklen_t", "arg": "addrlen"}] 1119 | }, 1120 | "0xcc": { 1121 | "name": "getsockname", 1122 | "number": "0xcc", 1123 | "arguments": [{"type": "int", "arg": "sockfd"}, { 1124 | "type": "struct sockaddr *restrict", 1125 | "arg": "addr" 1126 | }, {"type": "socklen_t *restrict", "arg": "addrlen"}] 1127 | }, 1128 | "0xcd": { 1129 | "name": "getpeername", 1130 | "number": "0xcd", 1131 | "arguments": [{"type": "int", "arg": "sockfd"}, { 1132 | "type": "struct sockaddr *restrict", 1133 | "arg": "addr" 1134 | }, {"type": "socklen_t *restrict", "arg": "addrlen"}] 1135 | }, 1136 | "0xce": { 1137 | "name": "sendto", 1138 | "number": "0xce", 1139 | "arguments": [{"type": "int", "arg": "sockfd"}, {"type": "const void *", "arg": "buf"}, { 1140 | "type": "size_t", 1141 | "arg": "len" 1142 | }, {"type": "int", "arg": "flags"}, { 1143 | "type": "const struct sockaddr *", 1144 | "arg": "dest_addr" 1145 | }, {"type": "socklen_t", "arg": "addrlen"}] 1146 | }, 1147 | "0xcf": { 1148 | "name": "recvfrom", 1149 | "number": "0xcf", 1150 | "arguments": [{"type": "int", "arg": "sockfd"}, {"type": "void *restrict", "arg": "buf"}, { 1151 | "type": "size_t", 1152 | "arg": "len" 1153 | }, {"type": "int", "arg": "flags"}, { 1154 | "type": "struct sockaddr *restrict", 1155 | "arg": "src_addr" 1156 | }, {"type": "socklen_t *restrict", "arg": "addrlen"}] 1157 | }, 1158 | "0xd0": { 1159 | "name": "setsockopt", 1160 | "number": "0xd0", 1161 | "arguments": [{"type": "int", "arg": "sockfd"}, {"type": "int", "arg": "level"}, { 1162 | "type": "int", 1163 | "arg": "optname" 1164 | }, {"type": "const void *", "arg": "optval"}, {"type": "socklen_t", "arg": "optlen"}] 1165 | }, 1166 | "0xd1": { 1167 | "name": "getsockopt", 1168 | "number": "0xd1", 1169 | "arguments": [{"type": "int", "arg": "sockfd"}, {"type": "int", "arg": "level"}, { 1170 | "type": "int", 1171 | "arg": "optname" 1172 | }, {"type": "void *restrict", "arg": "optval"}, {"type": "socklen_t *restrict", "arg": "optlen"}] 1173 | }, 1174 | "0xd2": { 1175 | "name": "shutdown", 1176 | "number": "0xd2", 1177 | "arguments": [{"type": "int", "arg": "sockfd"}, {"type": "int", "arg": "how"}] 1178 | }, 1179 | "0xd3": { 1180 | "name": "sendmsg", 1181 | "number": "0xd3", 1182 | "arguments": [{"type": "int", "arg": "sockfd"}, {"type": "const struct msghdr *", "arg": "msg"}, { 1183 | "type": "int", 1184 | "arg": "flags" 1185 | }] 1186 | }, 1187 | "0xd4": { 1188 | "name": "recvmsg", 1189 | "number": "0xd4", 1190 | "arguments": [{"type": "int", "arg": "sockfd"}, {"type": "struct msghdr *", "arg": "msg"}, { 1191 | "type": "int", 1192 | "arg": "flags" 1193 | }] 1194 | }, 1195 | "0xd5": { 1196 | "name": "readahead", 1197 | "number": "0xd5", 1198 | "arguments": [{"type": "int", "arg": "fd"}, {"type": "off64_t", "arg": "offset"}, { 1199 | "type": "size_t", 1200 | "arg": "count" 1201 | }] 1202 | }, 1203 | "0xd6": {"name": "brk", "number": "0xd6", "arguments": [{"type": "void *", "arg": "addr"}]}, 1204 | "0xd7": { 1205 | "name": "munmap", 1206 | "number": "0xd7", 1207 | "arguments": [{"type": "void *", "arg": "addr"}, {"type": "size_t", "arg": "length"}] 1208 | }, 1209 | "0xd8": { 1210 | "name": "mremap", 1211 | "number": "0xd8", 1212 | "arguments": [{"type": "void *", "arg": "old_address"}, { 1213 | "type": "size_t", 1214 | "arg": "old_size" 1215 | }, {"type": "size_t", "arg": "new_size"}, {"type": "int", "arg": "flags"}] 1216 | }, 1217 | "0xd9": { 1218 | "name": "add_key", 1219 | "number": "0xd9", 1220 | "arguments": [{"type": "const char *", "arg": "type"}, { 1221 | "type": "const char *", 1222 | "arg": "description" 1223 | }, {"type": "const void *", "arg": "payload"}, {"type": "size_t", "arg": "plen"}, { 1224 | "type": "key_serial_t", 1225 | "arg": "keyring" 1226 | }] 1227 | }, 1228 | "0xda": { 1229 | "name": "request_key", 1230 | "number": "0xda", 1231 | "arguments": [{"type": "const char *", "arg": "type"}, { 1232 | "type": "const char *", 1233 | "arg": "description" 1234 | }, {"type": "const char *", "arg": "callout_info"}, {"type": "key_serial_t", "arg": "dest_keyring"}] 1235 | }, 1236 | "0xdb": {"name": "keyctl", "number": "0xdb", "arguments": [{"type": "int", "arg": "operation"}]}, 1237 | "0xdc": {"name": "clone", "number": "0xdc", "arguments": null}, 1238 | "0xdd": {"name": "execve", "number": "0xdd", "arguments": [{"type": "const char *", "arg": "pathname"}]}, 1239 | "0xde": { 1240 | "name": "mmap", 1241 | "number": "0xde", 1242 | "arguments": [{"type": "void *", "arg": "addr"}, {"type": "size_t", "arg": "length"}, { 1243 | "type": "int", 1244 | "arg": "prot" 1245 | }, {"type": "int", "arg": "flags"}, {"type": "int", "arg": "fd"}, {"type": "off_t", "arg": "offset"}] 1246 | }, 1247 | "0xdf": {"name": "fadvise64", "number": "0xdf", "arguments": null}, 1248 | "0xe0": { 1249 | "name": "swapon", 1250 | "number": "0xe0", 1251 | "arguments": [{"type": "const char *", "arg": "path"}, {"type": "int", "arg": "swapflags"}] 1252 | }, 1253 | "0xe1": {"name": "swapoff", "number": "0xe1", "arguments": [{"type": "const char *", "arg": "path"}]}, 1254 | "0xe2": { 1255 | "name": "mprotect", 1256 | "number": "0xe2", 1257 | "arguments": [{"type": "void *", "arg": "addr"}, {"type": "size_t", "arg": "len"}, { 1258 | "type": "int", 1259 | "arg": "prot" 1260 | }] 1261 | }, 1262 | "0xe3": { 1263 | "name": "msync", 1264 | "number": "0xe3", 1265 | "arguments": [{"type": "void *", "arg": "addr"}, {"type": "size_t", "arg": "length"}, { 1266 | "type": "int", 1267 | "arg": "flags" 1268 | }] 1269 | }, 1270 | "0xe4": { 1271 | "name": "mlock", 1272 | "number": "0xe4", 1273 | "arguments": [{"type": "const void *", "arg": "addr"}, {"type": "size_t", "arg": "len"}] 1274 | }, 1275 | "0xe5": { 1276 | "name": "munlock", 1277 | "number": "0xe5", 1278 | "arguments": [{"type": "const void *", "arg": "addr"}, {"type": "size_t", "arg": "len"}] 1279 | }, 1280 | "0xe6": {"name": "mlockall", "number": "0xe6", "arguments": [{"type": "int", "arg": "flags"}]}, 1281 | "0xe7": {"name": "munlockall", "number": "0xe7", "arguments": []}, 1282 | "0xe8": { 1283 | "name": "mincore", 1284 | "number": "0xe8", 1285 | "arguments": [{"type": "void *", "arg": "addr"}, { 1286 | "type": "size_t", 1287 | "arg": "length" 1288 | }, {"type": "unsigned char *", "arg": "vec"}] 1289 | }, 1290 | "0xe9": { 1291 | "name": "madvise", 1292 | "number": "0xe9", 1293 | "arguments": [{"type": "void *", "arg": "addr"}, {"type": "size_t", "arg": "length"}, { 1294 | "type": "int", 1295 | "arg": "advice" 1296 | }] 1297 | }, 1298 | "0xea": { 1299 | "name": "remap_file_pages", 1300 | "number": "0xea", 1301 | "arguments": [{"type": "void *", "arg": "addr"}, {"type": "size_t", "arg": "size"}, { 1302 | "type": "int", 1303 | "arg": "prot" 1304 | }, {"type": "size_t", "arg": "pgoff"}, {"type": "int", "arg": "flags"}] 1305 | }, 1306 | "0xeb": { 1307 | "name": "mbind", 1308 | "number": "0xeb", 1309 | "arguments": [{"type": "void *", "arg": "addr"}, {"type": "unsigned long", "arg": "len"}, { 1310 | "type": "int", 1311 | "arg": "mode" 1312 | }, {"type": "const unsigned long *", "arg": "nodemask"}, { 1313 | "type": "unsigned long", 1314 | "arg": "maxnode" 1315 | }, {"type": "unsigned int", "arg": "flags"}] 1316 | }, 1317 | "0xec": { 1318 | "name": "get_mempolicy", 1319 | "number": "0xec", 1320 | "arguments": [{"type": "int *", "arg": "mode"}, { 1321 | "type": "unsigned long *", 1322 | "arg": "nodemask" 1323 | }, {"type": "unsigned long", "arg": "maxnode"}, {"type": "void *", "arg": "addr"}, { 1324 | "type": "unsigned long", 1325 | "arg": "flags" 1326 | }] 1327 | }, 1328 | "0xed": { 1329 | "name": "set_mempolicy", 1330 | "number": "0xed", 1331 | "arguments": [{"type": "int", "arg": "mode"}, { 1332 | "type": "const unsigned long *", 1333 | "arg": "nodemask" 1334 | }, {"type": "unsigned long", "arg": "maxnode"}] 1335 | }, 1336 | "0xee": { 1337 | "name": "migrate_pages", 1338 | "number": "0xee", 1339 | "arguments": [{"type": "int", "arg": "pid"}, { 1340 | "type": "unsigned long", 1341 | "arg": "maxnode" 1342 | }, {"type": "const unsigned long *", "arg": "old_nodes"}, {"type": "const unsigned long *", "arg": "new_nodes"}] 1343 | }, 1344 | "0xef": { 1345 | "name": "move_pages", 1346 | "number": "0xef", 1347 | "arguments": [{"type": "int", "arg": "pid"}, {"type": "unsigned long", "arg": "count"}, { 1348 | "type": "void **", 1349 | "arg": "pages" 1350 | }, {"type": "const int *", "arg": "nodes"}, {"type": "int *", "arg": "status"}, {"type": "int", "arg": "flags"}] 1351 | }, 1352 | "0xf0": { 1353 | "name": "rt_tgsigqueueinfo", 1354 | "number": "0xf0", 1355 | "arguments": [{"type": "pid_t", "arg": "tgid"}, {"type": "pid_t", "arg": "tid"}, { 1356 | "type": "int", 1357 | "arg": "sig" 1358 | }, {"type": "siginfo_t *", "arg": "info"}] 1359 | }, 1360 | "0xf1": { 1361 | "name": "perf_event_open", 1362 | "number": "0xf1", 1363 | "arguments": [{"type": "struct perf_event_attr *", "arg": "attr"}, { 1364 | "type": "pid_t", 1365 | "arg": "pid" 1366 | }, {"type": "int", "arg": "cpu"}, {"type": "int", "arg": "group_fd"}, {"type": "unsigned long", "arg": "flags"}] 1367 | }, 1368 | "0xf2": { 1369 | "name": "accept4", 1370 | "number": "0xf2", 1371 | "arguments": [{"type": "int", "arg": "sockfd"}, { 1372 | "type": "struct sockaddr *restrict", 1373 | "arg": "addr" 1374 | }, {"type": "socklen_t *restrict", "arg": "addrlen"}, {"type": "int", "arg": "flags"}] 1375 | }, 1376 | "0xf3": { 1377 | "name": "recvmmsg", 1378 | "number": "0xf3", 1379 | "arguments": [{"type": "int", "arg": "sockfd"}, { 1380 | "type": "struct mmsghdr *", 1381 | "arg": "msgvec" 1382 | }, {"type": "unsigned int", "arg": "vlen"}, {"type": "int", "arg": "flags"}, { 1383 | "type": "struct timespec *", 1384 | "arg": "timeout" 1385 | }] 1386 | }, 1387 | "0xf4": {"name": "arch_specific_syscall", "number": "0xf4", "arguments": null}, 1388 | "0x104": { 1389 | "name": "wait4", 1390 | "number": "0x104", 1391 | "arguments": [{"type": "pid_t", "arg": "pid"}, {"type": "int *", "arg": "wstatus"}, { 1392 | "type": "int", 1393 | "arg": "options" 1394 | }, {"type": "struct rusage *", "arg": "rusage"}] 1395 | }, 1396 | "0x105": {"name": "prlimit64", "number": "0x105", "arguments": null}, 1397 | "0x106": { 1398 | "name": "fanotify_init", 1399 | "number": "0x106", 1400 | "arguments": [{"type": "unsigned int", "arg": "flags"}, {"type": "unsigned int", "arg": "event_f_flags"}] 1401 | }, 1402 | "0x107": { 1403 | "name": "fanotify_mark", 1404 | "number": "0x107", 1405 | "arguments": [{"type": "int", "arg": "fanotify_fd"}, { 1406 | "type": "unsigned int", 1407 | "arg": "flags" 1408 | }, {"type": "uint64_t", "arg": "mask"}, {"type": "int", "arg": "dirfd"}, { 1409 | "type": "const char *", 1410 | "arg": "pathname" 1411 | }] 1412 | }, 1413 | "0x10a": { 1414 | "name": "clock_adjtime", 1415 | "number": "0x10a", 1416 | "arguments": [{"type": "clockid_t", "arg": "clk_id"}, {"type": "struct timex *", "arg": "buf"}] 1417 | }, 1418 | "0x10b": {"name": "syncfs", "number": "0x10b", "arguments": [{"type": "int", "arg": "fd"}]}, 1419 | "0x10c": { 1420 | "name": "setns", 1421 | "number": "0x10c", 1422 | "arguments": [{"type": "int", "arg": "fd"}, {"type": "int", "arg": "nstype"}] 1423 | }, 1424 | "0x10d": { 1425 | "name": "sendmmsg", 1426 | "number": "0x10d", 1427 | "arguments": [{"type": "int", "arg": "sockfd"}, { 1428 | "type": "struct mmsghdr *", 1429 | "arg": "msgvec" 1430 | }, {"type": "unsigned int", "arg": "vlen"}, {"type": "int", "arg": "flags"}] 1431 | }, 1432 | "0x10e": { 1433 | "name": "process_vm_readv", 1434 | "number": "0x10e", 1435 | "arguments": [{"type": "pid_t", "arg": "pid"}, { 1436 | "type": "const struct iovec *", 1437 | "arg": "local_iov" 1438 | }, {"type": "unsigned long", "arg": "liovcnt"}, { 1439 | "type": "const struct iovec *", 1440 | "arg": "remote_iov" 1441 | }, {"type": "unsigned long", "arg": "riovcnt"}, {"type": "unsigned long", "arg": "flags"}] 1442 | }, 1443 | "0x10f": { 1444 | "name": "process_vm_writev", 1445 | "number": "0x10f", 1446 | "arguments": [{"type": "pid_t", "arg": "pid"}, { 1447 | "type": "const struct iovec *", 1448 | "arg": "local_iov" 1449 | }, {"type": "unsigned long", "arg": "liovcnt"}, { 1450 | "type": "const struct iovec *", 1451 | "arg": "remote_iov" 1452 | }, {"type": "unsigned long", "arg": "riovcnt"}, {"type": "unsigned long", "arg": "flags"}] 1453 | }, 1454 | "0x110": { 1455 | "name": "kcmp", 1456 | "number": "0x110", 1457 | "arguments": [{"type": "pid_t", "arg": "pid1"}, {"type": "pid_t", "arg": "pid2"}, { 1458 | "type": "int", 1459 | "arg": "type" 1460 | }, {"type": "unsigned long", "arg": "idx1"}, {"type": "unsigned long", "arg": "idx2"}] 1461 | }, 1462 | "0x111": { 1463 | "name": "finit_module", 1464 | "number": "0x111", 1465 | "arguments": [{"type": "int", "arg": "fd"}, {"type": "const char *", "arg": "param_values"}, { 1466 | "type": "int", 1467 | "arg": "flags" 1468 | }] 1469 | }, 1470 | "0x112": { 1471 | "name": "sched_setattr", 1472 | "number": "0x112", 1473 | "arguments": [{"type": "pid_t", "arg": "pid"}, { 1474 | "type": "struct sched_attr *", 1475 | "arg": "attr" 1476 | }, {"type": "unsigned int", "arg": "flags"}] 1477 | }, 1478 | "0x113": { 1479 | "name": "sched_getattr", 1480 | "number": "0x113", 1481 | "arguments": [{"type": "pid_t", "arg": "pid"}, { 1482 | "type": "struct sched_attr *", 1483 | "arg": "attr" 1484 | }, {"type": "unsigned int", "arg": "size"}, {"type": "unsigned int", "arg": "flags"}] 1485 | }, 1486 | "0x114": { 1487 | "name": "renameat2", 1488 | "number": "0x114", 1489 | "arguments": [{"type": "int", "arg": "olddirfd"}, {"type": "const char *", "arg": "oldpath"}, { 1490 | "type": "int", 1491 | "arg": "newdirfd" 1492 | }, {"type": "const char *", "arg": "newpath"}, {"type": "unsigned int", "arg": "flags"}] 1493 | }, 1494 | "0x115": { 1495 | "name": "seccomp", 1496 | "number": "0x115", 1497 | "arguments": [{"type": "unsigned int", "arg": "operation"}, { 1498 | "type": "unsigned int", 1499 | "arg": "flags" 1500 | }, {"type": "void *", "arg": "args"}] 1501 | }, 1502 | "0x116": { 1503 | "name": "getrandom", 1504 | "number": "0x116", 1505 | "arguments": [{"type": "void *", "arg": "buf"}, {"type": "size_t", "arg": "buflen"}, { 1506 | "type": "unsigned int", 1507 | "arg": "flags" 1508 | }] 1509 | }, 1510 | "0x117": { 1511 | "name": "memfd_create", 1512 | "number": "0x117", 1513 | "arguments": [{"type": "const char *", "arg": "name"}, {"type": "unsigned int", "arg": "flags"}] 1514 | }, 1515 | "0x118": { 1516 | "name": "bpf", 1517 | "number": "0x118", 1518 | "arguments": [{"type": "int", "arg": "cmd"}, { 1519 | "type": "union bpf_attr *", 1520 | "arg": "attr" 1521 | }, {"type": "unsigned int", "arg": "size"}] 1522 | }, 1523 | "0x119": { 1524 | "name": "execveat", 1525 | "number": "0x119", 1526 | "arguments": [{"type": "int", "arg": "dirfd"}, {"type": "const char *", "arg": "pathname"}, { 1527 | "type": "int", 1528 | "arg": "flags" 1529 | }] 1530 | }, 1531 | "0x11a": {"name": "userfaultfd", "number": "0x11a", "arguments": [{"type": "int", "arg": "flags"}]}, 1532 | "0x11b": { 1533 | "name": "membarrier", 1534 | "number": "0x11b", 1535 | "arguments": [{"type": "int", "arg": "cmd"}, {"type": "unsigned int", "arg": "flags"}, { 1536 | "type": "int", 1537 | "arg": "cpu_id" 1538 | }] 1539 | }, 1540 | "0x11c": { 1541 | "name": "mlock2", 1542 | "number": "0x11c", 1543 | "arguments": [{"type": "const void *", "arg": "addr"}, { 1544 | "type": "size_t", 1545 | "arg": "len" 1546 | }, {"type": "unsigned int", "arg": "flags"}] 1547 | }, 1548 | "0x11d": { 1549 | "name": "copy_file_range", 1550 | "number": "0x11d", 1551 | "arguments": [{"type": "int", "arg": "fd_in"}, {"type": "off64_t *", "arg": "off_in"}, { 1552 | "type": "int", 1553 | "arg": "fd_out" 1554 | }, {"type": "off64_t *", "arg": "off_out"}, {"type": "size_t", "arg": "len"}, { 1555 | "type": "unsigned int", 1556 | "arg": "flags" 1557 | }] 1558 | }, 1559 | "0x11e": { 1560 | "name": "preadv2", 1561 | "number": "0x11e", 1562 | "arguments": [{"type": "int", "arg": "fd"}, {"type": "const struct iovec *", "arg": "iov"}, { 1563 | "type": "int", 1564 | "arg": "iovcnt" 1565 | }, {"type": "off_t", "arg": "offset"}, {"type": "int", "arg": "flags"}] 1566 | }, 1567 | "0x11f": { 1568 | "name": "pwritev2", 1569 | "number": "0x11f", 1570 | "arguments": [{"type": "int", "arg": "fd"}, {"type": "const struct iovec *", "arg": "iov"}, { 1571 | "type": "int", 1572 | "arg": "iovcnt" 1573 | }, {"type": "off_t", "arg": "offset"}, {"type": "int", "arg": "flags"}] 1574 | }, 1575 | "0x120": { 1576 | "name": "pkey_mprotect", 1577 | "number": "0x120", 1578 | "arguments": [{"type": "void *", "arg": "addr"}, {"type": "size_t", "arg": "len"}, { 1579 | "type": "int", 1580 | "arg": "prot" 1581 | }, {"type": "int", "arg": "pkey"}] 1582 | }, 1583 | "0x121": { 1584 | "name": "pkey_alloc", 1585 | "number": "0x121", 1586 | "arguments": [{"type": "unsigned int", "arg": "flags"}, {"type": "unsigned int", "arg": "access_rights"}] 1587 | }, 1588 | "0x122": {"name": "pkey_free", "number": "0x122", "arguments": [{"type": "int", "arg": "pkey"}]}, 1589 | "0x123": { 1590 | "name": "statx", 1591 | "number": "0x123", 1592 | "arguments": [{"type": "int", "arg": "dirfd"}, { 1593 | "type": "const char *restrict", 1594 | "arg": "pathname" 1595 | }, {"type": "int", "arg": "flags"}, {"type": "unsigned int", "arg": "mask"}, { 1596 | "type": "struct statx *restrict", 1597 | "arg": "statxbuf" 1598 | }] 1599 | }, 1600 | "0x124": {"name": "io_pgetevents", "number": "0x124", "arguments": null}, 1601 | "0x125": {"name": "rseq", "number": "0x125", "arguments": null}, 1602 | "0x126": { 1603 | "name": "kexec_file_load", 1604 | "number": "0x126", 1605 | "arguments": [{"type": "int", "arg": "kernel_fd"}, { 1606 | "type": "int", 1607 | "arg": "initrd_fd" 1608 | }, {"type": "unsigned long", "arg": "cmdline_len"}, { 1609 | "type": "const char *", 1610 | "arg": "cmdline" 1611 | }, {"type": "unsigned long", "arg": "flags"}] 1612 | }, 1613 | "0x193": {"name": "clock_gettime64", "number": "0x193", "arguments": null}, 1614 | "0x194": {"name": "clock_settime64", "number": "0x194", "arguments": null}, 1615 | "0x195": {"name": "clock_adjtime64", "number": "0x195", "arguments": null}, 1616 | "0x196": {"name": "clock_getres_time64", "number": "0x196", "arguments": null}, 1617 | "0x197": {"name": "clock_nanosleep_time64", "number": "0x197", "arguments": null}, 1618 | "0x198": {"name": "timer_gettime64", "number": "0x198", "arguments": null}, 1619 | "0x199": {"name": "timer_settime64", "number": "0x199", "arguments": null}, 1620 | "0x19a": {"name": "timerfd_gettime64", "number": "0x19a", "arguments": null}, 1621 | "0x19b": {"name": "timerfd_settime64", "number": "0x19b", "arguments": null}, 1622 | "0x19c": {"name": "utimensat_time64", "number": "0x19c", "arguments": null}, 1623 | "0x19d": {"name": "pselect6_time64", "number": "0x19d", "arguments": null}, 1624 | "0x19e": {"name": "ppoll_time64", "number": "0x19e", "arguments": null}, 1625 | "0x1a0": {"name": "io_pgetevents_time64", "number": "0x1a0", "arguments": null}, 1626 | "0x1a1": {"name": "recvmmsg_time64", "number": "0x1a1", "arguments": null}, 1627 | "0x1a2": {"name": "mq_timedsend_time64", "number": "0x1a2", "arguments": null}, 1628 | "0x1a3": {"name": "mq_timedreceive_time64", "number": "0x1a3", "arguments": null}, 1629 | "0x1a4": {"name": "semtimedop_time64", "number": "0x1a4", "arguments": null}, 1630 | "0x1a5": {"name": "rt_sigtimedwait_time64", "number": "0x1a5", "arguments": null}, 1631 | "0x1a6": {"name": "futex_time64", "number": "0x1a6", "arguments": null}, 1632 | "0x1a7": {"name": "sched_rr_get_interval_time64", "number": "0x1a7", "arguments": null}, 1633 | "0x1a8": { 1634 | "name": "pidfd_send_signal", 1635 | "number": "0x1a8", 1636 | "arguments": [{"type": "int", "arg": "pidfd"}, {"type": "int", "arg": "sig"}, { 1637 | "type": "siginfo_t *", 1638 | "arg": "info" 1639 | }, {"type": "unsigned int", "arg": "flags"}] 1640 | }, 1641 | "0x1a9": { 1642 | "name": "io_uring_setup", 1643 | "number": "0x1a9", 1644 | "arguments": [{"type": "u32", "arg": "entries"}, {"type": "struct io_uring_params *", "arg": "p"}] 1645 | }, 1646 | "0x1aa": { 1647 | "name": "io_uring_enter", 1648 | "number": "0x1aa", 1649 | "arguments": [{"type": "unsigned int", "arg": "fd"}, { 1650 | "type": "unsigned int", 1651 | "arg": "to_submit" 1652 | }, {"type": "unsigned int", "arg": "min_complete"}, { 1653 | "type": "unsigned int", 1654 | "arg": "flags" 1655 | }, {"type": "sigset_t *", "arg": "sig"}] 1656 | }, 1657 | "0x1ab": { 1658 | "name": "io_uring_register", 1659 | "number": "0x1ab", 1660 | "arguments": [{"type": "unsigned int", "arg": "fd"}, { 1661 | "type": "unsigned int", 1662 | "arg": "opcode" 1663 | }, {"type": "void *", "arg": "arg"}, {"type": "unsigned int", "arg": "nr_args"}] 1664 | }, 1665 | "0x1ac": {"name": "open_tree", "number": "0x1ac", "arguments": null}, 1666 | "0x1ad": {"name": "move_mount", "number": "0x1ad", "arguments": null}, 1667 | "0x1ae": {"name": "fsopen", "number": "0x1ae", "arguments": null}, 1668 | "0x1af": {"name": "fsconfig", "number": "0x1af", "arguments": null}, 1669 | "0x1b0": {"name": "fsmount", "number": "0x1b0", "arguments": null}, 1670 | "0x1b1": {"name": "fspick", "number": "0x1b1", "arguments": null}, 1671 | "0x1b2": { 1672 | "name": "pidfd_open", 1673 | "number": "0x1b2", 1674 | "arguments": [{"type": "pid_t", "arg": "pid"}, {"type": "unsigned int", "arg": "flags"}] 1675 | }, 1676 | "0x1b3": { 1677 | "name": "clone3", 1678 | "number": "0x1b3", 1679 | "arguments": [{"type": "struct clone_args *", "arg": "cl_args"}, {"type": "size_t", "arg": "size"}] 1680 | }, 1681 | "0x1b4": { 1682 | "name": "close_range", 1683 | "number": "0x1b4", 1684 | "arguments": [{"type": "unsigned int", "arg": "first"}, { 1685 | "type": "unsigned int", 1686 | "arg": "last" 1687 | }, {"type": "unsigned int", "arg": "flags"}] 1688 | }, 1689 | "0x1b5": { 1690 | "name": "openat2", 1691 | "number": "0x1b5", 1692 | "arguments": [{"type": "int", "arg": "dirfd"}, { 1693 | "type": "const char *", 1694 | "arg": "pathname" 1695 | }, {"type": "struct open_how *", "arg": "how"}, {"type": "size_t", "arg": "size"}] 1696 | }, 1697 | "0x1b6": { 1698 | "name": "pidfd_getfd", 1699 | "number": "0x1b6", 1700 | "arguments": [{"type": "int", "arg": "pidfd"}, {"type": "int", "arg": "targetfd"}, { 1701 | "type": "unsigned int", 1702 | "arg": "flags" 1703 | }] 1704 | }, 1705 | "0x1b7": { 1706 | "name": "faccessat2", 1707 | "number": "0x1b7", 1708 | "arguments": [{"type": "int", "arg": "dirfd"}, {"type": "const char *", "arg": "pathname"}, { 1709 | "type": "int", 1710 | "arg": "mode" 1711 | }, {"type": "int", "arg": "flags"}] 1712 | }, 1713 | "0x1b8": { 1714 | "name": "process_madvise", 1715 | "number": "0x1b8", 1716 | "arguments": [{"type": "int", "arg": "pidfd"}, { 1717 | "type": "const struct iovec *", 1718 | "arg": "iovec" 1719 | }, {"type": "size_t", "arg": "vlen"}, {"type": "int", "arg": "advice"}, { 1720 | "type": "unsigned int", 1721 | "arg": "flags" 1722 | }] 1723 | }, 1724 | "0x1b9": { 1725 | "name": "epoll_pwait2", 1726 | "number": "0x1b9", 1727 | "arguments": [{"type": "int", "arg": "epfd"}, {"type": "struct epoll_event *", "arg": "events"}, { 1728 | "type": "int", 1729 | "arg": "maxevents" 1730 | }, {"type": "const struct timespec *", "arg": "timeout"}, {"type": "const sigset_t *", "arg": "sigmask"}] 1731 | }, 1732 | "0x1ba": {"name": "mount_setattr", "number": "0x1ba", "arguments": null}, 1733 | "0x1bc": {"name": "landlock_create_ruleset", "number": "0x1bc", "arguments": null}, 1734 | "0x1bd": {"name": "landlock_add_rule", "number": "0x1bd", "arguments": null}, 1735 | "0x1be": {"name": "landlock_restrict_self", "number": "0x1be", "arguments": null}, 1736 | "0x1bf": {"name": "syscalls", "number": "0x1bf", "arguments": null} 1737 | } 1738 | -------------------------------------------------------------------------------- /data/arm64.json: -------------------------------------------------------------------------------- 1 | { 2 | "0x0": { 3 | "name": "setup", 4 | "number": "0x0" 5 | }, 6 | "0x1": { 7 | "name": "destroy", 8 | "number": "0x1" 9 | }, 10 | "0x2": { 11 | "name": "submit", 12 | "number": "0x2" 13 | }, 14 | "0x3": { 15 | "name": "cancel", 16 | "number": "0x3" 17 | }, 18 | "0x4": { 19 | "name": "getevents", 20 | "number": "0x4" 21 | }, 22 | "0x5": { 23 | "name": "setxattr", 24 | "number": "0x5" 25 | }, 26 | "0x6": { 27 | "name": "lsetxattr", 28 | "number": "0x6" 29 | }, 30 | "0x7": { 31 | "name": "fsetxattr", 32 | "number": "0x7" 33 | }, 34 | "0x8": { 35 | "name": "getxattr", 36 | "number": "0x8" 37 | }, 38 | "0x9": { 39 | "name": "lgetxattr", 40 | "number": "0x9" 41 | }, 42 | "0xa": { 43 | "name": "fgetxattr", 44 | "number": "0xa" 45 | }, 46 | "0xb": { 47 | "name": "listxattr", 48 | "number": "0xb" 49 | }, 50 | "0xc": { 51 | "name": "llistxattr", 52 | "number": "0xc" 53 | }, 54 | "0xd": { 55 | "name": "flistxattr", 56 | "number": "0xd" 57 | }, 58 | "0xe": { 59 | "name": "removexattr", 60 | "number": "0xe" 61 | }, 62 | "0xf": { 63 | "name": "lremovexattr", 64 | "number": "0xf" 65 | }, 66 | "0x10": { 67 | "name": "fremovexattr", 68 | "number": "0x10" 69 | }, 70 | "0x11": { 71 | "name": "getcwd", 72 | "number": "0x11" 73 | }, 74 | "0x12": { 75 | "name": "dcookie", 76 | "number": "0x12" 77 | }, 78 | "0x13": { 79 | "name": "eventfd2", 80 | "number": "0x13" 81 | }, 82 | "0x14": { 83 | "name": "create1", 84 | "number": "0x14" 85 | }, 86 | "0x15": { 87 | "name": "ctl", 88 | "number": "0x15" 89 | }, 90 | "0x16": { 91 | "name": "pwait", 92 | "number": "0x16" 93 | }, 94 | "0x17": { 95 | "name": "dup", 96 | "number": "0x17" 97 | }, 98 | "0x18": { 99 | "name": "dup3", 100 | "number": "0x18" 101 | }, 102 | "0x19": { 103 | "name": "fcntl", 104 | "number": "0x19" 105 | }, 106 | "0x1a": { 107 | "name": "init1", 108 | "number": "0x1a" 109 | }, 110 | "0x1b": { 111 | "name": "watch", 112 | "number": "0x1b" 113 | }, 114 | "0x1c": { 115 | "name": "watch", 116 | "number": "0x1c" 117 | }, 118 | "0x1d": { 119 | "name": "ioctl", 120 | "parameters": ["int", "int"], 121 | "number": "0x1d" 122 | }, 123 | "0x1e": { 124 | "name": "set", 125 | "number": "0x1e" 126 | }, 127 | "0x1f": { 128 | "name": "get", 129 | "number": "0x1f" 130 | }, 131 | "0x20": { 132 | "name": "flock", 133 | "number": "0x20" 134 | }, 135 | "0x21": { 136 | "name": "mknodat", 137 | "number": "0x21" 138 | }, 139 | "0x22": { 140 | "name": "mkdirat", 141 | "number": "0x22" 142 | }, 143 | "0x23": { 144 | "name": "unlinkat", 145 | "number": "0x23" 146 | }, 147 | "0x24": { 148 | "name": "symlinkat", 149 | "number": "0x24" 150 | }, 151 | "0x25": { 152 | "name": "linkat", 153 | "number": "0x25" 154 | }, 155 | "0x26": { 156 | "name": "renameat", 157 | "number": "0x26" 158 | }, 159 | "0x27": { 160 | "name": "umount2", 161 | "number": "0x27" 162 | }, 163 | "0x28": { 164 | "name": "mount", 165 | "number": "0x28" 166 | }, 167 | "0x29": { 168 | "name": "root", 169 | "number": "0x29" 170 | }, 171 | "0x2a": { 172 | "name": "nfsservctl", 173 | "number": "0x2a" 174 | }, 175 | "0x2b": { 176 | "name": "statfs", 177 | "number": "0x2b" 178 | }, 179 | "0x2c": { 180 | "name": "fstatfs", 181 | "number": "0x2c" 182 | }, 183 | "0x2d": { 184 | "name": "truncate", 185 | "number": "0x2d" 186 | }, 187 | "0x2e": { 188 | "name": "ftruncate", 189 | "number": "0x2e" 190 | }, 191 | "0x2f": { 192 | "name": "fallocate", 193 | "number": "0x2f" 194 | }, 195 | "0x30": { 196 | "name": "faccessat", 197 | "parameters": ["int", "cstring", "int", "int"], 198 | "number": "0x30" 199 | }, 200 | "0x31": { 201 | "name": "chdir", 202 | "number": "0x31" 203 | }, 204 | "0x32": { 205 | "name": "fchdir", 206 | "number": "0x32" 207 | }, 208 | "0x33": { 209 | "name": "chroot", 210 | "number": "0x33" 211 | }, 212 | "0x34": { 213 | "name": "fchmod", 214 | "number": "0x34" 215 | }, 216 | "0x35": { 217 | "name": "fchmodat", 218 | "number": "0x35" 219 | }, 220 | "0x36": { 221 | "name": "fchownat", 222 | "number": "0x36" 223 | }, 224 | "0x37": { 225 | "name": "fchown", 226 | "number": "0x37" 227 | }, 228 | "0x38": { 229 | "name": "openat", 230 | "number": "0x38", 231 | "parameters": ["int", "cstring", "int"], 232 | "return" : "int" 233 | }, 234 | "0x39": { 235 | "name": "close", 236 | "number": "0x39" 237 | }, 238 | "0x3a": { 239 | "name": "vhangup", 240 | "number": "0x3a" 241 | }, 242 | "0x3b": { 243 | "name": "pipe2", 244 | "number": "0x3b" 245 | }, 246 | "0x3c": { 247 | "name": "quotactl", 248 | "number": "0x3c" 249 | }, 250 | "0x3d": { 251 | "name": "getdents64", 252 | "return": "int", 253 | "parameters": ["uint", "*dirp", "uint"], 254 | "number": "0x3d" 255 | }, 256 | "0x3e": { 257 | "name": "lseek", 258 | "number": "0x3e" 259 | }, 260 | "0x3f": { 261 | "name": "read", 262 | "number": "0x3f" 263 | }, 264 | "0x40": { 265 | "name": "write", 266 | "number": "0x40" 267 | }, 268 | "0x41": { 269 | "name": "readv", 270 | "number": "0x41" 271 | }, 272 | "0x42": { 273 | "name": "writev", 274 | "number": "0x42" 275 | }, 276 | "0x43": { 277 | "name": "pread64", 278 | "number": "0x43" 279 | }, 280 | "0x44": { 281 | "name": "pwrite64", 282 | "number": "0x44" 283 | }, 284 | "0x45": { 285 | "name": "preadv", 286 | "number": "0x45" 287 | }, 288 | "0x46": { 289 | "name": "pwritev", 290 | "number": "0x46" 291 | }, 292 | "0x47": { 293 | "name": "sendfile", 294 | "number": "0x47" 295 | }, 296 | "0x48": { 297 | "name": "pselect6", 298 | "number": "0x48" 299 | }, 300 | "0x49": { 301 | "name": "ppoll", 302 | "number": "0x49" 303 | }, 304 | "0x4a": { 305 | "name": "signalfd4", 306 | "number": "0x4a" 307 | }, 308 | "0x4b": { 309 | "name": "vmsplice", 310 | "number": "0x4b" 311 | }, 312 | "0x4c": { 313 | "name": "splice", 314 | "number": "0x4c" 315 | }, 316 | "0x4d": { 317 | "name": "tee", 318 | "number": "0x4d" 319 | }, 320 | "0x4e": { 321 | "name": "readlinkat", 322 | "number": "0x4e" 323 | }, 324 | "0x4f": { 325 | "name": "fstatat", 326 | "number": "0x4f" 327 | }, 328 | "0x50": { 329 | "name": "fstat", 330 | "number": "0x50" 331 | }, 332 | "0x51": { 333 | "name": "sync", 334 | "number": "0x51" 335 | }, 336 | "0x52": { 337 | "name": "fsync", 338 | "number": "0x52" 339 | }, 340 | "0x53": { 341 | "name": "fdatasync", 342 | "number": "0x53" 343 | }, 344 | "0x54": { 345 | "name": "range", 346 | "number": "0x54" 347 | }, 348 | "0x55": { 349 | "name": "create", 350 | "number": "0x55" 351 | }, 352 | "0x56": { 353 | "name": "settime", 354 | "number": "0x56" 355 | }, 356 | "0x57": { 357 | "name": "gettime", 358 | "number": "0x57" 359 | }, 360 | "0x58": { 361 | "name": "utimensat", 362 | "number": "0x58" 363 | }, 364 | "0x59": { 365 | "name": "acct", 366 | "number": "0x59" 367 | }, 368 | "0x5a": { 369 | "name": "capget", 370 | "number": "0x5a" 371 | }, 372 | "0x5b": { 373 | "name": "capset", 374 | "number": "0x5b" 375 | }, 376 | "0x5c": { 377 | "name": "personality", 378 | "number": "0x5c" 379 | }, 380 | "0x5d": { 381 | "name": "exit", 382 | "number": "0x5d" 383 | }, 384 | "0x5e": { 385 | "name": "group", 386 | "number": "0x5e" 387 | }, 388 | "0x5f": { 389 | "name": "waitid", 390 | "number": "0x5f" 391 | }, 392 | "0x60": { 393 | "name": "address", 394 | "number": "0x60" 395 | }, 396 | "0x61": { 397 | "name": "unshare", 398 | "number": "0x61" 399 | }, 400 | "0x62": { 401 | "name": "futex", 402 | "number": "0x62" 403 | }, 404 | "0x63": { 405 | "name": "list", 406 | "number": "0x63" 407 | }, 408 | "0x64": { 409 | "name": "list", 410 | "number": "0x64" 411 | }, 412 | "0x65": { 413 | "name": "nanosleep", 414 | "number": "0x65" 415 | }, 416 | "0x66": { 417 | "name": "getitimer", 418 | "number": "0x66" 419 | }, 420 | "0x67": { 421 | "name": "setitimer", 422 | "number": "0x67" 423 | }, 424 | "0x68": { 425 | "name": "load", 426 | "number": "0x68" 427 | }, 428 | "0x69": { 429 | "name": "module", 430 | "number": "0x69" 431 | }, 432 | "0x6a": { 433 | "name": "module", 434 | "number": "0x6a" 435 | }, 436 | "0x6b": { 437 | "name": "create", 438 | "number": "0x6b" 439 | }, 440 | "0x6c": { 441 | "name": "gettime", 442 | "number": "0x6c" 443 | }, 444 | "0x6d": { 445 | "name": "getoverrun", 446 | "number": "0x6d" 447 | }, 448 | "0x6e": { 449 | "name": "settime", 450 | "number": "0x6e" 451 | }, 452 | "0x6f": { 453 | "name": "delete", 454 | "number": "0x6f" 455 | }, 456 | "0x70": { 457 | "name": "settime", 458 | "number": "0x70" 459 | }, 460 | "0x71": { 461 | "name": "gettime", 462 | "number": "0x71" 463 | }, 464 | "0x72": { 465 | "name": "getres", 466 | "number": "0x72" 467 | }, 468 | "0x73": { 469 | "name": "nanosleep", 470 | "number": "0x73" 471 | }, 472 | "0x74": { 473 | "name": "syslog", 474 | "number": "0x74" 475 | }, 476 | "0x75": { 477 | "name": "ptrace", 478 | "number": "0x75" 479 | }, 480 | "0x76": { 481 | "name": "setparam", 482 | "number": "0x76" 483 | }, 484 | "0x77": { 485 | "name": "setscheduler", 486 | "number": "0x77" 487 | }, 488 | "0x78": { 489 | "name": "getscheduler", 490 | "number": "0x78" 491 | }, 492 | "0x79": { 493 | "name": "getparam", 494 | "number": "0x79" 495 | }, 496 | "0x7a": { 497 | "name": "setaffinity", 498 | "number": "0x7a" 499 | }, 500 | "0x7b": { 501 | "name": "getaffinity", 502 | "number": "0x7b" 503 | }, 504 | "0x7c": { 505 | "name": "yield", 506 | "number": "0x7c" 507 | }, 508 | "0x7d": { 509 | "name": "max", 510 | "number": "0x7d" 511 | }, 512 | "0x7e": { 513 | "name": "min", 514 | "number": "0x7e" 515 | }, 516 | "0x7f": { 517 | "name": "interval", 518 | "number": "0x7f" 519 | }, 520 | "0x80": { 521 | "name": "syscall", 522 | "number": "0x80" 523 | }, 524 | "0x81": { 525 | "name": "kill", 526 | "number": "0x81" 527 | }, 528 | "0x82": { 529 | "name": "tkill", 530 | "number": "0x82" 531 | }, 532 | "0x83": { 533 | "name": "tgkill", 534 | "number": "0x83" 535 | }, 536 | "0x84": { 537 | "name": "sigaltstack", 538 | "number": "0x84" 539 | }, 540 | "0x85": { 541 | "name": "sigsuspend", 542 | "number": "0x85" 543 | }, 544 | "0x86": { 545 | "name": "sigaction", 546 | "number": "0x86" 547 | }, 548 | "0x87": { 549 | "name": "sigprocmask", 550 | "number": "0x87" 551 | }, 552 | "0x88": { 553 | "name": "sigpending", 554 | "number": "0x88" 555 | }, 556 | "0x89": { 557 | "name": "sigtimedwait", 558 | "number": "0x89" 559 | }, 560 | "0x8a": { 561 | "name": "sigqueueinfo", 562 | "number": "0x8a" 563 | }, 564 | "0x8b": { 565 | "name": "sigreturn", 566 | "number": "0x8b" 567 | }, 568 | "0x8c": { 569 | "name": "setpriority", 570 | "number": "0x8c" 571 | }, 572 | "0x8d": { 573 | "name": "getpriority", 574 | "number": "0x8d" 575 | }, 576 | "0x8e": { 577 | "name": "reboot", 578 | "number": "0x8e" 579 | }, 580 | "0x8f": { 581 | "name": "setregid", 582 | "number": "0x8f" 583 | }, 584 | "0x90": { 585 | "name": "setgid", 586 | "number": "0x90" 587 | }, 588 | "0x91": { 589 | "name": "setreuid", 590 | "number": "0x91" 591 | }, 592 | "0x92": { 593 | "name": "setuid", 594 | "number": "0x92" 595 | }, 596 | "0x93": { 597 | "name": "setresuid", 598 | "number": "0x93" 599 | }, 600 | "0x94": { 601 | "name": "getresuid", 602 | "number": "0x94" 603 | }, 604 | "0x95": { 605 | "name": "setresgid", 606 | "number": "0x95" 607 | }, 608 | "0x96": { 609 | "name": "getresgid", 610 | "number": "0x96" 611 | }, 612 | "0x97": { 613 | "name": "setfsuid", 614 | "number": "0x97" 615 | }, 616 | "0x98": { 617 | "name": "setfsgid", 618 | "number": "0x98" 619 | }, 620 | "0x99": { 621 | "name": "times", 622 | "number": "0x99" 623 | }, 624 | "0x9a": { 625 | "name": "setpgid", 626 | "number": "0x9a" 627 | }, 628 | "0x9b": { 629 | "name": "getpgid", 630 | "number": "0x9b" 631 | }, 632 | "0x9c": { 633 | "name": "getsid", 634 | "number": "0x9c" 635 | }, 636 | "0x9d": { 637 | "name": "setsid", 638 | "number": "0x9d" 639 | }, 640 | "0x9e": { 641 | "name": "getgroups", 642 | "number": "0x9e" 643 | }, 644 | "0x9f": { 645 | "name": "setgroups", 646 | "number": "0x9f" 647 | }, 648 | "0xa0": { 649 | "name": "uname", 650 | "number": "0xa0" 651 | }, 652 | "0xa1": { 653 | "name": "sethostname", 654 | "number": "0xa1" 655 | }, 656 | "0xa2": { 657 | "name": "setdomainname", 658 | "number": "0xa2" 659 | }, 660 | "0xa3": { 661 | "name": "getrlimit", 662 | "number": "0xa3" 663 | }, 664 | "0xa4": { 665 | "name": "setrlimit", 666 | "number": "0xa4" 667 | }, 668 | "0xa5": { 669 | "name": "getrusage", 670 | "number": "0xa5" 671 | }, 672 | "0xa6": { 673 | "name": "umask", 674 | "number": "0xa6" 675 | }, 676 | "0xa7": { 677 | "name": "prctl", 678 | "number": "0xa7" 679 | }, 680 | "0xa8": { 681 | "name": "getcpu", 682 | "number": "0xa8" 683 | }, 684 | "0xa9": { 685 | "name": "gettimeofday", 686 | "number": "0xa9" 687 | }, 688 | "0xaa": { 689 | "name": "settimeofday", 690 | "number": "0xaa" 691 | }, 692 | "0xab": { 693 | "name": "adjtimex", 694 | "number": "0xab" 695 | }, 696 | "0xac": { 697 | "name": "getpid", 698 | "number": "0xac" 699 | }, 700 | "0xad": { 701 | "name": "getppid", 702 | "number": "0xad" 703 | }, 704 | "0xae": { 705 | "name": "getuid", 706 | "number": "0xae" 707 | }, 708 | "0xaf": { 709 | "name": "geteuid", 710 | "number": "0xaf" 711 | }, 712 | "0xb0": { 713 | "name": "getgid", 714 | "number": "0xb0" 715 | }, 716 | "0xb1": { 717 | "name": "getegid", 718 | "number": "0xb1" 719 | }, 720 | "0xb2": { 721 | "name": "gettid", 722 | "number": "0xb2" 723 | }, 724 | "0xb3": { 725 | "name": "sysinfo", 726 | "number": "0xb3" 727 | }, 728 | "0xb4": { 729 | "name": "open", 730 | "number": "0xb4", 731 | "return": "int", 732 | "parameters": ["cstring", "int"] 733 | }, 734 | "0xb5": { 735 | "name": "unlink", 736 | "number": "0xb5" 737 | }, 738 | "0xb6": { 739 | "name": "timedsend", 740 | "number": "0xb6" 741 | }, 742 | "0xb7": { 743 | "name": "timedreceive", 744 | "number": "0xb7" 745 | }, 746 | "0xb8": { 747 | "name": "notify", 748 | "number": "0xb8" 749 | }, 750 | "0xb9": { 751 | "name": "getsetattr", 752 | "number": "0xb9" 753 | }, 754 | "0xba": { 755 | "name": "msgget", 756 | "number": "0xba" 757 | }, 758 | "0xbb": { 759 | "name": "msgctl", 760 | "number": "0xbb" 761 | }, 762 | "0xbc": { 763 | "name": "msgrcv", 764 | "number": "0xbc" 765 | }, 766 | "0xbd": { 767 | "name": "msgsnd", 768 | "number": "0xbd" 769 | }, 770 | "0xbe": { 771 | "name": "semget", 772 | "number": "0xbe" 773 | }, 774 | "0xbf": { 775 | "name": "semctl", 776 | "number": "0xbf" 777 | }, 778 | "0xc0": { 779 | "name": "semtimedop", 780 | "number": "0xc0" 781 | }, 782 | "0xc1": { 783 | "name": "semop", 784 | "number": "0xc1" 785 | }, 786 | "0xc2": { 787 | "name": "shmget", 788 | "number": "0xc2" 789 | }, 790 | "0xc3": { 791 | "name": "shmctl", 792 | "number": "0xc3" 793 | }, 794 | "0xc4": { 795 | "name": "shmat", 796 | "number": "0xc4" 797 | }, 798 | "0xc5": { 799 | "name": "shmdt", 800 | "number": "0xc5" 801 | }, 802 | "0xc6": { 803 | "name": "socket", 804 | "number": "0xc6" 805 | }, 806 | "0xc7": { 807 | "name": "socketpair", 808 | "number": "0xc7" 809 | }, 810 | "0xc8": { 811 | "name": "bind", 812 | "number": "0xc8" 813 | }, 814 | "0xc9": { 815 | "name": "listen", 816 | "number": "0xc9" 817 | }, 818 | "0xca": { 819 | "name": "accept", 820 | "number": "0xca" 821 | }, 822 | "0xcb": { 823 | "name": "connect", 824 | "number": "0xcb" 825 | }, 826 | "0xcc": { 827 | "name": "getsockname", 828 | "number": "0xcc" 829 | }, 830 | "0xcd": { 831 | "name": "getpeername", 832 | "number": "0xcd" 833 | }, 834 | "0xce": { 835 | "name": "sendto", 836 | "number": "0xce" 837 | }, 838 | "0xcf": { 839 | "name": "recvfrom", 840 | "number": "0xcf" 841 | }, 842 | "0xd0": { 843 | "name": "setsockopt", 844 | "number": "0xd0" 845 | }, 846 | "0xd1": { 847 | "name": "getsockopt", 848 | "number": "0xd1" 849 | }, 850 | "0xd2": { 851 | "name": "shutdown", 852 | "number": "0xd2" 853 | }, 854 | "0xd3": { 855 | "name": "sendmsg", 856 | "number": "0xd3" 857 | }, 858 | "0xd4": { 859 | "name": "recvmsg", 860 | "number": "0xd4" 861 | }, 862 | "0xd5": { 863 | "name": "readahead", 864 | "number": "0xd5" 865 | }, 866 | "0xd6": { 867 | "name": "brk", 868 | "number": "0xd6" 869 | }, 870 | "0xd7": { 871 | "name": "munmap", 872 | "number": "0xd7" 873 | }, 874 | "0xd8": { 875 | "name": "mremap", 876 | "number": "0xd8" 877 | }, 878 | "0xd9": { 879 | "name": "key", 880 | "number": "0xd9" 881 | }, 882 | "0xda": { 883 | "name": "key", 884 | "number": "0xda" 885 | }, 886 | "0xdb": { 887 | "name": "keyctl", 888 | "number": "0xdb" 889 | }, 890 | "0xdc": { 891 | "name": "clone", 892 | "number": "0xdc" 893 | }, 894 | "0xdd": { 895 | "name": "execve", 896 | "number": "0xdd" 897 | }, 898 | "0xde": { 899 | "name": "mmap", 900 | "number": "0xde" 901 | }, 902 | "0xdf": { 903 | "name": "fadvise64", 904 | "number": "0xdf" 905 | }, 906 | "0xe0": { 907 | "name": "swapon", 908 | "number": "0xe0" 909 | }, 910 | "0xe1": { 911 | "name": "swapoff", 912 | "number": "0xe1" 913 | }, 914 | "0xe2": { 915 | "name": "mprotect", 916 | "number": "0xe2" 917 | }, 918 | "0xe3": { 919 | "name": "msync", 920 | "number": "0xe3" 921 | }, 922 | "0xe4": { 923 | "name": "mlock", 924 | "number": "0xe4" 925 | }, 926 | "0xe5": { 927 | "name": "munlock", 928 | "number": "0xe5" 929 | }, 930 | "0xe6": { 931 | "name": "mlockall", 932 | "number": "0xe6" 933 | }, 934 | "0xe7": { 935 | "name": "munlockall", 936 | "number": "0xe7" 937 | }, 938 | "0xe8": { 939 | "name": "mincore", 940 | "number": "0xe8" 941 | }, 942 | "0xe9": { 943 | "name": "madvise", 944 | "number": "0xe9" 945 | }, 946 | "0xea": { 947 | "name": "pages", 948 | "number": "0xea" 949 | }, 950 | "0xeb": { 951 | "name": "mbind", 952 | "number": "0xeb" 953 | }, 954 | "0xec": { 955 | "name": "mempolicy", 956 | "number": "0xec" 957 | }, 958 | "0xed": { 959 | "name": "mempolicy", 960 | "number": "0xed" 961 | }, 962 | "0xee": { 963 | "name": "pages", 964 | "number": "0xee" 965 | }, 966 | "0xef": { 967 | "name": "pages", 968 | "number": "0xef" 969 | }, 970 | "0xf0": { 971 | "name": "tgsigqueueinfo", 972 | "number": "0xf0" 973 | }, 974 | "0xf1": { 975 | "name": "open", 976 | "number": "0xf1" 977 | }, 978 | "0xf2": { 979 | "name": "accept4", 980 | "number": "0xf2" 981 | }, 982 | "0xf3": { 983 | "name": "recvmmsg", 984 | "number": "0xf3" 985 | }, 986 | "0xf4": { 987 | "name": "syscall", 988 | "number": "0xf4" 989 | }, 990 | "0x104": { 991 | "name": "wait4", 992 | "number": "0x104" 993 | }, 994 | "0x105": { 995 | "name": "prlimit64", 996 | "number": "0x105" 997 | }, 998 | "0x106": { 999 | "name": "init", 1000 | "number": "0x106" 1001 | }, 1002 | "0x107": { 1003 | "name": "mark", 1004 | "number": "0x107" 1005 | }, 1006 | "0x108": { 1007 | "name": "at ", 1008 | "number": "0x108" 1009 | }, 1010 | "0x109": { 1011 | "name": "at ", 1012 | "number": "0x109" 1013 | }, 1014 | "0x10a": { 1015 | "name": "adjtime", 1016 | "number": "0x10a" 1017 | }, 1018 | "0x10b": { 1019 | "name": "syncfs", 1020 | "number": "0x10b" 1021 | }, 1022 | "0x10c": { 1023 | "name": "setns", 1024 | "number": "0x10c" 1025 | }, 1026 | "0x10d": { 1027 | "name": "sendmmsg", 1028 | "number": "0x10d" 1029 | }, 1030 | "0x10e": { 1031 | "name": "readv", 1032 | "number": "0x10e" 1033 | }, 1034 | "0x10f": { 1035 | "name": "writev", 1036 | "number": "0x10f" 1037 | }, 1038 | "0x110": { 1039 | "name": "kcmp", 1040 | "number": "0x110" 1041 | }, 1042 | "0x111": { 1043 | "name": "module", 1044 | "number": "0x111" 1045 | }, 1046 | "0x112": { 1047 | "name": "setattr", 1048 | "number": "0x112" 1049 | }, 1050 | "0x113": { 1051 | "name": "getattr", 1052 | "number": "0x113" 1053 | }, 1054 | "0x114": { 1055 | "name": "renameat2", 1056 | "number": "0x114" 1057 | }, 1058 | "0x115": { 1059 | "name": "seccomp", 1060 | "number": "0x115" 1061 | }, 1062 | "0x116": { 1063 | "name": "getrandom", 1064 | "number": "0x116" 1065 | }, 1066 | "0x117": { 1067 | "name": "create", 1068 | "number": "0x117" 1069 | }, 1070 | "0x118": { 1071 | "name": "bpf", 1072 | "number": "0x118" 1073 | }, 1074 | "0x119": { 1075 | "name": "execveat", 1076 | "number": "0x119" 1077 | }, 1078 | "0x11a": { 1079 | "name": "userfaultfd", 1080 | "number": "0x11a" 1081 | }, 1082 | "0x11b": { 1083 | "name": "membarrier", 1084 | "number": "0x11b" 1085 | }, 1086 | "0x11c": { 1087 | "name": "mlock2", 1088 | "number": "0x11c" 1089 | }, 1090 | "0x11d": { 1091 | "name": "range", 1092 | "number": "0x11d" 1093 | }, 1094 | "0x11e": { 1095 | "name": "preadv2", 1096 | "number": "0x11e" 1097 | }, 1098 | "0x11f": { 1099 | "name": "pwritev2", 1100 | "number": "0x11f" 1101 | }, 1102 | "0x120": { 1103 | "name": "mprotect", 1104 | "number": "0x120" 1105 | }, 1106 | "0x121": { 1107 | "name": "alloc", 1108 | "number": "0x121" 1109 | }, 1110 | "0x122": { 1111 | "name": "free", 1112 | "number": "0x122" 1113 | }, 1114 | "0x123": { 1115 | "name": "statx", 1116 | "number": "0x123" 1117 | }, 1118 | "0x124": { 1119 | "name": "pgetevents", 1120 | "number": "0x124" 1121 | }, 1122 | "0x125": { 1123 | "name": "rseq", 1124 | "number": "0x125" 1125 | }, 1126 | "0x126": { 1127 | "name": "load", 1128 | "number": "0x126" 1129 | }, 1130 | "0x193": { 1131 | "name": "gettime64", 1132 | "number": "0x193" 1133 | }, 1134 | "0x194": { 1135 | "name": "settime64", 1136 | "number": "0x194" 1137 | }, 1138 | "0x195": { 1139 | "name": "adjtime64", 1140 | "number": "0x195" 1141 | }, 1142 | "0x196": { 1143 | "name": "time64", 1144 | "number": "0x196" 1145 | }, 1146 | "0x197": { 1147 | "name": "time64", 1148 | "number": "0x197" 1149 | }, 1150 | "0x198": { 1151 | "name": "gettime64", 1152 | "number": "0x198" 1153 | }, 1154 | "0x199": { 1155 | "name": "settime64", 1156 | "number": "0x199" 1157 | }, 1158 | "0x19a": { 1159 | "name": "gettime64", 1160 | "number": "0x19a" 1161 | }, 1162 | "0x19b": { 1163 | "name": "settime64", 1164 | "number": "0x19b" 1165 | }, 1166 | "0x19c": { 1167 | "name": "time64", 1168 | "number": "0x19c" 1169 | }, 1170 | "0x19d": { 1171 | "name": "time64", 1172 | "number": "0x19d" 1173 | }, 1174 | "0x19e": { 1175 | "name": "time64", 1176 | "number": "0x19e" 1177 | }, 1178 | "0x1a0": { 1179 | "name": "time64", 1180 | "number": "0x1a0" 1181 | }, 1182 | "0x1a1": { 1183 | "name": "time64", 1184 | "number": "0x1a1" 1185 | }, 1186 | "0x1a2": { 1187 | "name": "time64", 1188 | "number": "0x1a2" 1189 | }, 1190 | "0x1a3": { 1191 | "name": "time64", 1192 | "number": "0x1a3" 1193 | }, 1194 | "0x1a4": { 1195 | "name": "time64", 1196 | "number": "0x1a4" 1197 | }, 1198 | "0x1a5": { 1199 | "name": "time64", 1200 | "number": "0x1a5" 1201 | }, 1202 | "0x1a6": { 1203 | "name": "time64", 1204 | "number": "0x1a6" 1205 | }, 1206 | "0x1a7": { 1207 | "name": "time64", 1208 | "number": "0x1a7" 1209 | }, 1210 | "0x1a8": { 1211 | "name": "signal", 1212 | "number": "0x1a8" 1213 | }, 1214 | "0x1a9": { 1215 | "name": "setup", 1216 | "number": "0x1a9" 1217 | }, 1218 | "0x1aa": { 1219 | "name": "enter", 1220 | "number": "0x1aa" 1221 | }, 1222 | "0x1ab": { 1223 | "name": "register", 1224 | "number": "0x1ab" 1225 | }, 1226 | "0x1ac": { 1227 | "name": "tree", 1228 | "number": "0x1ac" 1229 | }, 1230 | "0x1ad": { 1231 | "name": "mount", 1232 | "number": "0x1ad" 1233 | }, 1234 | "0x1ae": { 1235 | "name": "fsopen", 1236 | "number": "0x1ae" 1237 | }, 1238 | "0x1af": { 1239 | "name": "fsconfig", 1240 | "number": "0x1af" 1241 | }, 1242 | "0x1b0": { 1243 | "name": "fsmount", 1244 | "number": "0x1b0" 1245 | }, 1246 | "0x1b1": { 1247 | "name": "fspick", 1248 | "number": "0x1b1" 1249 | }, 1250 | "0x1b2": { 1251 | "name": "open", 1252 | "number": "0x1b2" 1253 | }, 1254 | "0x1b3": { 1255 | "name": "clone3", 1256 | "number": "0x1b3" 1257 | }, 1258 | "0x1b4": { 1259 | "name": "range", 1260 | "number": "0x1b4" 1261 | }, 1262 | "0x1b5": { 1263 | "name": "openat2", 1264 | "number": "0x1b5" 1265 | }, 1266 | "0x1b6": { 1267 | "name": "getfd", 1268 | "number": "0x1b6" 1269 | }, 1270 | "0x1b7": { 1271 | "name": "faccessat2", 1272 | "parameters": ["int", "cstring", "int", "int"], 1273 | "number": "0x1b7" 1274 | }, 1275 | "0x1b8": { 1276 | "name": "madvise", 1277 | "number": "0x1b8" 1278 | }, 1279 | "0x1b9": { 1280 | "name": "pwait2", 1281 | "number": "0x1b9" 1282 | }, 1283 | "0x1ba": { 1284 | "name": "setattr", 1285 | "number": "0x1ba" 1286 | }, 1287 | "0x1bc": { 1288 | "name": "ruleset", 1289 | "number": "0x1bc" 1290 | }, 1291 | "0x1bd": { 1292 | "name": "rule", 1293 | "number": "0x1bd" 1294 | }, 1295 | "0x1be": { 1296 | "name": "self", 1297 | "number": "0x1be" 1298 | }, 1299 | "0x1bf": { 1300 | "name": "syscalls", 1301 | "number": "0x1bf" 1302 | } 1303 | } 1304 | -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | import json 2 | import frida 3 | import signal 4 | import sys 5 | 6 | events = [] 7 | 8 | 9 | def signal_handler(sig, frame): 10 | buffer = json.dumps({ 11 | "metadata": { 12 | "application": "TODO", 13 | "timeStarted": 1, 14 | "timeEnded": 5, 15 | }, 16 | "events": events 17 | }) 18 | with open('/tmp/x.json', 'w') as fd: 19 | fd.write(buffer) 20 | sys.exit(0) 21 | 22 | # TODO: Add argument parser 23 | # TODO: Syscall data should be passed to our frida script. RPC || Modify as required 24 | if __name__ == '__main__': 25 | appname = 'your.app.name.here' # Can't push with this naturally 26 | agentPath = './agents/arm64.default.js' 27 | syscallData = './data/arm64.json' 28 | styledOutput = True 29 | 30 | with open(agentPath, 'r') as fd: 31 | agentCode = fd.read() 32 | with open(syscallData, 'r') as fd: 33 | syscalls = json.load(fd) 34 | 35 | 36 | def onMessage(message, payload): 37 | syscallContext = message['payload'] 38 | events.append(syscallContext) 39 | 40 | 41 | device = frida.get_usb_device() 42 | pid = device.spawn([appname]) # TODO: Modify my initial script to support attaching and spawning 43 | session = device.attach(pid) 44 | script = session.create_script(agentCode) 45 | script.on("message", onMessage) 46 | script.load() 47 | device.resume(pid) 48 | 49 | signal.signal(signal.SIGINT, signal_handler) 50 | print('Control+C when your done, or the app crashes (TODO)') 51 | 52 | while 1==1: 53 | input() -------------------------------------------------------------------------------- /parseSyscallNumbers.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import json 3 | 4 | if __name__ == '__main__': 5 | with open('./syscalls.txt') as fd: 6 | syscalls = fd.readlines() 7 | 8 | syscallMap = {} 9 | for line in syscalls: 10 | if "#define" in line: 11 | start = line.rfind('_') 12 | end = line.rfind(' ') 13 | syscall = line[start + 1:end] 14 | number = (line[end:]) 15 | if len(syscall) > 0 and len(number) > 0 and syscall != 'SYSCALL(x,': 16 | number = hex(int(number)) 17 | syscallMap[number] = { 18 | "name": syscall, 19 | "number": number 20 | } 21 | 22 | print(json.dumps(syscallMap)) -------------------------------------------------------------------------------- /reporter.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import json 4 | 5 | outFile = '/tmp/x.html' 6 | inFile = '/tmp/x.json' 7 | mode = 'html' 8 | regex = '.*' # TODO(connordp): Actually implement this. 9 | htmlBase = './table.html' 10 | 11 | 12 | if __name__ == '__main__': 13 | 14 | with open(inFile, 'r') as fd: 15 | obj = json.load(fd) 16 | with open(htmlBase, 'r') as fd: 17 | html = fd.read() 18 | 19 | # TODO(connordp): Template engines exist 20 | 21 | data = '' 22 | events = obj['events'] 23 | i = 1 24 | for event in events: 25 | # Only parse events containg the keyword open|access 26 | onEnter = event['onEnter'] 27 | onExit = event['onExit'] 28 | if onEnter.get('syscall') is not None: # When syscall isn't defined, onEnter == {}. Bug? 29 | syscall = onEnter['syscall']['name'] 30 | 31 | eventData = "
ID | 41 |TID | 42 |Syscall | 43 |Parameters | 44 |Return Value | 45 | 46 |
---|