davuxcom / frida-scripts

Inject JS and C# into Windows apps, call COM and WinRT APIs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Error: Didn\'t find {"length":"ulong","IfInde":"ulong"} in TypeMap

scruel opened this issue · comments

Following code got this error:

var IP_ADAPTER_ADDRESSES = {
    union: {
        alignment: 'ulong',
        'struct': {
            length: 'ulong',
            IfInde: 'ulong',
        },
    },
    next: 'pointer',
    adapterName: 'pointer',
    ...
}

...
var test = new Struct(IP_ADAPTER_ADDRESSES, args[3])
...

Solved this issue by flowing code(no time for creating PR), but still, I could get any info by parsing the pointer object.

    var base_ptr_size = 0;
    for (var member in structInfo) {
        if (member == "union") {
            var union = structInfo[member];
            for (var union_member in union) {
                var union_member_type = union[union_member];
                if (union_member == "struct") {
                    var struct = structInfo[union_member];
                    for (var struct_member in struct) {
                        var struct_member_type = struct[struct_member];
                        CreateGetterSetter(this, struct_member, struct_member_type, base_ptr_size);
                        base_ptr_size += SizeOfType(struct_member_type);
                    }
                } else {
                    CreateGetterSetter(this, union_member, union_member_type, base_ptr_size);
                    base_ptr_size += SizeOfType(union_member_type);
                }
            }
        } else {
            CreateGetterSetter(this, member, structInfo[member], base_ptr_size);
            base_ptr_size += SizeOfType(structInfo[member]);
        }
    }

IP_ADAPTER_ADDRESSES is too difficult to parse via this function...