
Determine qual arquitetura de CPU é usada em um arquivo binário.
Determina qual arquitetura de CPU é usada em um arquivo binário. Exemplo:
$ cpu_rec_rs /bin/bash /usr/lib/firmware/rtlwifi/rtl8821aefw*
Loading corpus from cpu_rec_corpus/*.corpus
----------------------------------------------------------------------------------------
File | Range | Detected Architecture
----------------------------------------------------------------------------------------
/bin/bash | Whole file | X86-64
/usr/lib/firmware/rtlwifi/rtl8821aefw_29.bin | 0x3200-0x4400 | 8051
/usr/lib/firmware/rtlwifi/rtl8821aefw_29.bin | 0x4600-0x5000 | 8051
/usr/lib/firmware/rtlwifi/rtl8821aefw_29.bin | 0x6000-0x6600 | 8051
/usr/lib/firmware/rtlwifi/rtl8821aefw_29.bin | 0x6600-0x6c00 | 8051
/usr/lib/firmware/rtlwifi/rtl8821aefw.bin | Whole file | 8051
/usr/lib/firmware/rtlwifi/rtl8821aefw_wowlan.bin | Whole file | 8051
----------------------------------------------
Nota: como a abordagem é baseada em estatísticas, falsos positivos são definitivamente possíveis. Você deve verificar com outras fontes e validar os resultados com um desmontador.
Em particular, arquivos pequenos são mais propensos a falsos positivos, assim como janelas deslizantes menores. Falsos positivos comuns incluem:
xmos_xs2aNDS32cpu_rec_rs é uma reimplementação em Rust do original cpu_rec. Por que reimplementá-lo?
O cpu_rec original contém muito código necessário para experimentar e atualizar o corpus. Se você quiser experimentar várias configurações para previsão, use cpu_rec. Ele também contém documentação e links para a teoria por trás dele (apresentação SSTIC).