{"id":27953819,"url":"https://github.com/binaryanalysisplatform/bap-pintraces","last_synced_at":"2025-10-07T15:28:17.264Z","repository":{"id":71067060,"uuid":"54101623","full_name":"BinaryAnalysisPlatform/bap-pintraces","owner":"BinaryAnalysisPlatform","description":null,"archived":false,"fork":false,"pushed_at":"2019-12-19T21:54:42.000Z","size":292,"stargazers_count":19,"open_issues_count":5,"forks_count":9,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-07T17:15:01.084Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BinaryAnalysisPlatform.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2016-03-17T08:34:38.000Z","updated_at":"2022-06-10T21:44:14.000Z","dependencies_parsed_at":"2023-03-11T12:45:19.997Z","dependency_job_id":null,"html_url":"https://github.com/BinaryAnalysisPlatform/bap-pintraces","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/BinaryAnalysisPlatform/bap-pintraces","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BinaryAnalysisPlatform%2Fbap-pintraces","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BinaryAnalysisPlatform%2Fbap-pintraces/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BinaryAnalysisPlatform%2Fbap-pintraces/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BinaryAnalysisPlatform%2Fbap-pintraces/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BinaryAnalysisPlatform","download_url":"https://codeload.github.com/BinaryAnalysisPlatform/bap-pintraces/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BinaryAnalysisPlatform%2Fbap-pintraces/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270011191,"owners_count":24511902,"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","status":"online","status_checked_at":"2025-08-12T02:00:09.011Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2025-05-07T17:14:58.910Z","updated_at":"2025-10-07T15:28:17.177Z","avatar_url":"https://github.com/BinaryAnalysisPlatform.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Overview\n\nPin tracer - a tracer based on [Pin: Intel’s Dynamic Binary Instrumentation\nEngine.](https://software.intel.com/en-us/articles/pintool) It executes a binary\nexecutable and saves trace data using [Protocol\nBuffer](https://developers.google.com/protocol-buffers/) format. The contents of\nthe trace data is defined in\n[bap-frames](https://github.com/BinaryAnalysisPlatform/bap-frames) project.\n\n# Preparing to build\n\nNote: building instructions assume that you're using Ubuntu, but it\nmay work on other systems, that uses apt-get.\n\nSince this tool requires pin 2 which does not fully support Linux kernels 4.x\nand later, it is recommended to use a virtual machine with [Ubuntu 14.04.1](http://old-releases.ubuntu.com/releases/14.04.0/ubuntu-14.04.1-server-amd64.iso).\n\nBefore build tracer, you need download and install\n  * [pin](https://software.intel.com/en-us/articles/pintool-downloads)\n  * autoconf, libtool, protobuf-compiler, libboost-dev, libboost-filesystem-dev, libcrypto++-dev\n  * [piqi library](http://piqi.org/doc/ocaml)\n\nHere are installation example.\n\nDownload [pin](https://software.intel.com/en-us/articles/pintool-downloads) library:\n\n```bash\n$ wget http://software.intel.com/sites/landingpage/pintool/downloads/pin-2.14-71313-gcc.4.4.7-linux.tar.gz\n```\n\nSuppose you want install pin to $(HOME)/opt directory then:\n\n```bash\n$ tar xvzf pin-2.14-71313-gcc.4.4.7-linux.tar.gz -C $HOME/opt\n```\n\nTo let Pin's makefiles know where Pin is installed, set the PIN_ROOT environment\nvariable with a command like:\n\n```bash\n$ export PIN_ROOT=$HOME/opt/pin-2.14-71313-gcc.4.4.7-linux\n```\n\nTo let bash know where pin executable is installed add the PIN_ROOT to PATH\nenvironment variable with a command like:\n\n```bash\n$ export PATH=$PATH:$PIN_ROOT\n```\n\nIt is probably a good idea to put this command in\na startup script like .bashrc, so that you don't need to set the variable\nevery time you log in:\n\n```bash\n$ echo 'export PIN_ROOT=$HOME/opt/pin-2.14-71313-gcc.4.4.7-linux' \u003e\u003e$HOME/.bashrc\n$ echo 'export PATH=$PATH:$PIN_ROOT' \u003e\u003e$HOME/.bashrc\n```\n\nTo install apt depends, use the following command\n\n```bash\n$ sudo apt-get install autoconf libtool protobuf-compiler libprotobuf-dev libboost-filesystem-dev libcrypto++-dev \n```\nTo install [piqi library](http://piqi.org/doc/ocaml) with\n[opam](https://opam.ocaml.org/doc/Install.html), use the following command\n```bash\n$ curl -o /usr/bin/piqi -L https://raw.github.com/alavrik/piqi-binary/master/Linux-x86_64/piqi \u0026\u0026 chmod +x /usr/bin/piqi\n```\n(alternatively, you can try to install piqi with `opam install piqi` but this\nmay be more difficult as the opam version that comes with Ubuntu 14.04.1 is too old)\n\n\n# Build process\nDownload [bap-frames](https://github.com/BinaryAnalysisPlatform/bap-frames) with\nfollowing command\n\n```bash\n$ git clone https://github.com/BinaryAnalysisPlatform/bap-frames.git\n```\nChange folder to `bap-frames/libtrace`. Build and install library with following command\n```bash\n$ ./autogen.sh \n$ ./configure \n$ make\n$ make install\n```\n\nDownload [bap-pintraces](https://github.com/BinaryAnalysisPlatform/bap-pintraces) with following command\n```bash\n$ git clone https://github.com/BinaryAnalysisPlatform/bap-pintraces.git\n```\n\nChange folder to bap-pintraces and build tracer with command\n```\n$ make\n```\nTo run executable `exec` and to save taint infromation to `\u003cprocess id\u003e-exec.frames`, use\n\n```bash\n$ pin -injection child -t obj-intel64/gentrace.so -o exec.frames -logall_before 1 -- exec [exec args]\n```\n\nTo run executable `exec` and to save the trace data to `exec.frames`, use\n```bash\n$ pin -injection child -t obj-intel64/bpt.so -o exec.frames -- exec [exec args]\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbinaryanalysisplatform%2Fbap-pintraces","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbinaryanalysisplatform%2Fbap-pintraces","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbinaryanalysisplatform%2Fbap-pintraces/lists"}