Skip to content

Pseudo-C drops useful casting and produces sementailly wrong output #6595

@xusheng6

Description

@xusheng6

We can see in the screenshot that the HLIL is correct, but in pseudo-C it is missing a (uint8_t):

Image

The correct C code should be:

if (((uint32_t)((uint8_t)x9_2378 - x10_2292) ^ x11_1720) <= 0x1d

Binary: gentle wizard dances cheerfully (it is a rev chall from plaidCTF)

Address: 0x410fa8

Metadata

Metadata

Assignees

Labels

Effort: LowIssue should take < 1 weekImpact: MediumIssue is impactful with a bad, or no, workaroundLanguageRep: Pseudo-CIssue involves Pseudo-C

Type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions