Jeg har med et skadelig programvare å gjøre som bruker omfattende PCRE (Perl-kompatible regulære uttrykk). Normalt kunne jeg lese dem, men det ser ut til at de er i et slags binært format (kompilert, kanskje?). De starter alle med ERCP
(sjekk hexdumpen nedenfor); FWIW, jeg mistenker sterkt at språket som genererte denne koden var C ++.
00000150 00 00 00 00 11 00 5e 00 00 00 00 00 00 00 45 52 | ...... ^ ....... ER | 00000160 43 50 56 00 00 00 00 00 80 00 04 00 00 00 01 00 | CPV ............. | 00000170 00 00 00 00 74 00 28 00 00 00 00 00 00 00 00 00 | .... t. (......... | 00000180 00 00 00 00 00 00 5e 00 2a 5f 00 06 00 01 1a 54 | ..... . ^. * _..... T | 00000190 00 05 1c 2e 55 00 0b 1c 61 1c 61 1c 61 1c 61 1c | .... U ... aaaa | 000001a0 61 1c 61 1c 61 1c 61 1c 2e 1c 6e 1c 65 1c 74 1b | aaaa..net | 000001b0 55 00 2a 00 00 00 00 00 8d ff a5 95 0a 2d 2d 2d | U. * ..........--- | kode>
I dette eksemplet ser det ut til at regex samsvarer med en streng knyttet til et internettdomene, aaaaaaa.net.
Mitt spørsmål er: gitt en binær blob som dette, er det mulig å gå tilbake til en "menneskelig lesbar" (dekompilert?) PCRE? ( ie ^ aaaaaa \ .net $
) Hvis ja, hvordan skal jeg gjøre det?