{"id":13408452,"url":"https://github.com/Artikash/Textractor","last_synced_at":"2025-03-14T13:31:19.712Z","repository":{"id":37285164,"uuid":"134180348","full_name":"Artikash/Textractor","owner":"Artikash","description":"Extracts text from video games and visual novels. Highly extensible.","archived":false,"fork":false,"pushed_at":"2024-03-15T23:55:46.000Z","size":19703,"stargazers_count":2127,"open_issues_count":581,"forks_count":204,"subscribers_count":37,"default_branch":"master","last_synced_at":"2024-10-29T17:48:52.734Z","etag":null,"topics":["cpp","games","hacking","reverse-engineering"],"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/Artikash.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":"2018-05-20T19:30:45.000Z","updated_at":"2024-10-28T18:47:39.000Z","dependencies_parsed_at":"2024-10-26T04:06:33.597Z","dependency_job_id":"1c71de6b-1b80-4c7a-a024-9679cb877ec1","html_url":"https://github.com/Artikash/Textractor","commit_stats":{"total_commits":1206,"total_committers":26,"mean_commits":46.38461538461539,"dds":0.1094527363184079,"last_synced_commit":"df5b830d1757a66aa162f8081e99d42c9bd50488"},"previous_names":[],"tags_count":79,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Artikash%2FTextractor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Artikash%2FTextractor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Artikash%2FTextractor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Artikash%2FTextractor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Artikash","download_url":"https://codeload.github.com/Artikash/Textractor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243584209,"owners_count":20314717,"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":["cpp","games","hacking","reverse-engineering"],"created_at":"2024-07-30T20:00:52.952Z","updated_at":"2025-03-14T13:31:19.704Z","avatar_url":"https://github.com/Artikash.png","language":"C++","readme":"# Textractor\n\n![How it looks](screenshot.png)\n\n[English](README.md) ● [Español](README_ES.md) ● [简体中文](README_SC.md) ● [Русский](README_RU.md) ● [한국어](README_KR.md) ● [ภาษาไทย](README_TH.md) ● [Français](README_FR.md) ● [Italiano](README_IT.md) ● [日本語](README_JP.md) ● [Bahasa Indonesia](README_ID.md) ● [Português](README_PT.md) ● [Deutsch](README_DE.md)\n\n**Textractor** (a.k.a. NextHooker) is an open-source x86/x64 video game text hooker for Windows 7+ (and Wine) based off of [ITHVNR](https://web.archive.org/web/20160202084144/http://www.hongfire.com/forum/showthread.php/438331-ITHVNR-ITH-with-the-VNR-engine).\u003cbr\u003e\nWatch the [tutorial video](docs/TUTORIAL.md) for a quick rundown on using it.\n\n## Download\n\nOfficial stable releases of Textractor can be found [here](https://github.com/Artikash/Textractor/releases).\u003cbr\u003e\nThe last release of ITHVNR can be found [here](https://drive.google.com/open?id=13aHF4uIXWn-3YML_k2YCDWhtGgn5-tnO).\u003cbr\u003e\nExperimental builds of Textractor (with debug info) from the latest source can be found [here](https://ci.appveyor.com/project/Artikash/textractor/history) in the 'Artifacts' section of each job.\n\n## Features\n\n- Highly extensible and customizable\n- Auto hook many game engines (including some not supported by VNR!)\n- Hook text using /H \"hook\" codes (most AGTH codes supported)\n- Automatically search for possible hook codes\n\n## Support\n\nLet me know of any bugs, games that Textractor has trouble hooking, feature requests, or other suggestions by posting an issue.\u003cbr\u003e\nIf you have trouble hooking a game, please show me a way to freely download it or gift it to me on [Steam](https://steamcommunity.com/profiles/76561198097566313/).\n\n## Extensions\n\nSee my [Example Extension project](https://github.com/Artikash/ExampleExtension) to see how to build an extension.\u003cbr\u003e\nSee the extensions folder for examples of what extensions can do. \n\n## Contributing\n\nAll contributions are appreciated! Please email me at akashmozumdar@gmail.com if you have any questions about the codebase.\u003cbr\u003e\nYou should use the standard process of making a pull request (fork, branch, commit changes, make PR from your branch to my master).\u003cbr\u003e\nContributing a translation is easy: [text.cpp](text.cpp) contains all of the text strings that you need to translate. Translations of this README or the tutorial video transcript are also welcome.\n\n## Compiling\nBefore compiling Textractor, you need Qt version 5.13 and Visual Studio with CMake support.\nClone Textractor's source and initialize submodules with `git clone https://github.com/Artikash/Textractor.git` and `git submodule update --init`.\nYou should then be able to just open the source folder in Visual Studio and build.\n\n## Project Architecture\n\nThe host injects texthook into the target process and connects to it via 2 pipe files.\ntexthook waits for the pipe to be connected, then injects a few instructions into any text outputting functions (e.g. TextOut, GetGlyphOutline) that cause their input to be sent through the pipe.\u003cbr\u003e\nAdditional information about hooks is exchanged via shared memory.\u003cbr\u003e\nThe text that the host receives through the pipe is then processed a little before being dispatched back to the GUI.\u003cbr\u003e\nFinally, the GUI dispatches the text to extensions before displaying it.\n\n## [Developers](docs/CREDITS.md)\n","funding_links":[],"categories":[":video_game: Games"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FArtikash%2FTextractor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FArtikash%2FTextractor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FArtikash%2FTextractor/lists"}