BinCAT Purrfecting binary static analysis 8 juin 2017 Philippe Biondi, Raphaël Rigo, Sarah Zennou, Xavier Mehrenberger
Plan Introduction Démonstration Sous le capot Conclusion 2 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
Plan Introduction Démonstration Sous le capot Conclusion 3 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
BinCAT ( Binary Code Analysis Toolkit ) . . . taint valeurs analysis extensible x86 CFG avec . . . sauts propriétés x86 indirects calculées . . . types . . . Analyseur d’exécutables analyses statique avant/ arrière base intégré théorique à IDA 4 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
BinCAT ( Binary Code Analysis Toolkit ) . . . taint valeurs analysis extensible x86 CFG avec . . . sauts propriétés x86 indirects calculées . . . types . . . Analyseur d’exécutables analyses statique avant/ arrière base intégré théorique à IDA 5 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
BinCAT ( Binary Code Analysis Toolkit ) . . . taint valeurs analysis extensible x86 CFG avec . . . sauts propriétés x86 indirects calculées . . . types . . . Analyseur d’exécutables analyses statique avant/ arrière base intégré théorique à IDA 6 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
BinCAT ( Binary Code Analysis Toolkit ) . . . taint valeurs analysis extensible x86 CFG avec . . . sauts propriétés x86 indirects calculées . . . types . . . Analyseur d’exécutables analyses statique avant/ arrière base intégré théorique à IDA 7 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
BinCAT ( Binary Code Analysis Toolkit ) . . . taint valeurs analysis extensible x86 CFG avec . . . sauts propriétés x86 indirects calculées . . . types . . . Analyseur d’exécutables analyses statique avant/ arrière base intégré théorique à IDA 8 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
BinCAT ( Binary Code Analysis Toolkit ) . . . taint valeurs analysis extensible x86 CFG avec . . . sauts propriétés x86 indirects calculées . . . types . . . Analyseur d’exécutables analyses statique avant/ arrière base intégré théorique à IDA 9 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
BinCAT ( Binary Code Analysis Toolkit ) . . . taint valeurs analysis extensible x86 CFG avec . . . sauts propriétés x86 indirects calculées . . . types . . . Analyseur d’exécutables analyses statique avant/ arrière base intégré théorique à IDA 10 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
BinCAT ( Binary Code Analysis Toolkit ) . . . taint valeurs analysis extensible x86 CFG avec . . . sauts propriétés x86 indirects calculées . . . types . . . Analyseur d’exécutables analyses statique avant/ arrière base intégré théorique à IDA 11 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
BinCAT ( Binary Code Analysis Toolkit ) . . . taint valeurs analysis extensible x86 CFG avec . . . langage sauts propriétés inter- indirects calculées médiaire . . . types . . . Analyseur d’exécutables analyses statique avant/ arrière base intégré théorique à IDA 12 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
BinCAT ( Binary Code Analysis Toolkit ) . . . taint valeurs analysis extensible x86 CFG avec . . . langage sauts propriétés inter- indirects calculées médiaire . . . types . . . Analyseur d’exécutables analyses statique avant/ arrière base intégré théorique à IDA 13 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
Plan Introduction Démonstration Sous le capot Conclusion 14 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
Exemple : keygenme $ ./get_key Usage: ./get_key company department name licence 15 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
Exemple : keygenme $ ./get_key Usage: ./get_key company department name licence $ ./get_key company department name wrong_serial 16 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
Exemple : keygenme $ ./get_key Usage: ./get_key company department name licence $ ./get_key company department name wrong_serial Licence=>[025E60CB08F00A1A23F236CC78FC819CE6590DD7] Invalid serial licence 17 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
Exemple : keygenme $ ./get_key Usage: ./get_key company department name licence $ ./get_key company department name wrong_serial Licence=>[025E60CB08F00A1A23F236CC78FC819CE6590DD7] Invalid serial licence $ ./get_key company department name 025E60CB0[...] 18 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
Exemple : keygenme $ ./get_key Usage: ./get_key company department name licence $ ./get_key company department name wrong_serial Licence=>[025E60CB08F00A1A23F236CC78FC819CE6590DD7] Invalid serial licence $ ./get_key company department name 025E60CB0[...] Licence=>[025E60CB08F00A1A23F236CC78FC819CE6590DD7] Thank you for registering ! 19 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
Keygenme : principe company name argv[0] department CRC CRC CRC CRC 20 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
Keygenme : principe company name argv[0] department CRC CRC CRC CRC mul 21 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
Keygenme : principe company name argv[0] department CRC CRC CRC CRC mul sprintf 22 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
Keygenme : principe company name argv[0] department CRC CRC CRC CRC mul sprintf 23 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
Keygenme : principe company name argv[0] department CRC CRC CRC CRC mul sprintf SHA-1 24 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
Keygenme : principe company name argv[0] department CRC CRC CRC CRC mul sprintf SHA-1 hex encode 25 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
Keygenme : principe company name argv[0] department CRC CRC CRC CRC mul sprintf SHA-1 hex encode license 26 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
Démo 1 : Utilisation de BinCAT 27 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
Démo 2 : Teinte 28 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
Plan Introduction Démonstration Sous le capot Conclusion 29 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
Architecture IDA plugin IDA 30 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
Architecture IDA plugin IDA exécutable bincat 31 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
Architecture IDA configuration, binaire... plugin IDA exécutable bincat 32 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
Architecture mode local IDA configuration, binaire... plugin IDA exécutable bincat résultats, logs 33 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
Architecture mode distant IDA REST plugin IDA serveur web exécutable bincat REST 34 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
Architecture mode distant IDA REST plugin IDA serveur web exécutable bincat REST 35 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
Reconstruction du graphe de flot de contrôle state 1 IP=0x08041236 EAX=0x00000000 EBX=0x87654321 mem[0x1000]=|323130| state 3 state 2 IP=0x0804143D EAX=0x12345678 EBX=0x8765432? mem[0x1000]=|303132| IP=0x08041238 EAX=0x00000000 EBX=0x87654321 mem[0x1000]=|303132| state 4 EIP=0x0804123C IP=0x0804123A EAX=0x12345678 EAX=0x0007FFFF EBX=0x87654321 ZF=1 mem[0x1000]=|303132| mem[0x1000]=|303132| 36 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
Reconstruction du graphe de flot de contrôle state 4 state 1 IP=0x08041236 EAX=0x00000000 EBX=0x87654321 mem[0x1000]=|323130| state 3 state 2 IP=0x0804143D EAX=0x12345678 EBX=0x8765432? mem[0x1000]=|303132| IP=0x08041238 EAX=0x00000000 EBX=0x87654321 mem[0x1000]=|303132| state 4 IP=0x0804123A EIP=0x0804123C EAX=0x0007FFFF EAX=0x12345678 ZF=1 EBX=0x87654321 mem[0x1000]=|303132| mem[0x1000]=|303132| IP=0x0804123A EIP=0x0804123C EAX=0x12345678 EAX=0x0007FFFF EBX=0x87654321 ZF=1 mem[0x1000]=|303132| mem[0x1000]=|303132| 37 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
Reconstruction du graphe de flot de contrôle Décodeur PC, contexte, segments state 1 IP=0x08041236 EAX=0x00000000 EBX=0x87654321 mem[0x1000]=|323130| state 3 state 2 IP=0x0804143D EAX=0x12345678 EBX=0x8765432? mem[0x1000]=|303132| IP=0x08041238 EAX=0x00000000 EBX=0x87654321 mem[0x1000]=|303132| state 4 IP=0x0804123A EIP=0x0804123C EAX=0x12345678 EAX=0x0007FFFF ZF=1 EBX=0x87654321 mem[0x1000]=|303132| mem[0x1000]=|303132| 38 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
Reconstruction du graphe de flot de contrôle Décodeur inc eax state 1 IP=0x08041236 EAX=0x00000000 EBX=0x87654321 mem[0x1000]=|323130| langage intermédiaire eax ← (eax + 0x1); zf ← eax=0 ? 1 : 0; sf ← (eax >> 0x1f)=1 ? 1 : 0; . . . state 3 state 2 IP=0x0804143D EAX=0x12345678 EBX=0x8765432? mem[0x1000]=|303132| IP=0x08041238 EAX=0x00000000 EBX=0x87654321 mem[0x1000]=|303132| state 4 EIP=0x0804123C IP=0x0804123A EAX=0x12345678 EAX=0x0007FFFF ZF=1 EBX=0x87654321 mem[0x1000]=|303132| mem[0x1000]=|303132| 39 Biondi, Mehrenberger, Rigo, Zennou :: BinCAT
More recommend