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

@ -27,7 +27,8 @@ SET(PROJECT_HEADERS
../common/descriptor.h
../common/gbe.h
../common/me.h
../common/ffs.h
../common/ffs.h
../common/fit.h
../common/nvram.h
../common/ffsparser.h
../common/ffsreport.h

View File

@ -76,34 +76,18 @@ USTATUS UEFIDumper::dump(const UByteArray & buffer, const UString & inPath, cons
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
std::vector<std::vector<UString> > fitTable = fitParser.getFitTable();
if (fitTable.size()) {
std::cout << "-------------------------------------------------------------------" << std::endl;
std::cout << " Address | Size | Ver | Type | CS " << std::endl;
std::cout << "-------------------------------------------------------------------" << std::endl;
for (size_t i = 0; i < fitTable.size(); i++) {
std::cout << (const char*)fitTable[i][0].toLocal8Bit() << " | "
<< (const char*)fitTable[i][1].toLocal8Bit() << " | "
<< (const char*)fitTable[i][2].toLocal8Bit() << " | "
<< (const char*)fitTable[i][3].toLocal8Bit() << " | "
<< (const char*)fitTable[i][4].toLocal8Bit() << std::endl;
}
}
// Show FIT table
std::vector<std::vector<UString> > fitTable = ffsParser.getFitTable();
if (fitTable.size()) {
std::cout << "-------------------------------------------------------------------" << std::endl;
std::cout << " Address | Size | Ver | CS | Type " << std::endl;
std::cout << "-------------------------------------------------------------------" << std::endl;
for (size_t i = 0; i < fitTable.size(); i++) {
std::cout << (const char*)fitTable[i][0].toLocal8Bit() << " | "
<< (const char*)fitTable[i][1].toLocal8Bit() << " | "
<< (const char*)fitTable[i][2].toLocal8Bit() << " | "
<< (const char*)fitTable[i][3].toLocal8Bit() << " | "
<< (const char*)fitTable[i][4].toLocal8Bit() << std::endl;
}
}

View File

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

View File

@ -17,12 +17,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
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;
inputFile.open(argv[1], std::ios::in | std::ios::binary);
std::vector<char> buffer(std::istreambuf_iterator<char>(inputFile),
@ -32,11 +28,8 @@ int main(int argc, char *argv[])
UEFIDumper uefidumper;
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;
}