Exemplo n.º 1
0
int main(int argc, char **argv)
{
        MalelfDissect dissect;
        MalelfInfect infect;
        Disas disas;
        Database database;
        Analyse analyse;
        _u8 error = MALELF_SUCCESS;

        if (argc == 1) {
                _malelf_help();
                return -1;
        }

        if (strncmp(argv[1], DISSECT, sizeof(DISSECT)) == 0) {
                error = malelf_dissect_init(&dissect, argc, argv);
                malelf_dissect_finish(&dissect);
        } else if (strncmp(argv[1],
                           SHELLCODE,
                           sizeof (SHELLCODE)) == 0) {
                malelf_shellcode_init(argc, argv);
                malelf_shellcode_finish();
        } else if (strncmp(argv[1], INFECT, sizeof(INFECT)) == 0) {
                malelf_infect_init(&infect, argc, argv);
                malelf_infect_finish(&infect);
        } else if (strncmp(argv[1], DYNAMIC_ANALYSIS, sizeof(DYNAMIC_ANALYSIS)) == 0) {
                malelf_dynanalyse_init(argc, argv);
                malelf_dynanalyse_finish();
        } else if (strncmp(argv[1], DISAS, sizeof(DISAS)) == 0) {
                disas_init(&disas, argc, argv);
                disas_finish(&disas);
        } else if (strncmp(argv[1], DATABASE, sizeof(DATABASE)) == 0) {
                database_init(&database, argc, argv);
                database_finish(&database);
        } else if (strncmp(argv[1], ANALYSE, sizeof(ANALYSE)) == 0) {
                error = analyse_init(&analyse, argc, argv);
                analyse_finish(&analyse);
        } else if (strncmp(argv[1], "-v", 2) ||
                   strncmp(argv[1], "--version", 9)) {
                show_version(*argv);
        } else {
                _malelf_help();
        }

        if (MALELF_SUCCESS != error) {
                if (MALELF_ERROR != error) {
                        MALELF_PERROR(error);
                }

                return error;
        }

        return 0;
}
Exemplo n.º 2
0
/**
 * 主程序全局初始化函数
 */
void
WD_init()
{
	// 记录起始运行时间
	if(-1 == time(&WD_start_time)) {
		err_exit("get start time error");
	}
	// 初始化配置文件模块
	WD_config_init();

	user_config_init();
	analyse_init();
	decrypt_init();
	analyse_flow_init();
}