1

Trying to solve a crackme written in C++ for Windows on x86-64. https://www.crackmes.one/crackme/649a2ced33c5d43938913c6c

There are function calls that look like this in the IDA:

call __ZNSs4_Rep8_M_cloneERKSaIcEj ; std::string::_Rep::_M_clone(std::allocator<char> const&,uint)

call __ZNSs4_Rep9_S_createEjjRKSaIcE ; std::string::_Rep::_S_create(uint,uint,std::allocator<char> const&)

I want to understand what these functions do. Information on them is googled badly. It is very difficult to understand each such function in a disassembler.

Please tell me if there is a resource with a description of these functions. I think it has something to do with ABI.

Dmitriy
  • 53
  • 4

1 Answers1

-2

The function names you provided appear to be mangled names, which are typically generated by the compiler to encode additional information about the function, such as the function signature and the types of its parameters. These mangled names are specific to the compiler and platform used.

To understand what these functions do, it would be helpful to demangle the names. Demangling is the process of converting mangled names back into their human-readable form.

There are several online demangling tools available that can help you demangle these function names. One commonly used tool is the c++filt command-line utility, which is available on most Unix-like systems. You can use it to demangle the function names by running the following command:

c++filt __ZNSs4_Rep8_M_cloneERKSaIcEj
c++filt __ZNSs4_Rep9_S_createEjjRKSaIcE

This should give you the demangled names of the functions, which may provide more information about their purpose.

As for resources with descriptions of these functions, it would be helpful to refer to the documentation or source code of the library or framework you are working with. Since these function names appear to be related to std::string, you can refer to the C++ standard library documentation or the source code of your compiler's standard library implementation to get more information about these functions and their purpose.

Additionally, if these functions are part of a specific library or framework, you can search for documentation or forums related to that library or framework, as they may provide more specific information about the functions and their usage.

  • 2
    Is this answer generated with ChatGPT? Using AI answers is not allowed on this site. Regarding the contents of the answer, the demangled names are included in the question so there's no point in the first half of the answer. And the functions in question are private implementation-defined functions so they won't be in the C++ standard library documentation. – interjay Jul 16 '23 at 13:59
  • @interjay it is not chatgpt, you maybe think this way because my english bad, i am sorry for this, i tried to help – Space Researcher Jul 16 '23 at 15:52