Page 1 of 1

Orpheu: Patching strings in memory

Posted: Fri Oct 02, 2026 3:51 pm
by Archive-Poster
This is a mini-tutorial to demonstrate how to use Orpheu to replace strings in memory. You can use this functionality to:
Change text to something you want
Replace models or sounds efficiently
More stuff
First, download this software:<to be added>

Install it and open it.

Press New

PE Dynamic Library
OK

Now: to see the strings of the:

engine library, open the file swds.dll of your dedicated server folder.
mod, open the file mod/dlls/mp.dll in your dedicated server folder.
For this example I will use the engine library.

View
Open subviews
Strings

And you will have a list of strings that the library uses.

For this example I will use:

Code: Select all

#      name userid uniqueid frag time ping loss adr\n
First we need to make a file to identify the memory that we are dealing with. It should look like:

Code: Select all

{
    "name"        : "engineString",
    "library"     : "engine",
    "type"        : "string",
    "memoryType"  : "data"
}
The name is up to you, the library is where it is, the type is "string" for this tutorial and memoryType you can check it from the strings table as you have in IDA.

data is "data"
rdata is "rodata"
text is "code"

This field is meant to ensure integrity after messing with memory but is only useful in Linux. Anyway, you have to provide a valid type.

Now, save the file with the content described above in

configs/orpheu/memory and name it as you want.

To use it now you would do something like:

Code: Select all

    #include <amxmodx>
    #include <orpheu_memory>
    
    public plugin_precache()
    {
        OrpheuMemoryReplace("engineString",0,"#      name userid uniqueid frag time ping loss adr^n","# Arkshine loves Connor^n")
    } 
Beware that when you do this you should not use replacement strings longer than the original.