Olá. Neste tópico gostaria de criar uma discussão sobre patches em software fechado no Windows, baghunting. Os objetivos são os seguintes:
1. Familiarizar os iniciantes com ferramentas modernas de análise binária usando exemplos reais, não sintéticos
2. Aprender a reconhecer erros no código nos níveis de montador e descompilador
3. Resolver problemas associados a erros nas próprias ferramentas de análise binária
4. Troca de experiências, quais truques
5. Discussão de soluções para automatizar a busca de bugs e vulnerabilidades. Por exemplo, usando AST Hex-Rays ou outras ferramentas
6. Aprendendo com os erros dos outros 🙃
Vou entender quem não quer compartilhar seu "know-how" e não exige vazar informações que alguém pode vender para você. Aja a seu próprio critério. Vou começar com um bug simples que encontrei no driver cng.sys .
A captura de tela abaixo mostra uma parte da função SymCryptHmacSha1ExpandKey que contém o patch (bloco base cinza). Sua tarefa é entender o significado do patch. Como dica, foi adicionada uma captura de tela com código descompilado obtido usando Diaphora .