diff --git a/gercols/gercols.cpp b/gercols/gercols.cpp index 40b79ad..01eca4a 100644 --- a/gercols/gercols.cpp +++ b/gercols/gercols.cpp @@ -20,32 +20,8 @@ Gercols::Gercols(QObject *parent) configTeste["software"] = QJsonValue::fromVariant(QString("")); oCacic.setJsonToFile(configTeste,"configReq.json"); - /******************************************/ - - // Inicializa o objeto de comunicação e seta chave criptográfica - oCacicComm = CacicComm("http://teste.cacic.cc", - "rG/HcIDVTZ3pPKCf[[MAIS]]I6aigUb7OMeij3FfC7qNaznk0rBRYb6q6kSK3eNfjgptS8BfwW5yJqCvD2ai7xlw9I6P21j6cvQUqlHmAJpCbfwR13urdRE9AhjfokMcPrH6R1/zXPGMHveLRRgKLcqWu2X96rmoQQdRq9EW1SXmYUAx1dCV[[MAIS]]3Ha61XBw5pq58q35zH8Gjt998rTi3ecV8ShXXevqyK[[MAIS]]W07xpgTjbbd6Fbs/35gPfdRRgMNFjq7Gq[[MAIS]]llFgYMJ6UcEhw8f0ZLQo2oL/eRW/CNyeBW6wG0hIo6EIdpi/Ht0/95Uwn2Og[[MAIS]]2UPXsmKKuTMeGwUvPdbEfexlinUO0[[MAIS]]j9qIa2dpjtl0Y5Fyk1Bvw2ZYRTXwgJpUHsBboWmtTFpgX3wSGOWMipE80K8ktRTVYOp[[MAIS]]4qS/SzKWXpfCuZoCncfwE0lCEoreTH[[MAIS]]MLrTkHJP2oqYMAyFyQcjC0UGr3BQGa2edSNXjG7jrTdddga/SODUiF94jgh/QBwhiZby34b__CRYPTED__", - "P198PVwtz5F5CfZPSUrzuaQA/QG1sTnwzl/rBnj8M7y5MglANGodG5LLD4q7oY809HuDR4g5tL64lZRBKvKPmEgWd9iAZKvT4UAm9XWN3nKKLGaznCaJohmntNGqrJP1Zd9riTHGu10mPbg/Uh3TCbBHVOICvu5sDlINlCR6A3[[MAIS]]a55RhfKNidvr5uX0kozCxr5t2DyOb5oPocEGyJKyHLQ==__CRYPTED__", - "1", - "0", - "0", - "YwpgjzZ86/eCsjvOki1KkQ==__CRYPTED__", - "8PT6U445MPNr3S7WHFa20ge/8NJSspSYE/UL3zf[[MAIS]]wkEfNZ7p1B/2o6i89gTZ44Ok__CRYPTED__", - "wshPlZWvLPhbUEQFQ1aQmA==__CRYPTED__", - "E9aKtVz/OSmGv7v1xW4FwaFukOob3qQ/HFDIz916K3ys82qfX9vBDz[[MAIS]]M2cdoYedhNkXt[[MAIS]]UVb10nD[[MAIS]]tOfbn7mlOlTDoGzUl9CgdPCsb[[MAIS]]Qa4wzuCrMw0BcCuaKfr62E3b8vh6Ug4JJbOgBo3ohG3x5O7Ap0D94GKtAWjMuTXRBbhGxPrRS4M6AhzvaN5P8pWd9FikrCLWuMs4ebnRlftef3RmVKScBDQ5zmK6sKxYNmX[[MAIS]]kKn/Gi2[[MAIS]]HftZ7HD9JLvZBpYhp4yjqShblQ67d6PlWgrRWXxwDseIiJe3NlF70zrCPBBelkeAhVDXMXnsYtLms3ElsLzxa3c5vpWzTfgyE[[MAIS]]hvALy4ivew7zaxEwrg2KY1T7GOSWZ7vljIvbhVZJgtzbnYiulFjJTtm5W4uJMKLuUJNzB0rxMkzToIE9/kDmeO2OKiwFbIfbe2Wdq0VpllOkjKtj9WM676iBSpYAXG0MsmLMj9CZ/sNi06hGF[[MAIS]]rXxiOSk66M0Hq[[MAIS]]OeUBh4z3Ra6f9yPJn0K9hIQyT[[MAIS]]Dr/QW/QdJIOkLTW8ZyyAF4DW9ojiTlUdySvB5EB1jyZ5nNTpzyE38qIdg7uM1tdWdm9FZGYxMdHwi1tS2dBeIWkDfWEjih01xiVt2dmdRgo0zIZvmmYDJ9LhCU3XPDlwdeQ8[[MAIS]]F7fnxDfxGqZQjZJ[[MAIS]]Y/Q8bdLpgbhcd3gt3SzjMLE0M[[MAIS]]hTmHG1KP2CzCibZ7grFAN3Y3jSPjmEj5Fzs26tdhdjNzSIt1FCueea8P2c4NmxPYkJCg0D1mgNrkH3L5svsO[[MAIS]]6YYrl3df4s[[MAIS]]fcK/to9s/pnkKfBKrAPF6Z4s2WPsALUPBDS5ty7RC2vqXRvH6hPR4o7xhXzQOQ/1xytr/RoEWEVeZ2wgHVVbbtFsALul/IDc7B45wmwxBx9iZHVwpQJVlNZZUBtwKqKhnXz5pM[[MAIS]]7yUAkfhMcO09pPd5kB2MBdRJs[[MAIS]]2FIk0GRUw05IHkc1rZEX5Ow==__CRYPTED__", - "Yot8BeM9lOh431SB7dYQXw==__CRYPTED__", - "Dcr8b5IfZOJjt6qyH5dGyw==__CRYPTED__", - "2.5.1.1.256.32", - "2.8.1.7", - "2.8.1.6"); - oCacicComm.setUrlSsl("https://10.1.0.137/cacic/web/app_dev.php"); - oCacicComm.setUsuario("cacic"); - oCacicComm.setPassword("cacic123"); - - bool ok; - QJsonObject jsonReply = oCacicComm.login(&ok); - QJsonObject sessionvalue = jsonReply["reply"].toObject(); - oCacic.setChaveCrypt(sessionvalue["chavecrip"].toString()); + //Pega chave do registro, que será pega na instalação. + oCacic.setChaveCrypt(oCacic.getValueFromRegistry("Lightbase", "Cacic", "key").toString()); qDebug() << "TESTE"; oColeta = new CColeta(); @@ -73,28 +49,23 @@ void Gercols::run() oCacic.deleteFile("configReq.json"); //salva json em arquivo - oCacic.setJsonToFile(oColeta->toJsonObject(), "coleta.json"); + if (!oColeta->toJsonObject().isEmpty()) + oCacic.setJsonToFile(oColeta->toJsonObject(), "coleta.json"); + else + qDebug() << "Erro ao realizar coleta."; - QFile coletaFile("coleta.json"); - if (!coletaFile.open(QIODevice::ReadWrite)) { - qDebug() << "Não foi possível abrir o coleta.json"; - emit finished(); - } - - QString coletaString; - coletaString = coletaFile.readAll(); - coletaFile.close(); + //O processo de criptografia e IV será tratado depois. Vamos começar a ajudar o Eli, depois vemos esse lance. // oCacic.deleteFile("coleta.json"); //IV sendo gerado como uma string de 32 caracteres - std::string strIv = oCacic.genRandomString(); +// std::string strIv = oCacic.genRandomString(); - QString coletaEncriptada = oCacic.enCrypt(coletaString.toStdString(), strIv); +// QString coletaEncriptada = oCacic.enCrypt(coletaString.toStdString(), strIv); - QJsonObject gercolsJson; - gercolsJson["coleta"] = QJsonValue::fromVariant(coletaEncriptada); - gercolsJson["iv"] = QJsonValue::fromVariant( QString::fromStdString(strIv) ); - oCacic.setJsonToFile(gercolsJson, "gercols.json"); +// QJsonObject gercolsJson; +// gercolsJson["coleta"] = QJsonValue::fromVariant(coletaEncriptada); +// gercolsJson["iv"] = QJsonValue::fromVariant( QString::fromStdString(strIv) ); +// oCacic.setJsonToFile(gercolsJson, "gercols.json"); //emite sinal "finished" pra finalizar a aplicação emit finished(); diff --git a/gercols/gercols.h b/gercols/gercols.h index be59e52..a6fa6bd 100644 --- a/gercols/gercols.h +++ b/gercols/gercols.h @@ -4,13 +4,11 @@ #include #include #include -#include class Gercols : public QObject { Q_OBJECT private: - CacicComm oCacicComm; CCacic oCacic; CColeta *oColeta; QJsonObject configReq; diff --git a/gercols/gercols.pro b/gercols/gercols.pro index 095a516..2cc1e6b 100644 --- a/gercols/gercols.pro +++ b/gercols/gercols.pro @@ -7,12 +7,11 @@ QT += core QT += network QT -= gui -QT += axcontainer -TARGET = gercols +TARGET = gercols CONFIG += console CONFIG -= app_bundle -CONFIG += qt +CONFIG += qt win32 { LIBS += -LE:\LightBase\cacic-agente-project\cacic-agente\src\crypto++\lib -lcryptopp @@ -30,10 +29,10 @@ SOURCES += \ ../src/cacic_hardware.cpp \ ../src/operatingsystem.cpp \ ../src/ccoleta.cpp \ + ./gercols.cpp \ ../src/vregistry.cpp \ ../src/vqtconvert.cpp \ - ./gercols.cpp - +#win32 SOURCES += \ ../src/vregistry.cpp \ ../src/vqtconvert.cpp \ HEADERS += \ ../src/ccacic.h \ @@ -43,10 +42,10 @@ HEADERS += \ ../src/operatingsystem.h \ ../src/console.h \ ../src/ccoleta.h \ + ./gercols.h \ ../src/vregistry.h \ ../src/vqtconvert.h \ - ./gercols.h \ - ../src/cacic_hardware.h +#win32 HEADERS += \ ../src/vregistry.h \ ../src/vqtconvert.h \ INCLUDEPATH += ../src \ ../src/crypto++/include/ diff --git a/install-cacic/install-cacic.pro.user b/install-cacic/install-cacic.pro.user index 6085eb7..2c8c70d 100644 --- a/install-cacic/install-cacic.pro.user +++ b/install-cacic/install-cacic.pro.user @@ -1,6 +1,6 @@ - + ProjectExplorer.Project.ActiveTarget @@ -223,7 +223,7 @@ install-cacic Qt4ProjectManager.Qt4RunConfiguration:E:/LightBase/cacic-agente-project/cacic-agente/install-cacic/install-cacic.pro - -uninstall + -host=10.1.0.137/cacic/web/app_dev.php -user=blabla -password=blabla install-cacic.pro false false diff --git a/src/cacic_comm.h b/src/cacic_comm.h index 9951f61..ce17f29 100644 --- a/src/cacic_comm.h +++ b/src/cacic_comm.h @@ -33,7 +33,7 @@ public: QString moduleProgramName, QString networkConfiguration,QString phpAuthPw, QString phpAuthUser, QString so, QString cacicVersion, QString gercolsVersion) { - this->urlGerente = urlGerente; + this->setUrlGerente(urlGerente); params.addQueryItem("OperatingSystem", operatingSystem); params.addQueryItem("ComputerSystem",computerSystem); params.addQueryItem("cs_cipher",csCipher); @@ -134,7 +134,7 @@ public: QNetworkAccessManager mgr; QObject::connect(&mgr, SIGNAL(finished(QNetworkReply*)), &eventLoop, SLOT(quit())); // a requisição HTTP - QUrl url = urlGerente; + QUrl url = "http://" + urlGerente; QNetworkRequest req( url ); req.setHeader(QNetworkRequest::LocationHeader, "Cacic Agente"); QNetworkReply *reply = mgr.get(req); diff --git a/src/cacic_hardware.cpp b/src/cacic_hardware.cpp index f091a31..5c6a62a 100644 --- a/src/cacic_hardware.cpp +++ b/src/cacic_hardware.cpp @@ -14,23 +14,23 @@ void cacic_hardware::iniciaColeta() #ifdef Q_OS_WIN QJsonObject cacic_hardware::coletaWin() { - QAxObject *objIWbemLocator = new QAxObject("WbemScripting.SWbemLocator"); - QAxObject *objWMIService = objIWbemLocator->querySubObject("ConnectServer(QString&,QString&)",QString("."),QString("root\\cimv2")); - if (objWMIService->isNull()) - { - return QJsonObject(); - } - QAxObject *returnList = objWMIService->querySubObject("ExecQuery(QString&)",QString("select SystemType from win32_computersystem")); - QAxObject *enum1 = returnList->querySubObject("_NewEnum"); - IEnumVARIANT* enumInterface; //to get this, include - enum1->queryInterface(IID_IEnumVARIANT, (void**)&enumInterface); - enumInterface->Reset(); //start at the beginning of the list. - for (int i=0;idynamicCall("Count").toInt();i++){ - VARIANT *theItem; - enumInterface->Next(1,theItem,NULL); - QAxObject *item = new QAxObject((IUnknown *)theItem->punkVal); - qDebug() << item->dynamicCall("Caption"); - } +// QAxObject *objIWbemLocator = new QAxObject("WbemScripting.SWbemLocator"); +// QAxObject *objWMIService = objIWbemLocator->querySubObject("ConnectServer(QString&,QString&)",QString("."),QString("root\\cimv2")); +// if (objWMIService->isNull()) +// { +// return QJsonObject(); +// } +// QAxObject *returnList = objWMIService->querySubObject("ExecQuery(QString&)",QString("select SystemType from win32_computersystem")); +// QAxObject *enum1 = returnList->querySubObject("_NewEnum"); +// IEnumVARIANT* enumInterface; //to get this, include +// enum1->queryInterface(IID_IEnumVARIANT, (void**)&enumInterface); +// enumInterface->Reset(); //start at the beginning of the list. +// for (int i=0;idynamicCall("Count").toInt();i++){ +// VARIANT *theItem; +// enumInterface->Next(1,theItem,NULL); +// QAxObject *item = new QAxObject((IUnknown *)theItem->punkVal); +// qDebug() << item->dynamicCall("Caption"); +// } return QJsonObject(); } diff --git a/src/cacic_hardware.h b/src/cacic_hardware.h index c4a9a47..61173ee 100644 --- a/src/cacic_hardware.h +++ b/src/cacic_hardware.h @@ -8,7 +8,7 @@ #include #include #ifdef Q_OS_WIN - #include +// #include #include #endif diff --git a/src/cacic_software.cpp b/src/cacic_software.cpp index ca3c3e1..3ff423c 100644 --- a/src/cacic_software.cpp +++ b/src/cacic_software.cpp @@ -1,7 +1,5 @@ #include "cacic_software.h" -#ifdef Q_OS_WIN - using namespace voidrealms::win32; -#endif + cacic_software::cacic_software() { } @@ -10,13 +8,14 @@ void cacic_software::iniciaColeta() { #ifdef Q_OS_WIN this->coletaSoftware = coletaWin(); -#elif defined(Q_OS_LINUX) +#elif Q_OS_LINUX this->coletaSoftware = coletaLinux(); #endif } #if defined(Q_OS_WIN) +using namespace voidrealms::win32; QJsonObject cacic_software::coletaWin() { QJsonObject softwaresJson; diff --git a/src/cacic_software.h b/src/cacic_software.h index 2a62ba6..e80835e 100644 --- a/src/cacic_software.h +++ b/src/cacic_software.h @@ -5,7 +5,7 @@ #include #include -#if defined(Q_OS_WIN) +#ifdef Q_OS_WIN #include #include #endif @@ -18,10 +18,13 @@ public: QJsonObject toJsonObject(); private: +#ifdef Q_OS_WIN QJsonObject coletaWin(); +#else QJsonObject coletaLinux(); QJsonObject coletaArch(); QJsonObject coletaDebian(); +#endif CCacic oCacic; QJsonObject coletaSoftware; diff --git a/src/vqtconvert.cpp b/src/vqtconvert.cpp index 7f8f1e3..cbd6cda 100644 --- a/src/vqtconvert.cpp +++ b/src/vqtconvert.cpp @@ -1,5 +1,3 @@ -#if defined(Q_OS_WIN) - #include "vqtconvert.h" #include @@ -60,4 +58,3 @@ namespace voidrealms } //end voidrealms::win32 namespace } //end voidrealms namespace -#endif diff --git a/src/vqtconvert.h b/src/vqtconvert.h index 2378a6b..d24e24f 100644 --- a/src/vqtconvert.h +++ b/src/vqtconvert.h @@ -1,5 +1,3 @@ -#if defined(Q_OS_WIN) - #ifndef VQTCONVERT_H #define VQTCONVERT_H @@ -51,4 +49,3 @@ namespace voidrealms } //end voidrealms::win32 namespace } //end voidrealms namespace #endif // VQTCONVERT_H -#endif diff --git a/src/vregistry.cpp b/src/vregistry.cpp index 15fd291..c6f7c3d 100644 --- a/src/vregistry.cpp +++ b/src/vregistry.cpp @@ -1,5 +1,3 @@ -#if defined(Q_OS_WIN) - /* Wrapper for the Windows Registry Version: 1.0 @@ -477,4 +475,3 @@ namespace voidrealms } //end voidrealms::win32 namespace } //end voidrealms namespace -#endif diff --git a/src/vregistry.h b/src/vregistry.h index 3c5ea7c..8609aee 100644 --- a/src/vregistry.h +++ b/src/vregistry.h @@ -1,5 +1,3 @@ -#if defined(Q_OS_WIN) - /* Wrapper for the Windows Registry Version: 1.0 @@ -127,4 +125,3 @@ namespace voidrealms } //end voidrealms::win32 namespace } //end voidrealms namespace #endif // VREGISTRY_H -#endif -- libgit2 0.21.2