I'm playing with an ELF binary to learn IDA, and I'm not sure how to interpret what I'm seeing..
A function calls this:
v1 = MList[2 * result];
When I look at MList, it looks like this:
public MList
MList dd 12Fh
dd offset M1
db 30h ; 0
db 1
db 0
db 0
offset M2
db 31h ; 1
db 1
db 0
db 0
dd offset M3
db 32h ; 2
db 1
db 0
db 0
...
Each of the M*
s looks like this:
public M2
M2 db 0Ch
db 0
db 0
db 0
db 1
So what exactly is MList? I'm guessing some kind of global table or something, but I can't make heads or tails of what it is. What would this be in regular C code?
operator[]()
, say. But to the best of my knowledge IDA and Hex-Rays do not yet offer this sort of functionality. Either way, what I typically do is to try and find code that acts on (i.e. reads or writes) the data. It's practically the only way one can make sense of types during static RCE.