Notes - MCS
Reverse Engineering
Notes - MCS
Reverse Engineering
  • Reverse Engineering
  • Introduction to Reverse Engineering
    • What is Reverse Engineering (RE)
    • RE Concepts
    • When do we have RE activities?
    • Why RE is Relevant and Required
    • Limitations of RE
    • Legal Framework
    • What RE Recovers?
    • Software Reversing
    • Low-level languages
  • Files and Filetypes
    • Files
    • File extensions
    • File Signature
    • Content Type Obfuscation
  • Android – Static Analysis
    • Java Language
    • Application Entry Points
    • Application Structure
    • AndroidManifest.xml
    • Exercise 1
    • Exercise 2
    • Exercise 3
    • Exercise 4
    • Native Applications
    • Java Native Interface
    • Android Native Development Kit (NDK)
    • Android binary libraries
    • JNI Dynamic Linking
    • JNI Static Linking
    • Exercise 5 and 6
    • Web and Hybrid applications
  • Android – Dynamic Analysis
    • Dynamic Analysis
    • Logs
    • Network MiTM
    • Certificate Pinning
    • Dynamic Code Instrumentation
    • Dynamic Binary Instrumentation
    • FRIDA
  • Binary Analysis
    • Binary Objects
    • Executable Symbols
    • What is inside an Object File?
    • ELF Files
    • ELF Program Headers
    • Dynamic Linker
      • Example
    • Binary Analysis Process
    • Function detection
    • Calling Conventions
    • Common Logic Structures
    • C++ code
  • Emulation and Instrumentation
    • Dynamic Binary Analysis
    • Considerations
    • Processes
    • Dynamic Binary Instrumentation (DBI)
    • DBI with Qiling
  • Obfuscation Techniques
    • Obfuscation Techniques
    • Content Type Obfuscation
    • Code Obfuscation
  • Serial Communication
    • Comunicação paralelo
    • Comunicação série
    • Sincronização entre transmissor e recetor
    • Sincronização de relógio
    • Transmissão de dados
    • Topologias de comunicação série
    • Elementos de uma ligação série
  • A interface RS-232C
    • RS-232C
    • Estrutura da trama
    • Camada física
    • Taxa de transmissão (baudrate)
    • Receção de dados
    • Identificar parâmetros de comunicaçãoIdentificar parâmetros de comunicação
    • Encontrar a UART
    • Captura de sinais
  • Norma SPI
    • Introdução
    • Descrição geral
    • Operação
    • Simulação do master SPI
    • Arquiteturas de ligação
    • Tipos de transferências
    • Configuração de um master SPI
    • Procedimento para identificação dos sinais
    • Exemplo
  • Norma I2C
    • Introdução
    • Caraterísticas básicas
    • Exemplo de interligação num barramento I2C
    • Terminologia
    • Masters e Slaves
    • Sinalização
    • Endereçamento
    • Transferência de dados
    • Clock stretching
    • Múltiplos masters
    • Arbitragem
    • Endereços reservados
Powered by GitBook
On this page
  • Sincronização de relógio (relógio implícito)
  • Sincronização da amostragem no recetor
  • Erros
  • Relógio do recetor
  • Máximo desvio de frequência entre emissor e recetor
  1. A interface RS-232C

Receção de dados

Last updated 10 months ago

Sincronização de relógio (relógio implícito)

Comunicação assíncrona (i.e. não há transmissão do relógio)

O transmissor e o recetor têm relógios locais (independentes)

Os instantes de amostragem no recetor são sincronizados no início da receção de cada nova trama, sinalizado pelo start bit:

  • transição de "1" para "0" na linha após um período de inatividade, por exemplo depois da receção completa de uma trama

Este método é robusto (dentro de certos limites) a diferenças de frequência entre os relógios do transmissor e do recetor

Para que a comunicação se processe corretamente, o transmissor e o recetor têm que estar configurados com os mesmos parâmetros:

  • Baudrate (relógios com a mesma frequência)

  • Estrutura da trama: nº de bits de dados, tipo de paridade, número de stop bits

Sincronização da amostragem no recetor

O recetor deve sincronizar-se pelo flanco negativo (transição do nível lógico "1" para o nível lógico "0") da linha (Start bit) e, idealmente, fazer as leituras a meio do intervalo reservado a cada bit

Exemplo da receção do valor 0x43: estrutura da trama 7, O, 2 (7 data bits, odd parity, 2 stop bits); 0x43: 100001121000011_210000112​

Entre instantes de sincronização o desvio de frequência dos relógios depende da estabilidade/precisão dos relógios de transmissor e do recetor

Neste exemplo a receção não é corretamente realizada devido a um desvio da frequência dos relógios do transmissor e do recetor (frequência do recetor > frequência do transmissor)

Erros

Neste exemplo o recetor detetaria dois erros:

  • Parity Error (se o bit D6 for detetado como 1): o bit de paridade devia ser 0 e é lido como 1

  • Framing Error: é detetado o nível lógico 0 no instante em que era esperado um stop bit (nível lógico 1)

Relógio do recetor

No recetor é gerado um relógio com uma frequência N vezes superior ao relógio do transmissor (sincroniza a receção a partir desse relógio)

  • N típicos: 4, 8, 16, 64

Se N = 16

  • "Start bit", validado ao fim de 8 ciclos de relógio

  • Restantes bits validados a cada 16 ciclos de relógio

Máximo desvio de frequência entre emissor e recetor

Como referência, a máxima discrepância que poderá ser tolerada entre os relógios do transmissor e do recetor é ∆f ≈ ±3.0%

Exemplo: taxa de transmissão de 115200 bps. Para que a comunicação se processe sem erros:

  • Frequência ideal no recetor:

    • freqRX=115200Hzfreq_{RX} = 115200HzfreqRX​=115200Hz

  • Desvio aceitável (∆f ≈ ±3.0%):

    • freqRX∈[111700,118600]Hzfreq_{RX} ∈ [111700, 118600]HzfreqRX​∈[111700,118600]Hz