{"id":18007815,"url":"https://github.com/chinyikming/process-promise-tracer","last_synced_at":"2025-07-25T21:36:13.965Z","repository":{"id":175976163,"uuid":"525471456","full_name":"ChinYikMing/process-promise-tracer","owner":"ChinYikMing","description":null,"archived":false,"fork":false,"pushed_at":"2022-12-01T10:27:45.000Z","size":149,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-09T21:41:51.683Z","etag":null,"topics":["cpu-monitoring","net","perf","process","promise","security","signal","stack","tracer","tracing"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ChinYikMing.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-08-16T17:04:03.000Z","updated_at":"2023-11-25T13:12:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"6ef9c96f-4922-4a5b-908f-fee951a7782b","html_url":"https://github.com/ChinYikMing/process-promise-tracer","commit_stats":null,"previous_names":["chinyikming/process-promise-tracer"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChinYikMing%2Fprocess-promise-tracer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChinYikMing%2Fprocess-promise-tracer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChinYikMing%2Fprocess-promise-tracer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChinYikMing%2Fprocess-promise-tracer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ChinYikMing","download_url":"https://codeload.github.com/ChinYikMing/process-promise-tracer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247174380,"owners_count":20896074,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpu-monitoring","net","perf","process","promise","security","signal","stack","tracer","tracing"],"created_at":"2024-10-30T01:14:40.908Z","updated_at":"2025-04-04T11:45:30.544Z","avatar_url":"https://github.com/ChinYikMing.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Process Promise Tracer\n\nSoftware processes have to list out the promises of accessing peripheral devices such as webcam clearly, so our program can check the actions of the\nsoftware processes periodically to ensure that they do not violate the promise.\n\n## Description\n\nNowadays, any kind of software processes require accessing the peripheral devices to achieve some functionality such as video chatting application.\nLet us take the video chatting application for continuous explanation. Normally, the application will ask the user to handout control of the webcam\nbefore using it, but it does not tell the user what is it going to further do with the data from the webcam behind the scene, so it could be kind of\ninsecure issues about the behind scene actions for example record down the video secretly.\n\n## Getting Started\n\n### Dependencies\n\n* Ubuntu 20.04\n* gcc\n* make\n* libelf-dev\n* [json-c](https://github.com/json-c/json-c)\n* [libunwind](https://github.com/libunwind/libunwind)\n\n### Installing\n\n* clone the repository or via release(assets need to be decompressed)\n* make\n* make install\n\n### Uninstalling\n\n* make uninstall\n\n### Executing program\n\n* the program is a daemon, you can control it via systemctl command\n\n* start the daemon\n```\n$systemctl start process-promise-tracerd\n```\n\n* stop the daemon\n```\n$systemctl stop process-promise-tracerd\n```\n\n* restart the daemon\n```\n$systemctl restart process-promise-tracerd\n```\n\n* reload the daemon config\n```\n$systemctl reload process-promise-tracerd\n```\n\n* check the status of the daemon\n```\n$systemctl status process-promise-tracerd\n```\n\n* enable the daemon automatically startup after booting\n```\n$systemctl enable process-promise-tracerd\n```\n\n### Program Configuration file\n* located in /etc/process_promise_tracer.conf\n* There are two sections in the config file: [Daemon] and [Untrusted Program]\n* [Daemon] is for daemon config and [Untrusted Program] is for untrusted program name to be traced\n* Sample configuration file, only /usr/bin/test program will be traced by the daemon program\n```\n[Daemon]\nperf_sample_period=3000\nscan_procfs_period=1000\n\n[Untrusted Program]\n/usr/bin/test\n```\n\n## Version History\n\n* 1.0\n    * [Initial Release](https://github.com/ChinYikMing/process-promise-tracer/releases/tag/v1.0)\n\n## License\n\nThis project is licensed under the [GPLv3] License - see the LICENSE file for details\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchinyikming%2Fprocess-promise-tracer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchinyikming%2Fprocess-promise-tracer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchinyikming%2Fprocess-promise-tracer/lists"}