Post: [1.20] Config String Dump Tutorial C++
01-11-2017, 01:58 AM #1
Swaqq
Professional Thanker
(adsbygoogle = window.adsbygoogle || []).push({}); Hey everyone, this will be a short tutorial on how to easily dump config strings from this cod and any cod.

This is the C++ code to insert to your prx module.
    
void DumpConfigStrings()
{
int max = 0x1258;

for (int i = 0; i < max; i++)
{
char *Str = SL_ConvertToString(SV_GetConfigStringConst(i));
printf("[CONFIGSTRING] (%i) : %s\n", i, Str);
}
}


And of course you will need these
    
struct opd_s
{
int32_t sub;
int32_t toc;
};

int SV_GetConfigStringConst(int index)
{
opd_s SV_GetConfigStringConst_t = { 0x00459000, TOC };
int(*SV_GetConfigStringConst_f)(int) = (int(*)(int))&SV_GetConfigStringConst_t;
return SV_GetConfigStringConst_f(index);
}

char* SL_ConvertToString(int stringValue)
{
opd_s SL_ConvertToString_t = { 0x3FEF64, TOC };
char*(*SL_ConvertToString_f)(int stringValue) = (char*(*)(int))&SL_ConvertToString_t;
return SL_ConvertToString_f(stringValue);
}


Don't even bother doing this in C#, it will take about 5 years to complete as there are more than four thousand strings.
Now of course the number of strings will be different for each game, but look you can find it from either looking into G_FindConfigStringIndex or just use a large value like that and remove the extra strings.

Here is Shark's dump if you want : You must login or register to view this content.

Anyways, have a great day!

Nobody has permission to repost this on any forum.
Last edited by Swaqq ; 01-11-2017 at 02:00 AM.

The following 3 users say thank you to Swaqq for this useful post:

01cedricv2, Father Luckeyy, VenoxCoding
01-11-2017, 02:09 AM #2
Father Luckeyy
Retired - Lead Content Manager
Originally posted by Swaqq View Post
Hey everyone, this will be a short tutorial on how to easily dump config strings from this cod and any cod.

This is the C++ code to insert to your prx module.
    
void DumpConfigStrings()
{
int max = 0x1258;

for (int i = 0; i < max; i++)
{
char *Str = SL_ConvertToString(SV_GetConfigStringConst(i));
printf("[CONFIGSTRING] (%i) : %s\n", i, Str);
}
}


And of course you will need these
    
struct opd_s
{
int32_t sub;
int32_t toc;
};

int SV_GetConfigStringConst(int index)
{
opd_s SV_GetConfigStringConst_t = { 0x00459000, TOC };
int(*SV_GetConfigStringConst_f)(int) = (int(*)(int))&SV_GetConfigStringConst_t;
return SV_GetConfigStringConst_f(index);
}

char* SL_ConvertToString(int stringValue)
{
opd_s SL_ConvertToString_t = { 0x3FEF64, TOC };
char*(*SL_ConvertToString_f)(int stringValue) = (char*(*)(int))&SL_ConvertToString_t;
return SL_ConvertToString_f(stringValue);
}


Don't even bother doing this in C#, it will take about 5 years to complete as there are more than four thousand strings.
Now of course the number of strings will be different for each game, but look you can find it from either looking into G_FindConfigStringIndex or just use a large value like that and remove the extra strings.

Here is Shark's dump if you want : You must login or register to view this content.

Anyways, have a great day!

Nobody has permission to repost this on any forum.


Great Release Swaqq!
01-11-2017, 02:27 AM #3
Arrowx
Keeper
Thats incredible thanks

Copyright © 2024, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo