UEFIDump 0.1.1

- ported after engine refactoring, no new features
This commit is contained in:
Nikolaj Schlej 2016-07-16 03:48:21 +02:00
parent 59a6f298ee
commit 5b43099d78
4 changed files with 20 additions and 45 deletions

View File

@ -28,6 +28,7 @@ SET(PROJECT_HEADERS
../common/gbe.h ../common/gbe.h
../common/me.h ../common/me.h
../common/ffs.h ../common/ffs.h
../common/fit.h
../common/nvram.h ../common/nvram.h
../common/ffsparser.h ../common/ffsparser.h
../common/ffsreport.h ../common/ffsreport.h

View File

@ -76,25 +76,11 @@ USTATUS UEFIDumper::dump(const UByteArray & buffer, const UString & inPath, cons
std::cout << messages[i].first << std::endl; std::cout << messages[i].first << std::endl;
} }
// Get last VTF
UModelIndex lastVtf = ffsParser.getLastVtf();
if (lastVtf.isValid()) {
// Create fitParser
FitParser fitParser(&model);
// Find and parse FIT table
result = fitParser.parse(model.index(0, 0), lastVtf);
if (U_SUCCESS == result) {
// Show fitParser's messages
std::vector<std::pair<UString, UModelIndex> > fitMessages = fitParser.getMessages();
for (size_t i = 0; i < fitMessages.size(); i++) {
std::cout << (const char*)fitMessages[i].first.toLocal8Bit() << std::endl;
}
// Show FIT table // Show FIT table
std::vector<std::vector<UString> > fitTable = fitParser.getFitTable(); std::vector<std::vector<UString> > fitTable = ffsParser.getFitTable();
if (fitTable.size()) { if (fitTable.size()) {
std::cout << "-------------------------------------------------------------------" << std::endl; std::cout << "-------------------------------------------------------------------" << std::endl;
std::cout << " Address | Size | Ver | Type | CS " << std::endl; std::cout << " Address | Size | Ver | CS | Type " << std::endl;
std::cout << "-------------------------------------------------------------------" << std::endl; std::cout << "-------------------------------------------------------------------" << std::endl;
for (size_t i = 0; i < fitTable.size(); i++) { for (size_t i = 0; i < fitTable.size(); i++) {
std::cout << (const char*)fitTable[i][0].toLocal8Bit() << " | " std::cout << (const char*)fitTable[i][0].toLocal8Bit() << " | "
@ -104,8 +90,6 @@ USTATUS UEFIDumper::dump(const UByteArray & buffer, const UString & inPath, cons
<< (const char*)fitTable[i][4].toLocal8Bit() << std::endl; << (const char*)fitTable[i][4].toLocal8Bit() << std::endl;
} }
} }
}
}
// Create ffsReport // Create ffsReport
FfsReport ffsReport(&model); FfsReport ffsReport(&model);

View File

@ -19,13 +19,11 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#include "../common/treemodel.h" #include "../common/treemodel.h"
#include "../common/ffsparser.h" #include "../common/ffsparser.h"
#include "../common/ffsreport.h" #include "../common/ffsreport.h"
#include "../common/fitparser.h"
class UEFIDumper class UEFIDumper
{ {
public: public:
explicit UEFIDumper() : model(), ffsParser(&model), ffsReport(&model), fitParser(&model), currentBuffer(), initialized(false), dumped(false) {} explicit UEFIDumper() : model(), ffsParser(&model), ffsReport(&model), currentBuffer(), initialized(false), dumped(false) {}
~UEFIDumper() {} ~UEFIDumper() {}
USTATUS dump(const UByteArray & buffer, const UString & path, const UString & guid = UString()); USTATUS dump(const UByteArray & buffer, const UString & path, const UString & guid = UString());
@ -36,7 +34,6 @@ private:
TreeModel model; TreeModel model;
FfsParser ffsParser; FfsParser ffsParser;
FfsReport ffsReport; FfsReport ffsReport;
FitParser fitParser;
UByteArray currentBuffer; UByteArray currentBuffer;
bool initialized; bool initialized;

View File

@ -17,10 +17,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
if (argc > 32) {
std::cout << "Too many arguments" << std::endl;
return 1;
}
if (argc > 1) { if (argc > 1) {
std::ifstream inputFile; std::ifstream inputFile;
@ -32,11 +28,8 @@ int main(int argc, char *argv[])
UEFIDumper uefidumper; UEFIDumper uefidumper;
return (uefidumper.dump(buffer, UString(argv[1])) != U_SUCCESS); return (uefidumper.dump(buffer, UString(argv[1])) != U_SUCCESS);
} }
else {
std::cout << "UEFIDump 0.1.0" << std::endl << std::endl
<< "Usage: UEFIDump imagefile" << std::endl;
return 1;
}
return 1; std::cout << "UEFIDump 0.1.1" << std::endl << std::endl
<< "Usage: UEFIDump imagefile" << std::endl;
return 0;
} }