Open joelreymont opened 1 month ago
Here's a binary that repros the issue: a.txt
var_38
to char str[0x20]
str
to char* str2
Edit: Ok it's not marked low confidence, it's grayed out because it's dead code
Here's the main I see
00001139 int32_t main(int32_t argc, char** argv, char** envp)
00001141 int32_t argc_1 = argc
00001144 char** argv_1 = argv
00001148 char** envp_1 = envp
0000114c void* fsbase
0000114c int64_t rax = *(fsbase + 0x28)
0000115b int64_t s
0000115b __builtin_memset(s: &s, c: 0, n: 0x20)
00001184 *(fsbase + 0x28)
0000118d if (rax == *(fsbase + 0x28))
00001195 return 0
0000118f __stack_chk_fail()
0000118f noreturn
Looked at the stack view to figure out that var_38
must be s
.
Changed the type of s
to char str[0x20]
and got
00001139 int32_t main(int32_t argc, char** argv, char** envp)
00001141 int32_t argc_1 = argc
00001144 char** argv_1 = argv
00001148 char** envp_1 = envp
0000114c void* fsbase
0000114c int64_t rax = *(fsbase + 0x28)
0000115b char str[0x20]
0000115b __builtin_memset(s: &str, c: 0, n: 0x20)
00001184 *(fsbase + 0x28)
0000118d if (rax == *(fsbase + 0x28))
00001195 return 0
0000118f __stack_chk_fail()
0000118f noreturn
Everything worked as expected.
Change it to char* str
after
Yes, it went back to s
and the type was greyed-out so must be low confidence.
My original complaint was that the process was going the other way around, though, and I had to ask BN to make my type twice. Did it decide it was a low-confidence type the first time around?
That's my current guess
I don't know if BN is working as intended here so feel free to close the issue.
I object to BN claiming that I'm wrong, though, given that I'm right in the end 🤷🏼♂️.
Definitely not working as intended :P
Version and Platform (required):
Internal binary
major dine favor
.I pointed at
description
and set the type with 'y' tochar description[0x20]
this is what I got as a resultTyping
s
and changing it tochar description[0x20]
does the right thingbut why not the first time around?
I was able to reproduce this several times by undoing my changes.