uxmal / reko

Reko is a binary decompiler.
https://uxmal.github.io/reko
GNU General Public License v2.0
2.1k stars 251 forks source link

Create rewriter for x86 strcpy chain #1272

Closed ptomin closed 1 year ago

ptomin commented 1 year ago

Many x86 binaries contanains strcpy(<dst>, <src>) compiled as scasb/movsd/movsb sequence:

        mov edi,<src>
        mov edx,<dst>
        or  ecx,0FFh
        xor eax,eax
        repne scasb
        not ecx
        sub edi,ecx
        mov esi,edi
        mov eax,ecx
        mov edi,edx
        shr ecx,2h
        rep movsd
        mov ecx,eax
        and ecx,3h
        rep movsb
        ret
uxmal commented 1 year ago

Looks good. Thanks for the contribution!