{"id":16455227,"url":"https://github.com/asiern/nierhook","last_synced_at":"2025-03-23T10:32:41.221Z","repository":{"id":42192340,"uuid":"331873096","full_name":"Asiern/NieRHook","owner":"Asiern","description":"NieR:Automata Memory Hook","archived":false,"fork":false,"pushed_at":"2024-04-07T07:44:37.000Z","size":96,"stargazers_count":12,"open_issues_count":8,"forks_count":5,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-18T19:51:55.960Z","etag":null,"topics":["memory-hacking","nier-automata"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Asiern.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":"2021-01-22T07:42:48.000Z","updated_at":"2024-06-16T09:37:35.000Z","dependencies_parsed_at":"2024-04-07T08:39:46.776Z","dependency_job_id":null,"html_url":"https://github.com/Asiern/NieRHook","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Asiern%2FNieRHook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Asiern%2FNieRHook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Asiern%2FNieRHook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Asiern%2FNieRHook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Asiern","download_url":"https://codeload.github.com/Asiern/NieRHook/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245090844,"owners_count":20559296,"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":["memory-hacking","nier-automata"],"created_at":"2024-10-11T10:21:35.583Z","updated_at":"2025-03-23T10:32:40.904Z","avatar_url":"https://github.com/Asiern.png","language":"C++","readme":"# NieR:Automata Hook\n\nA C++ library to attach to the NieR:Automata process and read/write memory.\n\n[NieRHook Demo](#nierhook-demo) \u003cbr\u003e\n[Using NieRHook](#using-nierhook) \u003cbr\u003e\n\u0026emsp;[CMake Projects](#cmake-projects) \u003cbr\u003e\n\u0026emsp;[Dinamyc Library (.dll)](#dinamyc-link-library) \u003cbr\u003e\n\u0026emsp;[Static Library](#static-library-default) \u003cbr\u003e\n[Build NieRHook](#build-nierhook) \u003cbr\u003e\n[Memory Reference](#memory-reference)\u003cbr\u003e\n[NieRHook Reference](#nierhook-reference)\n\n## NieRHook Demo\n\n```\n#include \u003cWindows.h\u003e\n#include \u003cTlHelp32.h\u003e\n#include \u003ciostream\u003e\n#include \u003cthread\u003e\n#include \"NierHook.hpp\"\nusing namespace std;\n\n//Function used to exit the program\nvoid ENDPressed(NieRHook* hook) {\n\twhile (true) {\n\t\tif (GetKeyState(VK_END) \u0026 0x8000) //END button pressed\n\t\t{\n\t\t\t//Disable cheats before exiting\n\t\t\thook-\u003eInfiniteDoubleJump(false);\n\t\t\thook-\u003eIgnoreUpgradeMaterials(false);\n\t\t\t//Stop hook\n\t\t\thook-\u003estop();\n\t\t\treturn;//exit function\n\t\t}\n\t}\n}\n\n/*This is a showcase program of the hook\n* As NieR:Automata is a x64 program, you must compile this solution in x64.\n*/\nint main()\n{\n\t_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);//Look for memory leaks\n\n\tNieRHook hook;\n\tcout \u003c\u003c \"Hooking...\" \u003c\u003c endl;\n\t//Hook to process\n\twhile (!hook.isHooked()) {\n\t\thook.start();\n\t}\n\tcout \u003c\u003c \"Hooked\" \u003c\u003c endl;\n\n\t//Enable some cheats\n\thook.InfiniteDoubleJump(true);\n\thook.IgnoreUpgradeMaterials(true);\n\n\t//Add some items\n\t//For ID reference please visit github.com/Asiern/NieRHook Readme\n\thook.addItem(510, 80); //Beast Hide ID =\u003e 510\n\thook.addItem(0, 10); //Small Recovery =\u003e ID 0\n\thook.addItem(721, 1); //Data chip B =\u003e ID 721\n\thook.addItem(400, 99); //E-Drug =\u003e ID 400\n\n\t//Add some weapons\n\thook.addWeapon(0x4D8, 1); //Type-40 Blade =\u003e ID 0x4D8\n\thook.addWeapon(0x41A, 1); //Type-40 Sword =\u003e ID 0x41A\n\n\t//Create a thread to exit when the 'END' button is pressed\n\tstd::thread exitThread(ENDPressed, \u0026hook);\n\n\t//Print some values\n\twhile (hook.isHooked()) {\n\t\thook.update();//update hook internal values (Position, Health, Level...)\n\t\tstd::cout \u003c\u003c \"X: \" \u003c\u003c hook.getXPosition() \u003c\u003c \"  Y: \" \u003c\u003c hook.getYPosition() \u003c\u003c \"  Z: \" \u003c\u003c hook.getYPosition() \u003c\u003c std::endl;\n\t\tstd::cout \u003c\u003c \"Health: \" \u003c\u003c hook.getHealth() \u003c\u003c std::endl;\n\t\tstd::cout \u003c\u003c \"Press END to exit...\" \u003c\u003c std::endl;\n\t\tSleep(500);\n\t\tsystem(\"cls\");\n\t}\n\n\t//Join thread and exit\n\texitThread.join();\n\treturn (0);\n}\n```\n\n---\n\n## Using NieRHook\n\n### CMake Projects\n\n**Clone NieRHook**\n\n`git clone https://github.com/Asiern/NieRHook/`\n\n**Edit your CMakeLists.txt**\n\n```\nadd_subdirectory(lib/NieRHook)\ntarget_link_libraries(${PROJECT_NAME} NieRHook)\ntarget_include_directories(${PROJECT_NAME} PUBLIC /lib/NieRHook/include)\n```\n\nIf you make use of winsock2.h, you need to add the following definition into your CMakeLists.txt\n\n`add_definitions(-DUSING_WINSOCK2)`\n\n```\n|--- Project/\n|       include/\n|       lib/\n|       |--- NieRHook/\n|       |    |   include/\n|       |    |   src/\n|       |    |   CMakeLists.txt\n|       src/\n|       CMakeLists.txt\n```\n\n---\n\n## Build NieRHook\n\n**Requirements:**\n\n- CMake\n- Microsoft `Desktop development with C++` toolkit\n\n### Static Library (_Default_)\n\nset `\"cmake.configureArgs\": [\n        \"-DNIERHOOK_STATIC_LIB=ON\"\n    ],` at .vscode/setting.json\n\n### Dinamyc Link Library\n\nset `\"cmake.configureArgs\": [\n        \"-DNIERHOOK_STATIC_LIB=OFF\"\n    ],` at .vscode/setting.json\n\n---\n\n## Memory Reference\n\nYou can find all the used IDs and offsets [here](https://docs.google.com/spreadsheets/d/1zowU8VOamVJcsLZni7T-5OaiT8iZAEM3YYEdtVP1F8k/edit?usp=sharing)\n\n---\n\n## NieRHook Reference\n\n#### Methods\n\n- `Start` - attach the hook to `NieRAutomata.exe` process\n- `Stop` - detach the hook from process\n- `isHooked` - return true if hooked\n- `isSaveLoaded` - returns true if a savefile is loaded, otherwise false\n- `hookStatus` - ensures the status of the hook, if processID changes stops the hook\n- `getProcessID` - returns process ID\n- `update` - refresh hook \u0026 attributes\n\n**Items**\n\n- `addItem` - Adds a specific quantity of items to the inventory (See item IDs at [Memory Reference](#memory-reference))\n- `removeItem` -Removes item from memory (See item IDs at [Memory Reference](#memory-reference))\n- `readInventory` - Read all items from memory and returns a vector (See item IDs at [Memory Reference](#memory-reference))\n- `addWeapon` - Adds a weapon to the inventory (See weapon IDs at [Memory Reference](#memory-reference))\n- `removeWeapon` - Removes a weapon from the inventory (See weapon IDs at [Memory Reference](#memory-reference))\n- `readWeapons` - Read all weapons from memory and returns a vector (See item IDs at [Memory Reference](#memory-reference))\n\n**Cheats**\n\n- `NoClip` - enables or disables No Clip\n- `NoCooldown` - enables or disables No Cooldown\n- `InfiniteDoubleJump` - enables or disables Infinite Double Jump\n- `InfiniteAirDash` - enables or disables Infinite Air Dash\n- `IgnoreUpgradeMaterials` - enables or disables Ignore Upgrade Materials\n- `FreeCamera` - enables or disables free camera movement\n- `SetA2Dash` - Set A2 type dash\n- `Set2BDash` - Set 2B type dash\n- `InfiniteBuffDuration` - enables or diables Infinite Buff Duration\n- `SaveAnywhere` - enables or disables Save Anywhere\n- `InfiniteConsumableItems` - enables or disables Infinite Consumable Items\n\n**Getters**\n\n- `isSavefileLoaded` - returns true if savefile is loaded\n- `getVersion` - retuns game version\n- `getLevel` - returns player's level\n- `getHealth` - returns player's health\n- `getMaxHealth` - returns player's max health\n- `getFunds` - returns player's Funds(G)\n- `getEXP` - returns player's EXP\n- `getXPosition` - returns player's X position\n- `getYPosition` - returns player's Y position\n- `getZPosition` - returns player's Z position\n- `getMusicVolume` - returns music volume\n- `getSoundEffectVolume` - returns sound effect volume\n- `getVoiceVolume` - returns voice volume\n- `getAudioOutput` - returns audio output\n- `getVoiceChanger` - returns voice changer\n- `getBrightness` - returns brightness\n- `getDistance` - returns distance\n- `getCombatDistance` - returns combat distance\n- `getVerticalRotationSpeed` - returns vertical rotation speed\n- `getHorizontalRotationSpeed` - returns horizontal rotation speed\n- `getHorizontalAutoAdjust` - returns horizontal auto adjust\n- `getVerticalAutoAdjust` - returns vertical auto adjust\n- `getFreeEnemyTracking` - returns free enemy tracking\n- `getZoomSpeed` - returns zoom speed\n- `getPursuitSpeed` - returns pursuit speed\n- `getLockedEnemyTracking` - returns locked enemy tracking\n- `getHUDOpacity` - return HUD opacity\n\n**Setters**\n\n- `setPosition` - sets the position of the player\n- `setHealth` - sets player health\n- `setGameSpeed` - sets game speed\n- `setHUDOpacity` - sets the opacity of the HUD\n- `setColor` - sets RGBColor combination\n- `setMusicVolume` - sets music volume\n- `setSoundEffectVolume` - sets sound effect volume\n- `setVoiceVolume` - sets voice volume\n- `setAudioOutput` - sets audio output\n- `setVoiceChanger` - sets voice changer\n- `setBrightness` - sets brightness\n- `setDistance` - sets distance\n- `setCombatDistance` - sets combat distance\n- `setVerticalRotationSpeed` - sets vertical rotation speed\n- `setHorizontalRotationSpeed` - sets horizontal rotation speed\n- `setHorizontalAutoAdjust` - sets horizontal auto adjust\n- `setVerticalAutoAdjust` - sets vertical auto adjust\n- `setFreeEnemyTracking` - sets free enemy tracking\n- `setZoomSpeed` - sets zoom speed\n- `setPursuitSpeed` - sets pursuit speed\n- `setLockedEnemyTracking` - sets locked enemy tracking\n- `setColor` - sets color\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasiern%2Fnierhook","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fasiern%2Fnierhook","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasiern%2Fnierhook/lists"}