12 std::size_t len = str.length();
13 std::size_t found = str.find_last_of(
"/\\");
14 std::size_t ext = str.find_last_of(
'.');
15 if (ext >= len)
return "";
17 std::string name = str.substr(found+1, ext - (found+1));
18 std::transform(name.begin(), name.end(), name.begin(), tolower);
27 while ((*fPtr >=
'a' && *fPtr <=
'z')
28 || (*fPtr >=
'A' && *fPtr <=
'Z')
29 || (*fPtr >=
'0' && *fPtr <=
'9')
37 if (*fPtr ==
'.') has_dot =
true;
52 std::size_t len = str.length();
53 std::size_t ext = str.find_last_of(
".");
54 if (ext >= len)
return "";
56 std::string name = str.substr(ext+1, len - (ext+1));
62 std::stringstream stream;
64 stream << std::dec << func_ordinal;
70 if (func_name_str.length() < 2)
return false;
71 return (func_name_str[0] ==
'#');
77 const char* func_name = func_name_str.c_str();
78 return atoi(func_name + 1);
85 if (dllName.length() == 0 || funcName.length() == 0) {
88 std::transform(dllName.begin(), dllName.end(), dllName.begin(), tolower);
89 return dllName +
"." + funcName;
92ExportedFunc::ExportedFunc(std::string libName, std::string funcName, DWORD funcOrdinal)
119 if (func_name_str.length() < 2) {
124 std::cerr <<
"Invalid function data" << std::endl;
144 if (name.length() == 0 || name.length() == 0) {
147 std::transform(name.begin(), name.end(), name.begin(), tolower);
154 return "[Invalid func]";
156 std::stringstream stream;
std::string nameToString() const
static std::string formatName(std::string name)
std::string toString() const
A definition of ExportedFunc class - used for storing the details of the exported function....
bool is_ordinal_string(const std::string &str)
std::string ordinal_to_string(DWORD func_ordinal)
size_t forwarder_name_len(BYTE *fPtr)
std::string get_func_name(const std::string &str)
std::string format_dll_func(const std::string &str)
DWORD ordinal_string_to_val(const std::string &str)
std::string get_dll_shortname(const std::string &str)