0

This is probably something very easy that I'm missing.

I have this operation

length_of_userInput = (signed int)(unsigned __int8)userInput >> 1;

And length_of_userInput is currently reading '4LL', type is __int64.

I'm wondering what is the correct type to give IDA to display '4LL' into a readable int?

I've tried inputting int, long (becomes __int64), and all __ints (int8,16,32) with no success.

This is the assembly:

mov     rax, [rbp+var_6E8]
mov     [rbp+userInputBuffer], rax
mov     rax, [rbp+userInputBuffer]
mov     rcx, [rbp+auth_string_pointer]
mov     [rbp+var_528], rcx
mov     rcx, [rbp+var_528]
mov     [rbp+var_520], rcx
mov     rdx, [rbp+var_520]
mov     [rbp+var_518], rdx
mov     rdx, [rbp+var_518]
mov     [rbp+var_510], rdx
mov     rdx, [rbp+var_510]
movzx   esi, byte ptr [rdx]
and     esi, 1
cmp     esi, 0
mov     [rbp+length_of_userInput], rax
mov     [rbp+var_6F8], rcx

(disclaimer: naming might be wrong. I hope not but I'm not sure :/ )

3
  • I know I can edit the data type with y. I want to know what data type I should be using. Commented Mar 2, 2019 at 18:06
  • The actual data type can be known from the corresponding assembly code. Please add that in your question.
    – Biswapriyo
    Commented Mar 2, 2019 at 18:08
  • @Biswapriyo I added it Commented Mar 2, 2019 at 18:24

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.