I'm learning reverse engineering and I'm trying to understand what process people use to identify a variable type.
For example, I'm looking at an argument being passed to a function and I'm trying to understand what it is. This application uses Objective-C. This parameter could be an NSString, it could be a pointer to some struct, it could be anything, right? Printing it out shows this:
(lldb) po $rsi
140732653141208
How do I find out what it is? I understand there is probably no perfect formula to definitely know what this represents, but is there some process that a more experienced person would use to try to decipher what this represents?
I'm currently just trying every format and hoping something catches my eye.
(lldb) p/x $rsi
(lldb) p/s $rsi
(lldb) x/x $rsi
(lldb) x/s $rsi
Could someone walk me through what they do or point me to some resources? This is specifically for lldb.