Timeline for re-construction of c code: movsx with test instruction
Current License: CC BY-SA 3.0
9 events
when toggle format | what | by | license | comment | |
---|---|---|---|---|---|
Jan 24, 2018 at 9:12 | comment | added | alive-and-well |
@cimarron the jne jumps right after the jle . The jle jumps to the function prolog. I know that usually it would be if (array[i] != 0 && i < MAXCOUNT) but to me it looks differently.
|
|
Jan 24, 2018 at 8:51 | comment | added | cimarron |
There is not enough context in the disassembly you gave to say definitively (i.e. where are the jumps going to and what code is being executed for each condition). In general for a null-terminated string/array, it would be if (array[i] != 0 && i < MAXCOUNT) -- AND instead of OR
|
|
Jan 23, 2018 at 10:52 | comment | added | alive-and-well | I have one more question: Is the reconstruction to "||" correct?, or should it be a "&&"? | |
Jan 23, 2018 at 8:45 | vote | accept | alive-and-well | ||
Jan 19, 2018 at 21:15 | comment | added | peter ferrie | and it will become 0xFFFFFFxx only if the bit 7 of [eax] is set, otherwise it will be 0x000000xx. The point being that the array being read has been defined as a signed char * | |
Jan 17, 2018 at 16:50 | answer | added | cimarron | timeline score: 3 | |
Jan 17, 2018 at 16:16 | comment | added | malikcjm | Its loading one byte from memory address pointed by value stored inne eax. Ecx = (char)*eax | |
Jan 17, 2018 at 14:44 | review | First posts | |||
Jan 19, 2018 at 17:40 | |||||
Jan 17, 2018 at 14:41 | history | asked | alive-and-well | CC BY-SA 3.0 |