{"id":20499425,"url":"https://github.com/ts95/process-memory","last_synced_at":"2025-07-27T04:41:09.081Z","repository":{"id":68302536,"uuid":"10321627","full_name":"ts95/Process-Memory","owner":"ts95","description":"Process memory reading/writing library.","archived":false,"fork":false,"pushed_at":"2014-07-15T21:58:14.000Z","size":148,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-16T06:58:06.434Z","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/ts95.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}},"created_at":"2013-05-27T19:57:51.000Z","updated_at":"2024-07-30T09:34:53.000Z","dependencies_parsed_at":"2023-02-21T03:31:03.000Z","dependency_job_id":null,"html_url":"https://github.com/ts95/Process-Memory","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ts95%2FProcess-Memory","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ts95%2FProcess-Memory/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ts95%2FProcess-Memory/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ts95%2FProcess-Memory/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ts95","download_url":"https://codeload.github.com/ts95/Process-Memory/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242089443,"owners_count":20069966,"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":[],"created_at":"2024-11-15T18:17:22.651Z","updated_at":"2025-03-05T19:24:34.031Z","avatar_url":"https://github.com/ts95.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"Process memory library\n==============\n\nA library that simplifies the process of reading and writing to\nthe memory of another process in a .NET langauge.\n\n__Remember to compile with /unsafe__\n\nExample of a program which simply reads an array\nof 16 bytes from address 0x1D8153A4 in the 'program' process and then\nit prints out those bytes to the console.\nWhen passing the name of a process you can write it with or without\n'.exe' at the end of the string.\n```C#\nunsafe class Program\n{\n\tstatic void Main(string[] args)\n\t{\n\t\tvar pm = new ProcessMemory(\"program.exe\", AccessLevel.Read);\n\n\t\t// The address the library will read from\n\t\tlong address = 0x1D8153A4;\n\n\t\t// Check if the process is running currently\n\t\tif (pm.ProcessExists)\n\t\t{\n\t\t\t// Read an array of bytes from the address\n\t\t\tbyte[] bytes = pm.ReadArray\u003cbyte\u003e(address, 16);\n\n\t\t\t// Print out each byte to the console\n\t\t\tforeach (byte b in bytes)\n\t\t\t\tConsole.WriteLine(\"0x{0:X2}\", b);\n\t\t}\n\t\tConsole.Read();\n\t}\n}\n```\n\nExample of a program that reads an int from memory, then\nadds 10 to it and writes it back to the same address.\n```C#\nunsafe class Program\n{\n\tstatic void Main(string[] args)\n\t{\n\t\t// Implicitly using AccessLevel.All\n\t\tvar pm = new ProcessMemory(\"program.exe\");\n\n\t\tlong address = 0x1D8153A4;\n\n\t\tif (pm.ProcessExists)\n\t\t{\n\t\t\tint number;\n\n\t\t\tnumber = pm.Read\u003cint\u003e(address);\n\t\t\tnumber += 10;\n\t\t\t\n\t\t\tpm.Write\u003cint\u003e(address, number);\n\t\t}\n\t}\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fts95%2Fprocess-memory","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fts95%2Fprocess-memory","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fts95%2Fprocess-memory/lists"}