Closed tribalchicken closed 8 years ago
I am receiving the same errors and stack traces as @tribalchicken on the new El Capitan profiles. When I make my own profile using the Mac wiki instructions I also run into a different issue. I'm getting "object of type 'int' has no len()". Given the 'int' object has no attribute 'getitem' in the repo and then len() being run on an int, I'm guessing something in the profile creation process is messing up creating the vtypes and an int is being created in a place a list is expected.
Going off of that hunch I diffed a working Yosemite profile from the repo with the profile I created and I found entries like this all over the file:
< 'soi_so': [0x88, ['unsigned long long']],
< 'soi_pcb': [0x90, ['unsigned long long']],
< 'soi_type': [0x98, ['int']],
< 'soi_protocol': [0x9c, ['int']],
< 'soi_family': [0xa0, ['int']],
< 'soi_options': [0xa4, ['short']],
< 'soi_linger': [0xa6, ['short']],
< 'soi_state': [0xa8, ['short']],
< 'soi_qlen': [0xaa, ['short']],
< 'soi_incqlen': [0xac, ['short']],
< 'soi_qlimit': [0xae, ['short']],
< 'soi_timeo': [0xb0, ['short']],
< 'soi_error': [0xb2, ['unsigned short']],
< 'soi_oobmark': [0xb4, ['unsigned int']],
---
> 'soi_so': [0x88, 0],
> 'soi_pcb': [0x90, 0],
> 'soi_type': [0x98, 0],
> 'soi_protocol': [0x9c, 0],
> 'soi_family': [0xa0, 0],
> 'soi_options': [0xa4, 0],
> 'soi_linger': [0xa6, 0],
> 'soi_state': [0xa8, 0],
> 'soi_qlen': [0xaa, 0],
> 'soi_incqlen': [0xac, 0],
> 'soi_qlimit': [0xae, 0],
> 'soi_timeo': [0xb0, 0],
> 'soi_error': [0xb2, 0],
> 'soi_oobmark': [0xb4, 0],
I found out that the following 3 types had the wrong type declarations in the El Captain repo profiles:
'IOExternalAsyncMethod': [ 0x30, {
'object': [0x0, ['pointer', ['IOService_class']]],
'func': [0x8, 0],
'flags': [0x18, ['unsigned int']],
'count0': [0x20, ['unsigned long long']],
'count1': [0x28, ['unsigned long long']],
}],
'IOExternalTrap': [ 0x18, {
'object': [0x0, ['pointer', ['IOService_class']]],
'func': [0x8, 0],
}],
'IOExternalMethod': [ 0x30, {
'object': [0x0, ['pointer', ['IOService_class']]],
'func': [0x8, 0],
'flags': [0x18, ['unsigned int']],
'count0': [0x20, ['unsigned long long']],
'count1': [0x28, ['unsigned long long']],
}],
By looking at previous declarations for this type I determined that func should have been:
'func': [0x8, ['BitField', {'end_bit': -18446744073709551488L, 'start_bit': -18446744073709551616L}]],
I've patched them for the 3 El Capitan profiles and will be submitting a pull request shortly.
I can confirm the patched vtypes do indeed seem to resolve the issue. Thanks, @williamshowalter
Thanks guys, nice work. @atcuno will factor this into the profile generation script in the future.
Hello,
I've run into some issues trying to use the profile for OS X 10.11.3. The same issue seems to appear for the 10.11.1 and 10.11.2 profiles.
Adding the profile causes volatility to crash with
TypeError: 'int' object has no attribute '__getitem__'.
I'm sure I'm missing something simple, but haven't figured it out yet. This is using a clean clone of volatility from git on OS X 10.11 (Have also tested on a Linux box).
Additional info (stack trace and volatility debug messages):
Debug:
Interestingly enough, attempting to build my own profile on an 10.11.3 VM yields a different error - But that will probably be a different issue (or a user issue - haven't looked at it too much).
Let me know if I can provide any other info.
Cheers,
Thomas