Skip to content

Commit

Permalink
[REFACT] Small refactoring of parameters parsing
Browse files Browse the repository at this point in the history
  • Loading branch information
hasherezade committed Feb 26, 2024
1 parent 7afc4a3 commit 999c502
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 52 deletions.
8 changes: 1 addition & 7 deletions main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -50,12 +50,6 @@ t_pesieve_res deploy_scan(t_hh_params &hh_args)
return scan_res;
}

void free_params(t_params& args)
{
free_strparam(args.modules_ignored);
free_strparam(args.pattern_file);
}

int main(int argc, char *argv[])
{
t_hh_params hh_args;
Expand Down Expand Up @@ -83,6 +77,6 @@ int main(int argc, char *argv[])
std::cout << std::endl;
}
const t_pesieve_res res = deploy_scan(hh_args);
free_params(hh_args.pesieve_args);
uParams.freeStruct(hh_args);
return res;
}
99 changes: 54 additions & 45 deletions params_info/params.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,27 +76,6 @@ void print_version(const std::string &version , WORD info_color = HILIGHTED_COLO
std::cout << std::endl;
}

bool alloc_strparam(PARAM_STRING& strparam, ULONG len)
{
if (strparam.buffer != nullptr) { // already allocated
return false;
}
strparam.buffer = (char*)calloc(len + 1, sizeof(char));
if (strparam.buffer) {
strparam.length = len;
return true;
}
return false;
}

void free_strparam(PARAM_STRING& strparam)
{
free(strparam.buffer);
strparam.buffer = nullptr;
strparam.length = 0;
}


class HHParams : public Params
{
public:
Expand Down Expand Up @@ -370,7 +349,7 @@ class HHParams : public Params
std::cout << "URL: " << HH_URL << std::endl;
}

void fillStruct(t_hh_params &ps)
void fillStruct(t_hh_params& ps)
{
fillPEsieveStruct(ps.pesieve_args);
bool hooks = false;
Expand All @@ -392,18 +371,48 @@ class HHParams : public Params
if (myParam && myParam->isSet()) {
myParam->stripToElements(ps.names_list);
}

myParam = dynamic_cast<StringListParam*>(this->getParam(PARAM_PROCESSES_IGNORE));
if (myParam && myParam->isSet()) {
myParam->stripToElements(ps.ignored_names_list);
}

IntListParam *myIntParam = dynamic_cast<IntListParam*>(this->getParam(PARAM_PID));
IntListParam* myIntParam = dynamic_cast<IntListParam*>(this->getParam(PARAM_PID));
if (myIntParam && myIntParam->isSet()) {
myIntParam->stripToIntElements(ps.pids_list);
}
}

void freeStruct(t_hh_params& ps)
{
free_strparam(ps.pesieve_args.modules_ignored);
free_strparam(ps.pesieve_args.pattern_file);
}

protected:

// Fill PE-sieve params

bool alloc_strparam(PARAM_STRING& strparam, size_t len)
{
if (strparam.buffer != nullptr) { // already allocated
return false;
}
strparam.buffer = (char*)calloc(len + 1, sizeof(char));
if (strparam.buffer) {
strparam.length = len;
return true;
}
return false;
}

void free_strparam(pesieve::PARAM_STRING& strparam)
{
if (strparam.buffer) {
free(strparam.buffer);
}
strparam.buffer = nullptr;
strparam.length = 0;
}

bool fillStringParam(const std::string& paramId, PARAM_STRING& strparam)
{
StringParam* myStr = dynamic_cast<StringParam*>(this->getParam(paramId));
Expand All @@ -423,29 +432,29 @@ class HHParams : public Params
return is_copied;
}

protected:
void fillPEsieveStruct(t_params &ps)
{
copyVal<EnumParam>(PARAM_IMP_REC, ps.imprec_mode);
copyVal<EnumParam>(PARAM_OUT_FILTER, ps.out_filter);
void fillPEsieveStruct(t_params& ps)
{
copyVal<EnumParam>(PARAM_IMP_REC, ps.imprec_mode);
copyVal<EnumParam>(PARAM_OUT_FILTER, ps.out_filter);

fillStringParam(PARAM_MODULES_IGNORE, ps.modules_ignored);
fillStringParam(PARAM_MODULES_IGNORE, ps.modules_ignored);

copyVal<BoolParam>(PARAM_QUIET, ps.quiet);
copyVal<EnumParam>(PARAM_JSON_LVL, ps.json_lvl);
copyVal<BoolParam>(PARAM_QUIET, ps.quiet);
copyVal<EnumParam>(PARAM_JSON_LVL, ps.json_lvl);

copyVal<BoolParam>(PARAM_MINIDUMP, ps.minidump);
copyVal<EnumParam>(PARAM_SHELLCODE, ps.shellcode);
copyVal<EnumParam>(PARAM_OBFUSCATED, ps.obfuscated);
copyVal<BoolParam>(PARAM_THREADS, ps.threads);
copyVal<BoolParam>(PARAM_REFLECTION, ps.make_reflection);
copyVal<BoolParam>(PARAM_CACHE, ps.use_cache);
copyVal<BoolParam>(PARAM_MINIDUMP, ps.minidump);
copyVal<EnumParam>(PARAM_SHELLCODE, ps.shellcode);
copyVal<EnumParam>(PARAM_OBFUSCATED, ps.obfuscated);
copyVal<BoolParam>(PARAM_THREADS, ps.threads);
copyVal<BoolParam>(PARAM_REFLECTION, ps.make_reflection);
copyVal<BoolParam>(PARAM_CACHE, ps.use_cache);

copyVal<EnumParam>(PARAM_IAT, ps.iat);
copyVal<EnumParam>(PARAM_DOTNET_POLICY, ps.dotnet_policy);
copyVal<EnumParam>(PARAM_DATA, ps.data);
copyVal<EnumParam>(PARAM_DUMP_MODE, ps.dump_mode);
copyVal<EnumParam>(PARAM_IAT, ps.iat);
copyVal<EnumParam>(PARAM_DOTNET_POLICY, ps.dotnet_policy);
copyVal<EnumParam>(PARAM_DATA, ps.data);
copyVal<EnumParam>(PARAM_DUMP_MODE, ps.dump_mode);

fillStringParam(PARAM_PATTERN, ps.pattern_file);
}

fillStringParam(PARAM_PATTERN, ps.pattern_file);
}
};

0 comments on commit 999c502

Please sign in to comment.