nasl_init.c

来自「大国补丁后的nessus2.2.8的源代码」· C语言 代码 · 共 456 行 · 第 1/2 页

C
456
字号
  { "element", "udp", NULL },    "set_udp_elements", set_udp_elements, 0,  { "data", "udp", "uh_dport", "uh_sport", "uh_sum", "uh_ulen", NULL },    "dump_udp_packet", dump_udp_packet, 999, { NULL },    "forge_icmp_packet",forge_icmp_packet, 0,  { "data", "icmp_cksum", "icmp_code", "icmp_id", "icmp_seq", "icmp_type",     "ip", "update_ip_len", NULL },      "get_icmp_element", get_icmp_element, 0,   { "element", "icmp", NULL },  "forge_igmp_packet", forge_igmp_packet, 0,   { "code", "data", "group", "ip", "type", "update_ip_len", NULL },  "send_packet", nasl_send_packet, 99,   { "length", "pcap_active", "pcap_filter", "pcap_timeout", NULL },    "pcap_next", nasl_pcap_next, 1, { "interface", "pcap_filter", "timeout", NULL},  "send_capture", nasl_send_capture, 1, { "data", "interface", "length", "option", "pcap_filter", "socket", "timeout", NULL},  #ifdef HAVE_SSL#ifdef HAVE_OPENSSL_MD2_H  "MD2", nasl_md2, 1, { NULL },#endif  #ifdef HAVE_OPENSSL_MD4_H  "MD4", nasl_md4, 1, { NULL },#endif  "MD5", nasl_md5, 1, { NULL },   "SHA", nasl_sha, 1, { NULL },  "SHA1", nasl_sha1, 1, { NULL },  "RIPEMD160", nasl_ripemd160, 1, { NULL },#ifdef HAVE_OPENSSL_MD2_H    "HMAC_MD2", nasl_hmac_md2, 0, { "data", "key", NULL },#endif    "HMAC_MD5", nasl_hmac_md5, 0, { "data", "key", NULL },  "HMAC_SHA", nasl_hmac_sha, 0, { "data", "key", NULL },  "HMAC_SHA1", nasl_hmac_sha1, 0, { "data", "key", NULL },  "HMAC_DSS", nasl_hmac_dss, 0, { "data", "key", NULL },   "HMAC_RIPEMD160", nasl_hmac_ripemd160, 0, { "data", "key", NULL },  "dh_generate_key", nasl_dh_generate_key, 0, { "g" , "p", "priv", NULL },  "bn_random", nasl_bn_random, 0, { "need", NULL },  "bn_cmp", nasl_bn_cmp, 0, { "key1", "key2", NULL },  "dh_compute_key", nasl_dh_compute_key, 0, { "dh_server_pub", "g", "p", "priv_key", "pub_key", NULL },  "rsa_public_decrypt", nasl_rsa_public_decrypt, 0, { "e", "n", "sig", NULL },  "bf_cbc_encrypt", nasl_bf_cbc_encrypt, 0, { "data", "iv", "key", NULL},  "bf_cbc_decrypt", nasl_bf_cbc_decrypt, 0, { "data", "iv", "key", NULL},  "dsa_do_verify", nasl_dsa_do_verify, 0, { "data", "g", "p", "pub", "q", "r", "s", NULL },  "pem_to_rsa", nasl_pem_to_rsa, 0, { "passphrase", "priv", NULL },  "pem_to_dsa", nasl_pem_to_dsa, 0, { "passphrase", "priv", NULL },  "rsa_sign", nasl_rsa_sign, 0, { "d", "data", "e", "n", NULL },  "dsa_do_sign", nasl_dsa_do_sign, 0, { "data", "g", "p", "priv", "pub", "q", NULL },  #endif    "pread", nasl_pread, 0, { "argv", "cd", "cmd", "nice", NULL },  "find_in_path", nasl_find_in_path, 1, { NULL },  "fread", nasl_fread, 1, { NULL },  "fwrite", nasl_fwrite, 0, { "data", "file", NULL },  "unlink", nasl_unlink, 1, { NULL },  "get_tmp_dir", nasl_get_tmp_dir, 0, { NULL },  "file_stat", nasl_file_stat, 1, { NULL },  "file_open", nasl_file_open, 0, { "mode", "name", NULL },  "file_close", nasl_file_close, 1, { NULL },  "file_read", nasl_file_read, 0, { "fp", "length", NULL },  "file_write", nasl_file_write, 0, { "data", "fp", NULL },  "file_seek", nasl_file_seek, 0, { "fp", "offset", NULL },   "shared_socket_register", nasl_shared_socket_register, 0, { "name", "socket", NULL},  "shared_socket_acquire", nasl_shared_socket_acquire, 1, { NULL },  "shared_socket_release", nasl_shared_socket_release, 1, { NULL },  "shared_socket_destroy", nasl_shared_socket_destroy, 1, { NULL },  NULL, NULL, 0, { NULL }} ;/* String variables */static struct {  const char	*name;  const char	*val;} libsvars[] = {  "NESSUS_VERSION", VERSION,  NULL, NULL, };/* Integer variables */static struct {  const char	*name;  int		val;} libivars[] = {  "TRUE",	1,  "FALSE",	0,  "pcap_timeout",	5,    "IPPROTO_TCP", IPPROTO_TCP,  "IPPROTO_UDP", IPPROTO_UDP,  "IPPROTO_ICMP", IPPROTO_ICMP,  "IPROTO_IP", IPPROTO_IP,  "IPPROTO_IGMP", IPPROTO_IGMP,  "ENCAPS_IP",     NESSUS_ENCAPS_IP,  "ENCAPS_SSLv23", NESSUS_ENCAPS_SSLv23,  "ENCAPS_SSLv2",  NESSUS_ENCAPS_SSLv2,  "ENCAPS_SSLv3",  NESSUS_ENCAPS_SSLv3,  "ENCAPS_TLSv1",  NESSUS_ENCAPS_TLSv1,  "NASL_LEVEL",	NASL_LEVEL,  "TH_FIN", TH_FIN,  "TH_SYN", TH_SYN,  "TH_RST", TH_RST,  "TH_PUSH", TH_PUSH,  "TH_ACK", TH_ACK,  "TH_URG", TH_URG,  "IP_RF", IP_RF,  "IP_DF", IP_DF,  "IP_MF", IP_MF,  "IP_OFFMASK", IP_OFFMASK,  "ACT_INIT", ACT_INIT,   "ACT_GATHER_INFO", ACT_GATHER_INFO,  "ACT_ATTACK", ACT_ATTACK,  "ACT_MIXED_ATTACK", ACT_MIXED_ATTACK,  "ACT_DESTRUCTIVE_ATTACK", ACT_DESTRUCTIVE_ATTACK,  "ACT_DENIAL", ACT_DENIAL,  "ACT_SCANNER", ACT_SCANNER,  "ACT_SETTINGS", ACT_SETTINGS,  "ACT_KILL_HOST", ACT_KILL_HOST,  "ACT_FLOOD", ACT_FLOOD,  "ACT_END", ACT_END,  "MSG_OOB", MSG_OOB,  "NOERR",      NASL_ERR_NOERR,  "ETIMEDOUT",  NASL_ERR_ETIMEDOUT,  "ECONNRESET", NASL_ERR_ECONNRESET,  "EUNREACH",   NASL_ERR_EUNREACH,  "EUNKNOWN",   NASL_ERR_EUNKNOWN,  NULL, 0, };/* See also in exec.c: * COMMAND_LINE * description */int init_nasl_library(lex_ctxt* lexic){  int		i, j, c;  nasl_func	*pf;  named_nasl_var	*v;  tree_cell	tc;  const char	**p, *q;  memset(&tc, 0, sizeof(tc));  for (i = 0, c= 0; i < sizeof(libfuncs) / sizeof(libfuncs[0])-1; i ++)    {      if ((pf = insert_nasl_func(lexic, libfuncs[i].name, NULL)) == NULL)	{	  nasl_perror(lexic, "init_nasl2_library: could not define fct '%s'\n",		  libfuncs[i].name);	  continue;	}      pf->block = libfuncs[i].c_code;      pf->flags |= FUNC_FLAG_INTERNAL;      pf->nb_unnamed_args = libfuncs[i].unnamed;      for (j = 0, p = libfuncs[i].args, q = NULL; (*p) != NULL; j ++)	{	  if (q != NULL && strcmp(q, *p) > 0)	    nasl_perror(lexic, "init_nasl2_library: unsorted args for function %s: %s > %s\n", libfuncs[i].name, q, (*p));	  q = (*p);	  p ++;	}      pf->nb_named_args = j;      pf->args_names = (char**)libfuncs[i].args;      c++;    }  tc.type = CONST_INT;  for (i = 0; i < sizeof(libivars) / sizeof(libivars[0])-1; i ++)    {      tc.x.i_val = libivars[i].val;      if ((v = add_named_var_to_ctxt(lexic, libivars[i].name, &tc)) == NULL)	{	  nasl_perror(lexic, "init_nasl2_library: could not define var '%s'\n",		  libivars[i].name);	  continue;	}      c ++;    }  tc.type = CONST_DATA;  for (i = 0; i < sizeof(libsvars) / sizeof(libsvars[0])-1; i ++)    {      tc.x.str_val = libsvars[i].val;      tc.size = strlen(libsvars[i].val);      if ((v = add_named_var_to_ctxt(lexic, libsvars[i].name, &tc)) == NULL)	{	  nasl_perror(lexic, "init_nasl2_library: could not define var '%s'\n",		  libsvars[i].name);	  continue;	}      c ++;    }  if (add_named_var_to_ctxt(lexic, "NULL", NULL) == NULL)    nasl_perror(lexic, "init_nasl2_library: could not define var 'NULL'\n");  return c;}char * nasl_version(){  static char vers[sizeof(VERSION) + 1];  strncpy(vers, VERSION, sizeof(vers) - 1);  vers[sizeof(vers) - 1 ] = '\0';  return vers;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?