1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445
|
/*
* ClamAV bytecode internal API
* This is an automatically generated file!
*
* Copyright (C) 2015 Cisco Systems, Inc. and/or its affiliates. All rights reserved.
* Copyright (C) 2009-2013 Sourcefire, Inc.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE
*/
#include "cltypes.h"
#include "type_desc.h"
#include "bytecode_api.h"
#include "bytecode_api_impl.h"
#include "bytecode_priv.h"
#include <stdlib.h>
uint32_t cli_bcapi_test1(struct cli_bc_ctx *ctx , uint32_t, uint32_t);
int32_t cli_bcapi_read(struct cli_bc_ctx *ctx , uint8_t*, int32_t);
int32_t cli_bcapi_write(struct cli_bc_ctx *ctx , uint8_t*, int32_t);
int32_t cli_bcapi_seek(struct cli_bc_ctx *ctx , int32_t, uint32_t);
uint32_t cli_bcapi_setvirusname(struct cli_bc_ctx *ctx , const uint8_t*, uint32_t);
uint32_t cli_bcapi_debug_print_str(struct cli_bc_ctx *ctx , const uint8_t*, uint32_t);
uint32_t cli_bcapi_debug_print_uint(struct cli_bc_ctx *ctx , uint32_t);
uint32_t cli_bcapi_disasm_x86(struct cli_bc_ctx *ctx , struct DISASM_RESULT*, uint32_t);
uint32_t cli_bcapi_trace_directory(struct cli_bc_ctx *ctx , const uint8_t*, uint32_t);
uint32_t cli_bcapi_trace_scope(struct cli_bc_ctx *ctx , const uint8_t*, uint32_t);
uint32_t cli_bcapi_trace_source(struct cli_bc_ctx *ctx , const uint8_t*, uint32_t);
uint32_t cli_bcapi_trace_op(struct cli_bc_ctx *ctx , const uint8_t*, uint32_t);
uint32_t cli_bcapi_trace_value(struct cli_bc_ctx *ctx , const uint8_t*, uint32_t);
uint32_t cli_bcapi_trace_ptr(struct cli_bc_ctx *ctx , const uint8_t*, uint32_t);
uint32_t cli_bcapi_pe_rawaddr(struct cli_bc_ctx *ctx , uint32_t);
int32_t cli_bcapi_file_find(struct cli_bc_ctx *ctx , const uint8_t*, uint32_t);
int32_t cli_bcapi_file_byteat(struct cli_bc_ctx *ctx , uint32_t);
uint8_t* cli_bcapi_malloc(struct cli_bc_ctx *ctx , uint32_t);
uint32_t cli_bcapi_test2(struct cli_bc_ctx *ctx , uint32_t);
int32_t cli_bcapi_get_pe_section(struct cli_bc_ctx *ctx , struct cli_exe_section*, uint32_t);
int32_t cli_bcapi_fill_buffer(struct cli_bc_ctx *ctx , uint8_t*, uint32_t, uint32_t, uint32_t, uint32_t);
int32_t cli_bcapi_extract_new(struct cli_bc_ctx *ctx , int32_t);
int32_t cli_bcapi_read_number(struct cli_bc_ctx *ctx , uint32_t);
int32_t cli_bcapi_hashset_new(struct cli_bc_ctx *ctx );
int32_t cli_bcapi_hashset_add(struct cli_bc_ctx *ctx , int32_t, uint32_t);
int32_t cli_bcapi_hashset_remove(struct cli_bc_ctx *ctx , int32_t, uint32_t);
int32_t cli_bcapi_hashset_contains(struct cli_bc_ctx *ctx , int32_t, uint32_t);
int32_t cli_bcapi_hashset_done(struct cli_bc_ctx *ctx , int32_t);
int32_t cli_bcapi_hashset_empty(struct cli_bc_ctx *ctx , int32_t);
int32_t cli_bcapi_buffer_pipe_new(struct cli_bc_ctx *ctx , uint32_t);
int32_t cli_bcapi_buffer_pipe_new_fromfile(struct cli_bc_ctx *ctx , uint32_t);
uint32_t cli_bcapi_buffer_pipe_read_avail(struct cli_bc_ctx *ctx , int32_t);
const uint8_t* cli_bcapi_buffer_pipe_read_get(struct cli_bc_ctx *ctx , int32_t, uint32_t);
int32_t cli_bcapi_buffer_pipe_read_stopped(struct cli_bc_ctx *ctx , int32_t, uint32_t);
uint32_t cli_bcapi_buffer_pipe_write_avail(struct cli_bc_ctx *ctx , int32_t);
uint8_t* cli_bcapi_buffer_pipe_write_get(struct cli_bc_ctx *ctx , int32_t, uint32_t);
int32_t cli_bcapi_buffer_pipe_write_stopped(struct cli_bc_ctx *ctx , int32_t, uint32_t);
int32_t cli_bcapi_buffer_pipe_done(struct cli_bc_ctx *ctx , int32_t);
int32_t cli_bcapi_inflate_init(struct cli_bc_ctx *ctx , int32_t, int32_t, int32_t);
int32_t cli_bcapi_inflate_process(struct cli_bc_ctx *ctx , int32_t);
int32_t cli_bcapi_inflate_done(struct cli_bc_ctx *ctx , int32_t);
int32_t cli_bcapi_bytecode_rt_error(struct cli_bc_ctx *ctx , int32_t);
int32_t cli_bcapi_jsnorm_init(struct cli_bc_ctx *ctx , int32_t);
int32_t cli_bcapi_jsnorm_process(struct cli_bc_ctx *ctx , int32_t);
int32_t cli_bcapi_jsnorm_done(struct cli_bc_ctx *ctx , int32_t);
int32_t cli_bcapi_ilog2(struct cli_bc_ctx *ctx , uint32_t, uint32_t);
int32_t cli_bcapi_ipow(struct cli_bc_ctx *ctx , int32_t, int32_t, int32_t);
uint32_t cli_bcapi_iexp(struct cli_bc_ctx *ctx , int32_t, int32_t, int32_t);
int32_t cli_bcapi_isin(struct cli_bc_ctx *ctx , int32_t, int32_t, int32_t);
int32_t cli_bcapi_icos(struct cli_bc_ctx *ctx , int32_t, int32_t, int32_t);
int32_t cli_bcapi_memstr(struct cli_bc_ctx *ctx , const uint8_t*, int32_t, const uint8_t*, int32_t);
int32_t cli_bcapi_hex2ui(struct cli_bc_ctx *ctx , uint32_t, uint32_t);
int32_t cli_bcapi_atoi(struct cli_bc_ctx *ctx , const uint8_t*, int32_t);
uint32_t cli_bcapi_debug_print_str_start(struct cli_bc_ctx *ctx , const uint8_t*, uint32_t);
uint32_t cli_bcapi_debug_print_str_nonl(struct cli_bc_ctx *ctx , const uint8_t*, uint32_t);
uint32_t cli_bcapi_entropy_buffer(struct cli_bc_ctx *ctx , uint8_t*, int32_t);
int32_t cli_bcapi_map_new(struct cli_bc_ctx *ctx , int32_t, int32_t);
int32_t cli_bcapi_map_addkey(struct cli_bc_ctx *ctx , const uint8_t*, int32_t, int32_t);
int32_t cli_bcapi_map_setvalue(struct cli_bc_ctx *ctx , const uint8_t*, int32_t, int32_t);
int32_t cli_bcapi_map_remove(struct cli_bc_ctx *ctx , const uint8_t*, int32_t, int32_t);
int32_t cli_bcapi_map_find(struct cli_bc_ctx *ctx , const uint8_t*, int32_t, int32_t);
int32_t cli_bcapi_map_getvaluesize(struct cli_bc_ctx *ctx , int32_t);
uint8_t* cli_bcapi_map_getvalue(struct cli_bc_ctx *ctx , int32_t, int32_t);
int32_t cli_bcapi_map_done(struct cli_bc_ctx *ctx , int32_t);
int32_t cli_bcapi_file_find_limit(struct cli_bc_ctx *ctx , const uint8_t*, uint32_t, int32_t);
uint32_t cli_bcapi_engine_functionality_level(struct cli_bc_ctx *ctx );
uint32_t cli_bcapi_engine_dconf_level(struct cli_bc_ctx *ctx );
uint32_t cli_bcapi_engine_scan_options(struct cli_bc_ctx *ctx );
uint32_t cli_bcapi_engine_db_options(struct cli_bc_ctx *ctx );
int32_t cli_bcapi_extract_set_container(struct cli_bc_ctx *ctx , uint32_t);
int32_t cli_bcapi_input_switch(struct cli_bc_ctx *ctx , int32_t);
uint32_t cli_bcapi_get_environment(struct cli_bc_ctx *ctx , struct cli_environment*, uint32_t);
uint32_t cli_bcapi_disable_bytecode_if(struct cli_bc_ctx *ctx , const int8_t*, uint32_t, uint32_t);
uint32_t cli_bcapi_disable_jit_if(struct cli_bc_ctx *ctx , const int8_t*, uint32_t, uint32_t);
int32_t cli_bcapi_version_compare(struct cli_bc_ctx *ctx , const uint8_t*, uint32_t, const uint8_t*, uint32_t);
uint32_t cli_bcapi_check_platform(struct cli_bc_ctx *ctx , uint32_t, uint32_t, uint32_t);
int32_t cli_bcapi_pdf_get_obj_num(struct cli_bc_ctx *ctx );
int32_t cli_bcapi_pdf_get_flags(struct cli_bc_ctx *ctx );
int32_t cli_bcapi_pdf_set_flags(struct cli_bc_ctx *ctx , int32_t);
int32_t cli_bcapi_pdf_lookupobj(struct cli_bc_ctx *ctx , uint32_t);
uint32_t cli_bcapi_pdf_getobjsize(struct cli_bc_ctx *ctx , int32_t);
const uint8_t* cli_bcapi_pdf_getobj(struct cli_bc_ctx *ctx , int32_t, uint32_t);
int32_t cli_bcapi_pdf_getobjid(struct cli_bc_ctx *ctx , int32_t);
int32_t cli_bcapi_pdf_getobjflags(struct cli_bc_ctx *ctx , int32_t);
int32_t cli_bcapi_pdf_setobjflags(struct cli_bc_ctx *ctx , int32_t, int32_t);
int32_t cli_bcapi_pdf_get_offset(struct cli_bc_ctx *ctx , int32_t);
int32_t cli_bcapi_pdf_get_phase(struct cli_bc_ctx *ctx );
int32_t cli_bcapi_pdf_get_dumpedobjid(struct cli_bc_ctx *ctx );
int32_t cli_bcapi_matchicon(struct cli_bc_ctx *ctx , const uint8_t*, int32_t, const uint8_t*, int32_t);
int32_t cli_bcapi_running_on_jit(struct cli_bc_ctx *ctx );
int32_t cli_bcapi_get_file_reliability(struct cli_bc_ctx *ctx );
int32_t cli_bcapi_json_is_active(struct cli_bc_ctx *ctx );
int32_t cli_bcapi_json_get_object(struct cli_bc_ctx *ctx , const int8_t*, int32_t, int32_t);
int32_t cli_bcapi_json_get_type(struct cli_bc_ctx *ctx , int32_t);
int32_t cli_bcapi_json_get_array_length(struct cli_bc_ctx *ctx , int32_t);
int32_t cli_bcapi_json_get_array_idx(struct cli_bc_ctx *ctx , int32_t, int32_t);
int32_t cli_bcapi_json_get_string_length(struct cli_bc_ctx *ctx , int32_t);
int32_t cli_bcapi_json_get_string(struct cli_bc_ctx *ctx , int8_t*, int32_t, int32_t);
int32_t cli_bcapi_json_get_boolean(struct cli_bc_ctx *ctx , int32_t);
int32_t cli_bcapi_json_get_int(struct cli_bc_ctx *ctx , int32_t);
const struct cli_apiglobal cli_globals[] = {
/* Bytecode globals BEGIN */
{"__clambc_match_offsets", GLOBAL_MATCH_OFFSETS, 76,
((char*)&((struct cli_bc_ctx*)0)->hooks.match_offsets - (char*)NULL)},
{"__clambc_kind", GLOBAL_KIND, 16,
((char*)&((struct cli_bc_ctx*)0)->hooks.kind - (char*)NULL)},
{"__clambc_match_counts", GLOBAL_MATCH_COUNTS, 76,
((char*)&((struct cli_bc_ctx*)0)->hooks.match_counts - (char*)NULL)},
{"__clambc_filesize", GLOBAL_FILESIZE, 75,
((char*)&((struct cli_bc_ctx*)0)->hooks.filesize - (char*)NULL)},
{"__clambc_pedata", GLOBAL_PEDATA, 69,
((char*)&((struct cli_bc_ctx*)0)->hooks.pedata - (char*)NULL)}
/* Bytecode globals END */
};
const unsigned cli_apicall_maxglobal = _LAST_GLOBAL-1;
static uint16_t cli_tmp0[]={32, 32, 16, 16, 74, 73, 32, 72, 70, 32, 32, 32, 32};
static uint16_t cli_tmp1[]={71};
static uint16_t cli_tmp2[]={32, 32};
static uint16_t cli_tmp3[]={16, 8, 8, 32, 32, 32, 32, 32, 64, 32, 32, 16, 16, 16, 16, 16, 16, 32, 32, 32, 32, 16, 16, 64, 64, 64, 64, 32, 32, 70};
static uint16_t cli_tmp4[]={16, 8, 8, 32, 32, 32, 32, 32, 32, 32, 32, 32, 16, 16, 16, 16, 16, 16, 32, 32, 32, 32, 16, 16, 32, 32, 32, 32, 32, 32, 70};
static uint16_t cli_tmp5[]={32, 16, 16, 32, 32, 32, 16, 16};
static uint16_t cli_tmp6[]={32};
static uint16_t cli_tmp7[]={32};
static uint16_t cli_tmp8[]={32, 32};
static uint16_t cli_tmp9[]={32, 65, 32, 32};
static uint16_t cli_tmp10[]={32, 32, 32};
static uint16_t cli_tmp11[]={32};
static uint16_t cli_tmp12[]={32, 65, 32, 65, 32};
static uint16_t cli_tmp13[]={65, 32, 32};
static uint16_t cli_tmp14[]={32, 32, 32, 32};
static uint16_t cli_tmp15[]={32, 85, 32};
static uint16_t cli_tmp16[]={86};
static uint16_t cli_tmp17[]={32, 32, 32, 32, 32, 32, 32, 87, 87, 87, 87, 87, 87, 87, 8, 8, 8, 8, 8, 8, 8, 8, 8};
static uint16_t cli_tmp18[]={8};
static uint16_t cli_tmp19[]={32, 65, 32};
static uint16_t cli_tmp20[]={32, 65, 32, 32, 32, 32};
static uint16_t cli_tmp21[]={32, 91, 32};
static uint16_t cli_tmp22[]={92};
static uint16_t cli_tmp23[]={32, 32, 32, 32, 32, 32, 32, 32, 32};
static uint16_t cli_tmp24[]={65, 32};
static uint16_t cli_tmp25[]={32, 95, 32};
static uint16_t cli_tmp26[]={96};
static uint16_t cli_tmp27[]={16, 8, 8, 8, 98, 97};
static uint16_t cli_tmp28[]={8};
static uint16_t cli_tmp29[]={99};
static uint16_t cli_tmp30[]={8};
const struct cli_bc_type cli_apicall_types[]={
{DStructType, cli_tmp0, 13, 0, 0},
{DArrayType, cli_tmp1, 16, 0, 0},
{DStructType, cli_tmp2, 2, 0, 0},
{DStructType, cli_tmp3, 30, 0, 0},
{DStructType, cli_tmp4, 31, 0, 0},
{DStructType, cli_tmp5, 8, 0, 0},
{DArrayType, cli_tmp6, 1, 0, 0},
{DArrayType, cli_tmp7, 64, 0, 0},
{DFunctionType, cli_tmp8, 2, 0, 0},
{DFunctionType, cli_tmp9, 4, 0, 0},
{DFunctionType, cli_tmp10, 3, 0, 0},
{DFunctionType, cli_tmp11, 1, 0, 0},
{DFunctionType, cli_tmp12, 5, 0, 0},
{DFunctionType, cli_tmp13, 3, 0, 0},
{DFunctionType, cli_tmp14, 4, 0, 0},
{DFunctionType, cli_tmp15, 3, 0, 0},
{DPointerType, cli_tmp16, 1, 0, 0},
{DStructType, cli_tmp17, 23, 0, 0},
{DArrayType, cli_tmp18, 65, 0, 0},
{DFunctionType, cli_tmp19, 3, 0, 0},
{DFunctionType, cli_tmp20, 6, 0, 0},
{DFunctionType, cli_tmp21, 3, 0, 0},
{DPointerType, cli_tmp22, 1, 0, 0},
{DStructType, cli_tmp23, 9, 0, 0},
{DFunctionType, cli_tmp24, 2, 0, 0},
{DFunctionType, cli_tmp25, 3, 0, 0},
{DPointerType, cli_tmp26, 1, 0, 0},
{DStructType, cli_tmp27, 6, 0, 0},
{DArrayType, cli_tmp28, 29, 0, 0},
{DArrayType, cli_tmp29, 3, 0, 0},
{DArrayType, cli_tmp30, 10, 0, 0}
};
const unsigned cli_apicall_maxtypes=sizeof(cli_apicall_types)/sizeof(cli_apicall_types[0]);
const struct cli_apicall cli_apicalls[]={
/* Bytecode APIcalls BEGIN */
{"test1", 10, 0, 0},
{"read", 19, 0, 1},
{"write", 19, 1, 1},
{"seek", 10, 1, 0},
{"setvirusname", 19, 2, 1},
{"debug_print_str", 19, 3, 1},
{"debug_print_uint", 8, 0, 2},
{"disasm_x86", 25, 4, 1},
{"trace_directory", 19, 5, 1},
{"trace_scope", 19, 6, 1},
{"trace_source", 19, 7, 1},
{"trace_op", 19, 8, 1},
{"trace_value", 19, 9, 1},
{"trace_ptr", 19, 10, 1},
{"pe_rawaddr", 8, 1, 2},
{"file_find", 19, 11, 1},
{"file_byteat", 8, 2, 2},
{"malloc", 24, 0, 3},
{"test2", 8, 3, 2},
{"get_pe_section", 21, 12, 1},
{"fill_buffer", 20, 0, 4},
{"extract_new", 8, 4, 2},
{"read_number", 8, 5, 2},
{"hashset_new", 11, 0, 5},
{"hashset_add", 10, 2, 0},
{"hashset_remove", 10, 3, 0},
{"hashset_contains", 10, 4, 0},
{"hashset_done", 8, 6, 2},
{"hashset_empty", 8, 7, 2},
{"buffer_pipe_new", 8, 8, 2},
{"buffer_pipe_new_fromfile", 8, 9, 2},
{"buffer_pipe_read_avail", 8, 10, 2},
{"buffer_pipe_read_get", 13, 0, 6},
{"buffer_pipe_read_stopped", 10, 5, 0},
{"buffer_pipe_write_avail", 8, 11, 2},
{"buffer_pipe_write_get", 13, 1, 6},
{"buffer_pipe_write_stopped", 10, 6, 0},
{"buffer_pipe_done", 8, 12, 2},
{"inflate_init", 14, 0, 7},
{"inflate_process", 8, 13, 2},
{"inflate_done", 8, 14, 2},
{"bytecode_rt_error", 8, 15, 2},
{"jsnorm_init", 8, 16, 2},
{"jsnorm_process", 8, 17, 2},
{"jsnorm_done", 8, 18, 2},
{"ilog2", 10, 7, 0},
{"ipow", 14, 1, 7},
{"iexp", 14, 2, 7},
{"isin", 14, 3, 7},
{"icos", 14, 4, 7},
{"memstr", 12, 0, 8},
{"hex2ui", 10, 8, 0},
{"atoi", 19, 13, 1},
{"debug_print_str_start", 19, 14, 1},
{"debug_print_str_nonl", 19, 15, 1},
{"entropy_buffer", 19, 16, 1},
{"map_new", 10, 9, 0},
{"map_addkey", 9, 0, 9},
{"map_setvalue", 9, 1, 9},
{"map_remove", 9, 2, 9},
{"map_find", 9, 3, 9},
{"map_getvaluesize", 8, 19, 2},
{"map_getvalue", 13, 2, 6},
{"map_done", 8, 20, 2},
{"file_find_limit", 9, 4, 9},
{"engine_functionality_level", 11, 1, 5},
{"engine_dconf_level", 11, 2, 5},
{"engine_scan_options", 11, 3, 5},
{"engine_db_options", 11, 4, 5},
{"extract_set_container", 8, 21, 2},
{"input_switch", 8, 22, 2},
{"get_environment", 15, 17, 1},
{"disable_bytecode_if", 9, 5, 9},
{"disable_jit_if", 9, 6, 9},
{"version_compare", 12, 1, 8},
{"check_platform", 14, 5, 7},
{"pdf_get_obj_num", 11, 5, 5},
{"pdf_get_flags", 11, 6, 5},
{"pdf_set_flags", 8, 23, 2},
{"pdf_lookupobj", 8, 24, 2},
{"pdf_getobjsize", 8, 25, 2},
{"pdf_getobj", 13, 3, 6},
{"pdf_getobjid", 8, 26, 2},
{"pdf_getobjflags", 8, 27, 2},
{"pdf_setobjflags", 10, 10, 0},
{"pdf_get_offset", 8, 28, 2},
{"pdf_get_phase", 11, 7, 5},
{"pdf_get_dumpedobjid", 11, 8, 5},
{"matchicon", 12, 2, 8},
{"running_on_jit", 11, 9, 5},
{"get_file_reliability", 11, 10, 5},
{"json_is_active", 11, 11, 5},
{"json_get_object", 9, 7, 9},
{"json_get_type", 8, 29, 2},
{"json_get_array_length", 8, 30, 2},
{"json_get_array_idx", 10, 11, 0},
{"json_get_string_length", 8, 31, 2},
{"json_get_string", 9, 8, 9},
{"json_get_boolean", 8, 32, 2},
{"json_get_int", 8, 33, 2}
/* Bytecode APIcalls END */
};
const unsigned cli_numapicalls=sizeof(cli_apicalls)/sizeof(cli_apicalls[0]);
const cli_apicall_int2 cli_apicalls0[] = {
(cli_apicall_int2)cli_bcapi_test1,
(cli_apicall_int2)cli_bcapi_seek,
(cli_apicall_int2)cli_bcapi_hashset_add,
(cli_apicall_int2)cli_bcapi_hashset_remove,
(cli_apicall_int2)cli_bcapi_hashset_contains,
(cli_apicall_int2)cli_bcapi_buffer_pipe_read_stopped,
(cli_apicall_int2)cli_bcapi_buffer_pipe_write_stopped,
(cli_apicall_int2)cli_bcapi_ilog2,
(cli_apicall_int2)cli_bcapi_hex2ui,
(cli_apicall_int2)cli_bcapi_map_new,
(cli_apicall_int2)cli_bcapi_pdf_setobjflags,
(cli_apicall_int2)cli_bcapi_json_get_array_idx
};
const cli_apicall_pointer cli_apicalls1[] = {
(cli_apicall_pointer)cli_bcapi_read,
(cli_apicall_pointer)cli_bcapi_write,
(cli_apicall_pointer)cli_bcapi_setvirusname,
(cli_apicall_pointer)cli_bcapi_debug_print_str,
(cli_apicall_pointer)cli_bcapi_disasm_x86,
(cli_apicall_pointer)cli_bcapi_trace_directory,
(cli_apicall_pointer)cli_bcapi_trace_scope,
(cli_apicall_pointer)cli_bcapi_trace_source,
(cli_apicall_pointer)cli_bcapi_trace_op,
(cli_apicall_pointer)cli_bcapi_trace_value,
(cli_apicall_pointer)cli_bcapi_trace_ptr,
(cli_apicall_pointer)cli_bcapi_file_find,
(cli_apicall_pointer)cli_bcapi_get_pe_section,
(cli_apicall_pointer)cli_bcapi_atoi,
(cli_apicall_pointer)cli_bcapi_debug_print_str_start,
(cli_apicall_pointer)cli_bcapi_debug_print_str_nonl,
(cli_apicall_pointer)cli_bcapi_entropy_buffer,
(cli_apicall_pointer)cli_bcapi_get_environment
};
const cli_apicall_int1 cli_apicalls2[] = {
(cli_apicall_int1)cli_bcapi_debug_print_uint,
(cli_apicall_int1)cli_bcapi_pe_rawaddr,
(cli_apicall_int1)cli_bcapi_file_byteat,
(cli_apicall_int1)cli_bcapi_test2,
(cli_apicall_int1)cli_bcapi_extract_new,
(cli_apicall_int1)cli_bcapi_read_number,
(cli_apicall_int1)cli_bcapi_hashset_done,
(cli_apicall_int1)cli_bcapi_hashset_empty,
(cli_apicall_int1)cli_bcapi_buffer_pipe_new,
(cli_apicall_int1)cli_bcapi_buffer_pipe_new_fromfile,
(cli_apicall_int1)cli_bcapi_buffer_pipe_read_avail,
(cli_apicall_int1)cli_bcapi_buffer_pipe_write_avail,
(cli_apicall_int1)cli_bcapi_buffer_pipe_done,
(cli_apicall_int1)cli_bcapi_inflate_process,
(cli_apicall_int1)cli_bcapi_inflate_done,
(cli_apicall_int1)cli_bcapi_bytecode_rt_error,
(cli_apicall_int1)cli_bcapi_jsnorm_init,
(cli_apicall_int1)cli_bcapi_jsnorm_process,
(cli_apicall_int1)cli_bcapi_jsnorm_done,
(cli_apicall_int1)cli_bcapi_map_getvaluesize,
(cli_apicall_int1)cli_bcapi_map_done,
(cli_apicall_int1)cli_bcapi_extract_set_container,
(cli_apicall_int1)cli_bcapi_input_switch,
(cli_apicall_int1)cli_bcapi_pdf_set_flags,
(cli_apicall_int1)cli_bcapi_pdf_lookupobj,
(cli_apicall_int1)cli_bcapi_pdf_getobjsize,
(cli_apicall_int1)cli_bcapi_pdf_getobjid,
(cli_apicall_int1)cli_bcapi_pdf_getobjflags,
(cli_apicall_int1)cli_bcapi_pdf_get_offset,
(cli_apicall_int1)cli_bcapi_json_get_type,
(cli_apicall_int1)cli_bcapi_json_get_array_length,
(cli_apicall_int1)cli_bcapi_json_get_string_length,
(cli_apicall_int1)cli_bcapi_json_get_boolean,
(cli_apicall_int1)cli_bcapi_json_get_int
};
const cli_apicall_malloclike cli_apicalls3[] = {
(cli_apicall_malloclike)cli_bcapi_malloc
};
const cli_apicall_ptrbuffdata cli_apicalls4[] = {
(cli_apicall_ptrbuffdata)cli_bcapi_fill_buffer
};
const cli_apicall_allocobj cli_apicalls5[] = {
(cli_apicall_allocobj)cli_bcapi_hashset_new,
(cli_apicall_allocobj)cli_bcapi_engine_functionality_level,
(cli_apicall_allocobj)cli_bcapi_engine_dconf_level,
(cli_apicall_allocobj)cli_bcapi_engine_scan_options,
(cli_apicall_allocobj)cli_bcapi_engine_db_options,
(cli_apicall_allocobj)cli_bcapi_pdf_get_obj_num,
(cli_apicall_allocobj)cli_bcapi_pdf_get_flags,
(cli_apicall_allocobj)cli_bcapi_pdf_get_phase,
(cli_apicall_allocobj)cli_bcapi_pdf_get_dumpedobjid,
(cli_apicall_allocobj)cli_bcapi_running_on_jit,
(cli_apicall_allocobj)cli_bcapi_get_file_reliability,
(cli_apicall_allocobj)cli_bcapi_json_is_active
};
const cli_apicall_bufget cli_apicalls6[] = {
(cli_apicall_bufget)cli_bcapi_buffer_pipe_read_get,
(cli_apicall_bufget)cli_bcapi_buffer_pipe_write_get,
(cli_apicall_bufget)cli_bcapi_map_getvalue,
(cli_apicall_bufget)cli_bcapi_pdf_getobj
};
const cli_apicall_int3 cli_apicalls7[] = {
(cli_apicall_int3)cli_bcapi_inflate_init,
(cli_apicall_int3)cli_bcapi_ipow,
(cli_apicall_int3)cli_bcapi_iexp,
(cli_apicall_int3)cli_bcapi_isin,
(cli_apicall_int3)cli_bcapi_icos,
(cli_apicall_int3)cli_bcapi_check_platform
};
const cli_apicall_2bufs cli_apicalls8[] = {
(cli_apicall_2bufs)cli_bcapi_memstr,
(cli_apicall_2bufs)cli_bcapi_version_compare,
(cli_apicall_2bufs)cli_bcapi_matchicon
};
const cli_apicall_ptrbufid cli_apicalls9[] = {
(cli_apicall_ptrbufid)cli_bcapi_map_addkey,
(cli_apicall_ptrbufid)cli_bcapi_map_setvalue,
(cli_apicall_ptrbufid)cli_bcapi_map_remove,
(cli_apicall_ptrbufid)cli_bcapi_map_find,
(cli_apicall_ptrbufid)cli_bcapi_file_find_limit,
(cli_apicall_ptrbufid)cli_bcapi_disable_bytecode_if,
(cli_apicall_ptrbufid)cli_bcapi_disable_jit_if,
(cli_apicall_ptrbufid)cli_bcapi_json_get_object,
(cli_apicall_ptrbufid)cli_bcapi_json_get_string
};
const unsigned cli_apicall_maxapi = sizeof(cli_apicalls)/sizeof(cli_apicalls[0]);
|