static int lar_module_init(void) { int index = 0; struct larent *larent; lar = openlar(NULL); if (lar == NULL) return 0; while ((larent = readlar(lar))) lcount++; lnames = malloc(lcount * sizeof(char *)); if (lnames == NULL) return 0; rewindlar(lar); while ((larent = readlar(lar))) lnames[index++] = strdup((const char *) larent->name); return 0; }
int main(void) { extern unsigned long _binary_builtin_lar_start; struct LAR *lar; print_banner(); lar = openlar((void *)&_binary_builtin_lar_start); if (lar == NULL) { printf("[CHOOSER]: Unable to scan the attached LAR file\n"); return -1; } get_configuration(lar); if (bayoucfg.n_entries == 0) { printf("[CHOOSER]: No payloads were found in the LAR\n"); return -1; } /* * If timeout == 0xFF, then show the menu immediately. * If timeout is zero, then find and run the default item immediately. * If there is no default item, then show the menu. * If timeout is anything else, then show a message and wait for a * keystroke. If there is no keystroke in time then run the default. * If there is no default then show the menu. */ if (bayoucfg.timeout != 0xFF) { struct payload *d = payload_get_default(); if (d != NULL) { if (bayoucfg.timeout == 0) run_payload(d); else run_payload_timeout(d, bayoucfg.timeout); } } menu(); return 0; }