Имеется описание такой структуры:
И насколько я понял, описание этой структуры задается другой структурой:
Где str nameOff - это имя структуры, соответственно
- смещение до имени относительно types секции модуля, указатель на которую можно получить из moduledata структуры модуля. Я нашел firstmoduledata и вроде как это то, что нужно. Т. е в теории я должен прибавить к адресу поля types из firstmoduledata
и тем самым выйти на имя структуры? Но у меня это не получилось и имени структуры я не обнаружил, может я неправильно понял механизм восстановления структур?
Код:
RTYPE_some_struct RTYPE <60h, 50h, 0DA1D5294h, \
TFLAG_UNCOMMON or TFLAG_EXTRASTAR or TFLAG_NAMED, 8, 8, \
KIND_STRUCT, 0, offset unk_D982C0, \
offset byte_9D09DD - offset byte_9AB000, \
offset RTYPE__ptr_master_server_connect_Client - offset byte_9AB000>
И насколько я понял, описание этой структуры задается другой структурой:
Код:
type _type struct {
size uintptr
ptrdata uintptr // size of memory prefix holding all pointers
hash uint32
tflag tflag
align uint8
fieldalign uint8
kind uint8
alg *typeAlg
// gcdata stores the GC type data for the garbage collector.
// If the KindGCProg bit is set in kind, gcdata is a GC program.
// Otherwise it is a ptrmask bitmap. See mbitmap.go for details.
gcdata *byte
str nameOff
ptrToThis typeOff
}
Код:
offset byte_9D09DD - offset byte_9AB000
Код:
offset byte_9D09DD - offset byte_9AB000