Finding FName Funcs
This will go over reversing stuff like FName::GetNames, FName::StaticInit, etc.
FName::GetNames():
Description: Returns TNameEntryArray* (GNames).
It usually looks like
var_8 = qword ptr -8
sub rsp, 28
mov rax, cs:(GNames Address)
test rax, rax
jnz short loc_7FFxxxxxxxxx
mov ecx, 408h
The string that you can normally use is "%d.%d.%d.%d.%d.%s". If that doesn't work then use, "Windows (unknown version)" On both of them, you want to scroll up, you will see the assembly eventually.
IDA String: ?GetNames@FName@@CAAEAV?$TStaticIndirectArrayThreadSafeRead@UFNameEntry@@$0CAAAAA@$0EAAA@@@XZ
FName::ToString():
You can recognize it as it calls GetNames and GetPlainNameString. It also has a var 28, var 20, and arg 0.
The string that you can normally use is "Couldn't start up the Auto Reporting process!" Scroll down for about 3 seconds and you should find it.
IDA String: ?ToString@FName@@QEBA?AVFString@@XZ
FNameEntry::GetPlainNameString():
You can recognize it as it has a var 18, arg 0, and arg 8.
The string that you can normally use is "MachineGuid". Scroll down for a bit.
By the way, this function will decrypt the names, FName::ToString and a couple of others will too. This is preferred over directly calling DecryptName as it is easier and in some cases less complicated.
IDA String: ?GetPlainNameString@FNameEntry@@QEBA?AVFString@@XZ
FName::StaticInit():
You can recognize it as it has a lot of args/vars.
This is extremely easy, the string to use is "ByteProperty". Press F5 (Decompile to pseudo-code) and scroll to the top. The sub at the top is the function.
IDA String: ?StaticInit@FName@@SAXXZ
FName::Init():
You can recognize it as it has like 5 args and 5 vars.
The string you use is "Attempting to run KillAllPopUpBlockingWindows" Scroll down for like a second and you should find it.
IDA String: ?Init@FName@@AEAAXPEB_WHW4EFindName@@_NH@Z
FName::GetComparisonNameEntry():
FName::GetNameEntry
Last updated
Was this helpful?