mirror of https://github.com/x64dbg/TitanEngine
fix Resourcer::EnumerateResource which wasnt sending correct resourceName / resourceType
This commit is contained in:
parent
758a361df1
commit
fdbc1aa989
|
|
@ -273,8 +273,8 @@ __declspec(dllexport) void TITCALL ResourcerEnumerateResourceEx(ULONG_PTR FileMa
|
||||||
{
|
{
|
||||||
|
|
||||||
int i, j, n;
|
int i, j, n;
|
||||||
wchar_t* uniResourceName;
|
wchar_t* pUniResourceName;
|
||||||
wchar_t* uniResourceType;
|
wchar_t* pUniResourceType;
|
||||||
PIMAGE_RESOURCE_DIRECTORY PEResource;
|
PIMAGE_RESOURCE_DIRECTORY PEResource;
|
||||||
PIMAGE_RESOURCE_DIRECTORY PEResourcePtr;
|
PIMAGE_RESOURCE_DIRECTORY PEResourcePtr;
|
||||||
PIMAGE_RESOURCE_DIRECTORY_ENTRY PEResourceDir;
|
PIMAGE_RESOURCE_DIRECTORY_ENTRY PEResourceDir;
|
||||||
|
|
@ -310,24 +310,30 @@ __declspec(dllexport) void TITCALL ResourcerEnumerateResourceEx(ULONG_PTR FileMa
|
||||||
n = PESubResourcePtr2->NumberOfIdEntries + PESubResourcePtr2->NumberOfNamedEntries;
|
n = PESubResourcePtr2->NumberOfIdEntries + PESubResourcePtr2->NumberOfNamedEntries;
|
||||||
while(n > NULL)
|
while(n > NULL)
|
||||||
{
|
{
|
||||||
|
wchar_t uniResourceName[MAX_PATH] = {};
|
||||||
|
wchar_t uniResourceType[MAX_PATH] = {};
|
||||||
PEResourceItem = (PIMAGE_RESOURCE_DATA_ENTRY)((ULONG_PTR)PEResourcePtr + PEResourceDir2->OffsetToData);
|
PEResourceItem = (PIMAGE_RESOURCE_DATA_ENTRY)((ULONG_PTR)PEResourcePtr + PEResourceDir2->OffsetToData);
|
||||||
if(PEResourceDir->NameIsString)
|
if(PEResourceDir->NameIsString)
|
||||||
{
|
{
|
||||||
uniResourceType = (wchar_t*)((ULONG_PTR)PEResourcePtr + PEResourceDir->NameOffset);
|
WORD resourceTypeLen = *(WORD*) ((ULONG_PTR)PEResourcePtr + PEResourceDir->NameOffset);
|
||||||
|
wcsncpy(uniResourceType, (wchar_t*)((ULONG_PTR)PEResourcePtr + PEResourceDir->NameOffset)+1, resourceTypeLen);
|
||||||
|
pUniResourceType = uniResourceType;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
uniResourceType = NULL;
|
pUniResourceType = NULL;
|
||||||
}
|
}
|
||||||
if(PEResourceDir1->NameIsString)
|
if(PEResourceDir1->NameIsString)
|
||||||
{
|
{
|
||||||
uniResourceName = (wchar_t*)((ULONG_PTR)PEResourcePtr + PEResourceDir1->NameOffset);
|
WORD resourceNameLen = *(WORD*) ((ULONG_PTR)PEResourcePtr + PEResourceDir1->NameOffset);
|
||||||
|
wcsncpy(uniResourceName, (wchar_t*)((ULONG_PTR)PEResourcePtr + PEResourceDir1->NameOffset)+1, resourceNameLen);
|
||||||
|
pUniResourceName = uniResourceName;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
uniResourceName = NULL;
|
pUniResourceName = NULL;
|
||||||
}
|
}
|
||||||
if(!myResourceEnumerator(uniResourceType, PEResourceDir->Id, uniResourceName, PEResourceDir1->Id, PEResourceDir2->Id, PEResourceItem->OffsetToData, PEResourceItem->Size))
|
if(!myResourceEnumerator(pUniResourceType, PEResourceDir->Id, pUniResourceName, PEResourceDir1->Id, PEResourceDir2->Id, PEResourceItem->OffsetToData, PEResourceItem->Size))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue