Raised This Month: $ Target: $400
 0% 

[META] ERROR: Failed to find memloc for regcmd 'orpheu'


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Spirit_12
Veteran Member
Join Date: Dec 2012
Location: Toronto, CA
Old 11-11-2017 , 21:23   Re: [META] ERROR: Failed to find memloc for regcmd 'orpheu'
Reply With Quote #1

Signatures are specific code locations that you can hook with Orpheu directly from the game binary. Like in this case you are hooking the player spawn function and overriding it. Orpheu signatures are stored in configs/orpheu folder.

In your case look at configs/orpheu/functions/InstallGameRules file.

PHP Code:
{
    
"name" "InstallGameRules",
    
"library" "mod",
    
"return" 
    {
        
"type" "CHalfLifeMultiplay *"
    
},
    
"identifiers":
    [
        {
            
"os" "windows",
            
"mod" "cstrike",
            
"value" : [0x68,"*","*","*","*",0xFF,"*","*","*","*","*",0x83,0xC4,0x4,0xFF,"*","*","*","*","*",0xA1,"*","*","*","*",0xD9,0x40,0x14],
            
"info" "Works for Condition Zero"
        
},
        {
            
"os" "linux",
            
"mod" "cstrike",
            
"value" "InstallGameRules__Fv"
        
},  


This is the old signature, which can be clearly seen for Linux entry. Here is the updated signature. Replace the contents of your InstallGameRules file with this and it should work or at the very least stop the crashes.

PHP Code:
{
    
"name" "InstallGameRules",
    
"library" "mod",
    
"return" :
    {
        
"type" "CGameRules *"
    
},
    
"identifiers":
    [
        {
            
"os" "windows",
            
"mod" "cstrike",
            
"value" : [0x68,"*","*","*","*",0xFF,"*","*","*","*","*",0x83,"*","*",0xFF,"*","*","*","*","*",0xA1,"*","*","*","*",0xD9,"*","*",0xD8,"*","*","*","*","*",0xDF]
        },
        {
            
"os" "linux",
            
"mod" "cstrike",
            
"value" "_Z16InstallGameRulesv"
        
}
    ]

__________________
Spirit_12 is offline
ZEDD_Intensity
Senior Member
Join Date: Jun 2016
Old 11-12-2017 , 05:42   Re: [META] ERROR: Failed to find memloc for regcmd 'orpheu'
Reply With Quote #2

Quote:
Originally Posted by Spirit_12 View Post
Signatures are specific code locations that you can hook with Orpheu directly from the game binary. Like in this case you are hooking the player spawn function and overriding it. Orpheu signatures are stored in configs/orpheu folder.
In your case look at configs/orpheu/functions/InstallGameRules file.
This is the old signature, which can be clearly seen for Linux entry. Here is the updated signature. Replace the contents of your InstallGameRules file with this and it should work or at the very least stop the crashes.
]
Greetings, Spirit,

Thanks a lot for your detailed prompt reply.

I did exactly what you said.
Just for a bit more clarity of the case, "InstallGameRules" file was never provided with the download of Orpheu v2.6.3. The folders "functions" and "Virtual Functions" were empty. No InstallGameRules file came alongwith the stock download. The file I HAD was from the Plugin, brr_nokill as an Additional Content.

The old InstallGameRules I had (without applying Spirit_12's update) :
PHP Code:
{
    
"name" "InstallGameRules",
    
"library" "mod",
    
"return" 
    {
        
"type" "CHalfLifeMultiplay *"
    
},
    
"identifiers":
    [
        {
            
"os" "windows",
            
"mod" "cstrike",
            
"value" : [0x68,"*","*","*","*",0xFF,"*","*","*","*","*",0x83,0xC4,0x4,0xFF,"*","*","*","*","*",0xA1,"*","*","*","*",0xD9,0x40,0x14],
            
"info" "Works for Condition Zero"
        
},
        {
            
"os" "linux",
            
"mod" "cstrike",
            
"value" "InstallGameRules__Fv"
        
},
        {
            
"os" "windows",
            
"mod" "SvenCoop",
            
"value" : [0x55,0x8B,0xEC,0x6A,0xFF,0x68,"*","*","*","*",0x64,"*","*","*","*","*",0x50,0x81,"*","*","*","*","*",0xA1,"*","*","*","*",0x33,0xC5,0x89,0x45,0xF0]
        },
        {
            
"os" "windows",
            
"mod" "ns",
            
"value" : [0x6A,0xFF,0x68,"*","*","*","*",0x64,"*","*","*","*","*",0x50,0x64,"*","*","*","*","*","*",0x51,0x68]
        },
        {
            
"os" "linux",
            
"mod" "ns",
            
"value" "_Z16InstallGameRulesv"
        
},
        {
            
"os" "windows",
            
"mod" "dod",
            
"value" : [0x55,0x8B,0xEC,0x83,0xEC,0x48,0x53,0x56,0x57,0x68,"*","*","*","*",0xFF,"*","*","*","*","*",0x83,0xC4,0x04,0xFF]
        },
        {
            
"os" "linux",
            
"mod" "dod",
            
"value" "InstallGameRules__Fv"
        
},
        {
            
"os" "windows",
            
"mod" "valve",
            
"value" : [0x68,"*","*","*","*",0xFF,"*","*","*","*","*",0x83,0xC4,0x04,0xFF,"*","*","*","*","*",0x8B]
        },
        {
            
"os" "linux",
            
"mod" "valve",
            
"value" "InstallGameRules__Fv"
        
},
        {
            
"os" "windows",
            
"mod" "ts",
            
"value" : [0x6A,0xFF,0x68,"*","*","*","*",0x64,"*","*","*","*","*",0x50,0x64,"*","*","*","*","*","*",0x51,0x56,0x68]
        },
        {
            
"os" "linux",
            
"mod" "ts",
            
"value" "InstallGameRules__Fv"
        
}         
    ]

With this file, the server could not be started.
After applying Spirit_12's patch, the server could successfully start, as it's empty at first.

After a couple minutes, it crashed. I noticed a thing, when a player tries to connect, and brr_nokill doens't let it spawn and to do that, it accesses the InstallGameRules file, and that's exactly when the crash happens, that's what I assume as it never crashed with 0 players, no traffic. So, we're definitely getting somewhere.


Also, I also had another file from the plugin as an Additional Orpheu download in /configs/orpheu/virtualfunctions/CGameRules/FPlayerCanRespawn

If it has anything to do with it, the contents of that file are down below :
PHP Code:
{
    
"name" "FPlayerCanRespawn",
    
"class" "CGameRules",
    
"library" "mod",
    
"return" 
    {
        
"type" "bool"
    
},
    
"arguments" 
    [
        {
            
"type" "CBasePlayer *"
        
}
    ],
    
"indexes" 
    [
        {
            
"os" "windows",
            
"mod" "SvenCoop",
            
"value" 20
        
},
        {
            
"os" "windows",
            
"mod" "cstrike",
            
"value" 20
        
},
        {
            
"os" "linux",
            
"mod" "cstrike",
            
"value" 22
        
},
        {
            
"os" "windows",
            
"mod" "dod",
            
"value" 20
        
},
        {
            
"os" "linux",
            
"mod" "dod",
            
"value" 22
        
},
        {
            
"os" "windows",
            
"mod" "valve",
            
"value" 20
        
},
        {
            
"os" "linux",
            
"mod" "valve",
            
"value" 22
        
},
        {
            
"os" "windows",
            
"mod" "ns",
            
"value" 20
        
},
        {
            
"os" "linux",
            
"mod" "ns",
            
"value" 22
        
},
        {
            
"os" "windows",
            
"mod" "ts",
            
"value" 19
        
},
        {
            
"os" "linux",
            
"mod" "ts",
            
"value" 21
        
},
        {
            
"os" "windows",
            
"mod" "tfc",
            
"value" 20
        
},
        {
            
"os" "linux",
            
"mod" "tfc",
            
"value" 22
        
}
    ]

I hope this helps in analyzing the problem a bit deeper.
Thanks again for all the help, couldn't have expected any better!

Regards,
ZEDD
ZEDD_Intensity is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 17:19.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode