{"id":18842098,"url":"https://github.com/marioparaschiv/nullbyte","last_synced_at":"2025-08-22T06:18:09.349Z","repository":{"id":44353277,"uuid":"477724894","full_name":"marioparaschiv/nullbyte","owner":"marioparaschiv","description":"📝 Write empty bytes to provided memory patterns by memory patching.","archived":false,"fork":false,"pushed_at":"2024-07-01T02:37:56.000Z","size":699,"stargazers_count":11,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"win32","last_synced_at":"2024-07-05T14:40:44.561Z","etag":null,"topics":["byte","bytes","empty","js","memory","null","patch","patching","ts","typings"],"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/marioparaschiv.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-04-04T13:57:40.000Z","updated_at":"2024-07-01T02:37:59.000Z","dependencies_parsed_at":"2024-01-27T19:42:47.235Z","dependency_job_id":"2c5c2d89-255f-417d-8b95-1e65997887ff","html_url":"https://github.com/marioparaschiv/nullbyte","commit_stats":null,"previous_names":["mariovparaschiv/nullbyte","marioparaschiv/nullbyte"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marioparaschiv%2Fnullbyte","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marioparaschiv%2Fnullbyte/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marioparaschiv%2Fnullbyte/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marioparaschiv%2Fnullbyte/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marioparaschiv","download_url":"https://codeload.github.com/marioparaschiv/nullbyte/tar.gz/refs/heads/win32","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223624324,"owners_count":17175195,"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":["byte","bytes","empty","js","memory","null","patch","patching","ts","typings"],"created_at":"2024-11-08T02:53:41.313Z","updated_at":"2024-11-08T02:53:42.019Z","avatar_url":"https://github.com/marioparaschiv.png","language":"C++","readme":"---\n\n\u003cdiv align='center'\u003e\n   \u003ch3\u003e📝 nullbyte\u003c/h3\u003e\n   \u003cp\u003eWrite empty bytes to provided memory patterns by memory patching.\u003c/p\u003e\n\u003c/div\u003e\n\n---\n\n## Usage\n\n```ts\nimport { patch } from 'nullbyte';\n\n/**\n * @param {Number} pid - Process ID to attach to\n * @param {string[]} patterns - Array of memory patterns to null out\n * @param {boolean=false} matchOne - Whether to consider the patch successful if atleast one of the patterns match\n */\n\n// Requires both patterns to be patched to consider the patch successful\npatch(process.pid, ['D3 FT 55 ? 29', 'pattern2']);\n\n// Requires only one of the patterns to be patched to consider the patch successful\npatch(process.pid, ['D3 FT 55 ? 29', 'pattern2'], true);\n```\n\n## Installation\nAny node package manager works.\n- `npm i nullbyte`\n- `pnpm i nullbyte`\n- `yarn add nullbyte`\n\nPlatform specific:\n- `npm i nullbyte@win32`\n- `npm i nullbyte@linux`\n\n## How it works\nYou may [see what nullbyte is up to behind the scenes.](https://github.com/marioparaschiv/nullbyte/blob/win32/lib/nullbyte.cpp) When `patch` is called, nullbyte will attempt to null out the bytes of the patterns you provided (will freeze the javascript thread, so nothing else will work until its done, this is more useful for patching out bytes before an app launches).\n\n## How will I know if it was successful\nIf all of the conditions listed below are met, nullbyte's `patch` will return a boolean indicating whether or not the patch was successful.\n\n## Successful conditions\nnullbyte is very strict on what \"success\" means. nullbyte will need the following conditions to be met for the patch to be successful:\n- Process ID is a number\n- Patterns is an array\n- Process ID is a valid running process\n\nIf `matchOne` is not specified or is `false`, the following is also required:\n\n- All patterns are successfuly found in memory (if one doesn't get found, nullbyte will deem the patch unsuccessful, even if one pattern was patched)\n\n## Licensing\nSee [LICENSE](/LICENSE).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarioparaschiv%2Fnullbyte","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarioparaschiv%2Fnullbyte","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarioparaschiv%2Fnullbyte/lists"}