Skip to content

Commit 0facaba

Browse files
committed
differentiate between 0x0 entry and no entry
1 parent c09bba8 commit 0facaba

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

examples/triage/headers.cpp

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,11 @@ GenericHeaders::GenericHeaders(BinaryViewRef data)
9595
AddField("Type", QString::fromStdString(data->GetTypeName()));
9696
if (data->GetDefaultPlatform())
9797
AddField("Platform", QString::fromStdString(data->GetDefaultPlatform()->GetName()));
98-
if (data->IsValidOffset(data->GetEntryPoint()))
98+
auto entryFunctions = data->GetAllEntryFunctions();
99+
if (!entryFunctions.empty() && data->GetEntryPoint() != 0)
99100
AddField("Entry Point", QString("0x") + QString::number(data->GetEntryPoint(), 16), CodeHeaderField);
101+
else
102+
AddField("Entry Point", "None");
100103
if (data->IsValidOffset(data->GetStart()))
101104
AddField("Current Base", QString("0x") + QString::number(data->GetStart(), 16), AddressHeaderField);
102105
AddField("Endianness", data->GetDefaultEndianness() == BigEndian ? "Big" : "Little");
@@ -128,8 +131,11 @@ PEHeaders::PEHeaders(BinaryViewRef data)
128131
AddField("Type", QString::fromStdString(data->GetTypeName()));
129132
if (data->GetDefaultPlatform())
130133
AddField("Platform", QString::fromStdString(data->GetDefaultPlatform()->GetName()));
131-
if (data->IsValidOffset(data->GetEntryPoint()))
134+
auto entryFunctions = data->GetAllEntryFunctions();
135+
if (!entryFunctions.empty() && data->GetEntryPoint() != 0)
132136
AddField("Entry Point", QString("0x") + QString::number(data->GetEntryPoint(), 16), CodeHeaderField);
137+
else
138+
AddField("Entry Point", "None");
133139
return;
134140
}
135141

@@ -159,7 +165,11 @@ PEHeaders::PEHeaders(BinaryViewRef data)
159165
AddField("Image Base", QString("0x") + QString::number(base, 16), AddressHeaderField);
160166

161167
uint64_t entryPoint = currentBase + GetValueOfStructMember(data, optHeaderName, optHeaderStart, "addressOfEntryPoint");
162-
AddField("Entry Point", QString("0x") + QString::number(entryPoint, 16), CodeHeaderField);
168+
auto entryFunctions = data->GetAllEntryFunctions();
169+
if (!entryFunctions.empty() && entryPoint != 0)
170+
AddField("Entry Point", QString("0x") + QString::number(entryPoint, 16), CodeHeaderField);
171+
else
172+
AddField("Entry Point", "None");
163173

164174
uint64_t sectionAlign = GetValueOfStructMember(data, optHeaderName, optHeaderStart, "sectionAlignment");
165175
AddField("Section Alignment", QString("0x") + QString::number(sectionAlign, 16));

0 commit comments

Comments
 (0)