-
Notifications
You must be signed in to change notification settings - Fork 6
TritonDataCenter/ctf2json
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
ctf2json is a tool designed to gather CTF data embedded in binaries and export it in a standard JSON format for consumers such as node-ctype. ctf2json should build on any platform with versions of SunOS libctf and libavl. It has been tested on illumos, specifically Joyent SmartOS. It has been tested with GNU make and SUNWmake, Sun's SFW gcc (3.4.3), gcc 4.5.2, and the patched Sun Studio 12 for OpenSolaris. ctf2json is licensed under the CDDL. Please check individual files for full copyright information. To build with gcc use: make To build with Sun Studio use: make sunwcc To check style and lint use: make check Full documentation is provided in the manual page. To read it from the root of the repository run: man -M man/ ctf2json Installing: This is a manual process. Put the ctf2json binary wherever you want. Put the manual page somewhere in section 1 in your MANPATH. Sample invocation: ./ctf2json -f /lib/libc.so -t psinfo_t { "metadata": { "ctf2json_version": "1.0", "created_at": 1316561589, "derived_from": "/lib/libc.so", "ctf_version": 2, "requested_types": [ "psinfo_t" ] }, "data": [ { "name": "int", "integer": { "length": 4, "signed": true } }, { "name": "char", "integer": { "length": 1, "signed": true } }, { "name": "unsigned short", "integer": { "length": 2, "signed": false } }, { "name": "long", "integer": { "length": 4, "signed": true } }, { "name": "unsigned", "integer": { "length": 4, "signed": false } }, { "name": "size_t", "typedef": "unsigned" }, { "name": "unsigned long", "integer": { "length": 4, "signed": false } }, { "name": "time_t", "typedef": "long" }, { "name": "struct timespec", "struct": [ { "name": "tv_sec", "type": "time_t" }, { "name": "tv_nsec", "type": "long" } ] }, { "name": "zoneid_t", "typedef": "long" }, { "name": "taskid_t", "typedef": "long" }, { "name": "dev_t", "typedef": "unsigned long" }, { "name": "uid_t", "typedef": "unsigned" }, { "name": "gid_t", "typedef": "unsigned" }, { "name": "timestruc_t", "typedef": "struct timespec" }, { "name": "short", "integer": { "length": 2, "signed": true } }, { "name": "projid_t", "typedef": "long" }, { "name": "ushort_t", "typedef": "unsigned short" }, { "name": "poolid_t", "typedef": "long" }, { "name": "uintptr_t", "typedef": "unsigned" }, { "name": "id_t", "typedef": "long" }, { "name": "pid_t", "typedef": "long" }, { "name": "processorid_t", "typedef": "int" }, { "name": "psetid_t", "typedef": "int" }, { "name": "struct lwpsinfo", "struct": [ { "name": "pr_flag", "type": "int" }, { "name": "pr_lwpid", "type": "id_t" }, { "name": "pr_addr", "type": "uintptr_t" }, { "name": "pr_wchan", "type": "uintptr_t" }, { "name": "pr_stype", "type": "char" }, { "name": "pr_state", "type": "char" }, { "name": "pr_sname", "type": "char" }, { "name": "pr_nice", "type": "char" }, { "name": "pr_syscall", "type": "short" }, { "name": "pr_oldpri", "type": "char" }, { "name": "pr_cpu", "type": "char" }, { "name": "pr_pri", "type": "int" }, { "name": "pr_pctcpu", "type": "ushort_t" }, { "name": "pr_pad", "type": "ushort_t" }, { "name": "pr_start", "type": "timestruc_t" }, { "name": "pr_time", "type": "timestruc_t" }, { "name": "pr_clname", "type": "char [8]" }, { "name": "pr_name", "type": "char [16]" }, { "name": "pr_onpro", "type": "processorid_t" }, { "name": "pr_bindpro", "type": "processorid_t" }, { "name": "pr_bindpset", "type": "psetid_t" }, { "name": "pr_lgrp", "type": "int" }, { "name": "pr_filler", "type": "int [4]" } ] }, { "name": "lwpsinfo_t", "typedef": "struct lwpsinfo" }, { "name": "struct psinfo", "struct": [ { "name": "pr_flag", "type": "int" }, { "name": "pr_nlwp", "type": "int" }, { "name": "pr_pid", "type": "pid_t" }, { "name": "pr_ppid", "type": "pid_t" }, { "name": "pr_pgid", "type": "pid_t" }, { "name": "pr_sid", "type": "pid_t" }, { "name": "pr_uid", "type": "uid_t" }, { "name": "pr_euid", "type": "uid_t" }, { "name": "pr_gid", "type": "gid_t" }, { "name": "pr_egid", "type": "gid_t" }, { "name": "pr_addr", "type": "uintptr_t" }, { "name": "pr_size", "type": "size_t" }, { "name": "pr_rssize", "type": "size_t" }, { "name": "pr_pad1", "type": "size_t" }, { "name": "pr_ttydev", "type": "dev_t" }, { "name": "pr_pctcpu", "type": "ushort_t" }, { "name": "pr_pctmem", "type": "ushort_t" }, { "name": "pr_start", "type": "timestruc_t" }, { "name": "pr_time", "type": "timestruc_t" }, { "name": "pr_ctime", "type": "timestruc_t" }, { "name": "pr_fname", "type": "char [16]" }, { "name": "pr_psargs", "type": "char [80]" }, { "name": "pr_wstat", "type": "int" }, { "name": "pr_argc", "type": "int" }, { "name": "pr_argv", "type": "uintptr_t" }, { "name": "pr_envp", "type": "uintptr_t" }, { "name": "pr_dmodel", "type": "char" }, { "name": "pr_pad2", "type": "char [3]" }, { "name": "pr_taskid", "type": "taskid_t" }, { "name": "pr_projid", "type": "projid_t" }, { "name": "pr_nzomb", "type": "int" }, { "name": "pr_poolid", "type": "poolid_t" }, { "name": "pr_zoneid", "type": "zoneid_t" }, { "name": "pr_contract", "type": "id_t" }, { "name": "pr_filler", "type": "int [1]" }, { "name": "pr_lwp", "type": "lwpsinfo_t" } ] }, { "name": "psinfo_t", "typedef": "struct psinfo" } ] }
About
Dump CTF type information to a standard JSON format
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published