Exemple #1
0
char* win_get_filename_from_handle(drakvuf_t drakvuf, drakvuf_trap_info_t* info, addr_t handle)
{
    addr_t process = drakvuf_get_current_process(drakvuf, info->vcpu);
    if (!process) return NULL;

    addr_t obj = drakvuf_get_obj_by_handle(drakvuf, process, handle);
    if (!obj) return NULL;

    unicode_string_t* us = drakvuf_read_unicode(drakvuf, info, obj + drakvuf->offsets[OBJECT_HEADER_BODY] + drakvuf->offsets[FILEOBJECT_NAME]);
    if (!us) return NULL;

    char* filename = (char*)us->contents;
    us->contents = NULL;
    vmi_free_unicode_str(us);

    return filename;
}
Exemple #2
0
char *drakvuf_get_current_process_name(drakvuf_t drakvuf, uint64_t vcpu_id, x86_registers_t *regs) {
    return drakvuf_get_process_name(drakvuf, drakvuf_get_current_process(drakvuf, vcpu_id, regs));
}