Skip to main content

A command line utility to extract and patch strings of various filetypes, with a focus on compatibility and translation.

Project description

strindex

PyPI version PyPI downloads GitHub downloads license

A command line utility to extract and patch strings of various filetypes, with a focus on compatibility and translation.

This utility will allow you to replace strings in supported filetypes with other strings. It's useful to change the text of a program without having to recompile it, for example, to translate a program into another language.

Apart from using offsets to replace strings, there's also an option to use the original string itself to ensure compatibility with different versions of the same program.

There are a lot of features to help with translation, such as spellchecking & filtering strings by length and character set.

The release includes a precompiled version of the program, which ONLY does the patching. If you want to use the other features, you will need to install Python 3.6 or later and the required libraries.

Supported filetypes

Support for more types won't be added unless I find some motivation to...

  • PE files (".exe, ".dll"...)
  • Gamemaker data file ("data.win")

Installation

You can install the program with the command pip install strindex.

Usage

You can run the program with the command strindex <action> <input file(s)> [options].

These are the available actions:

  • create: Create a list of strings from a PE file (a strindex). Use -c to create a strindex that uses the original strings as references.
  • patch: Patch a PE file with a strindex.
  • patch_gui: Patch a PE file with a strindex using a GUI.
  • filter: Filter a strindex by detected language, wordlist or length. You can specify those in the strindex settings.
  • delta: Create a delta file between two strindexes, that only contains the lines of the first strindex missing in the second one.
  • spellcheck: Spellcheck a strindex. You can specify the target language in the strindex settings as an ISO 639-1 code.

Usage Examples

  • Create a strindex from a PE file:
    strindex create program.exe -o strindex.txt
    
  • Patch a PE file with a strindex:
    strindex patch program.exe strindex.txt
    

Strindex Settings example

{
    "md5": "29ed1f9e450d43815c2d1a0cab168da3",

    "prefix_bytes": ["24c7442404", "ec04c70424"],

    "patch_replace": {
        "ì": "í",
        "Ì": "Í",
        "ò": "ó",
        "Ò": "Ó"
    },

    "clean_pattern": "\\[.*?\\]|\\*",
    "whitelist": ["latin", "spanish", "cyrillic"],

    "source_language": "es",
    "target_language": "it",
    "among_languages": ["en", "ja", "ko", "de", "fr", "es", "pt", "ru", "zh"]
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

strindex-3.3.1.tar.gz (17.3 kB view details)

Uploaded Source

Built Distribution

strindex-3.3.1-py3-none-any.whl (18.2 kB view details)

Uploaded Python 3

File details

Details for the file strindex-3.3.1.tar.gz.

File metadata

  • Download URL: strindex-3.3.1.tar.gz
  • Upload date:
  • Size: 17.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for strindex-3.3.1.tar.gz
Algorithm Hash digest
SHA256 a02a2210c391ed75e54b23047488654bfe7413e169bf606e710fb5deeea0067c
MD5 e17c47400c46feefd11d159293046957
BLAKE2b-256 05bf46c709ebb09efabd42000e31704c7f2bcfcd70277bb4274e3d14833f4ae6

See more details on using hashes here.

File details

Details for the file strindex-3.3.1-py3-none-any.whl.

File metadata

  • Download URL: strindex-3.3.1-py3-none-any.whl
  • Upload date:
  • Size: 18.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for strindex-3.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6eb407ad6b0ca5108dc54e59715028de5cd29747858bb5a1fb55ca9fe5f581bb
MD5 6da49faf64bcfd00c3fad8143a18f895
BLAKE2b-256 15929646e326b95372ca15bb2ac2e26e89122a89dbeb0eb5227acb45c66208b9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page