Decodificando código hexa para asm #7

Open
opened 2025-07-14 19:29:53 -03:00 by NRZCode · 1 comment

Lição de casa!

O vídeo de quarta (aula 7) tem um exemplo com o seguinte código:

Desmontagem da secção .text:

0000000000401000 <_start>:
401000: 48 31 c9

0000000000401003 <stack_loop>:
401003: 48 8d 04 cc
401007: 48 8b 18
40100a: 48 ff c1
40100d: eb f4

A tarefa é decifrar o código na forma do assembly correspondente e determinar o que esse programa faz.

Quem topa o desafio? hehehe 😁

Usando de algumas ferramentas (atalho) poderia ser decodificado desta maneira

xxd -r -p <<< 4831c9488d04cc488b1848ffc1ebf4 > main.bin
ndisasm -b 64 main.bin
00000000  4831C9            xor rcx,rcx
00000003  488D04CC          lea rax,[rsp+rcx*8]
00000007  488B18            mov rbx,[rax]
0000000A  48FFC1            inc rcx
0000000D  EBF4              jmp short 0x3
Lição de casa! > > O vídeo de quarta (aula 7) tem um exemplo com o seguinte código: > > Desmontagem da secção .text: > > 0000000000401000 <_start>: > 401000: 48 31 c9 > > 0000000000401003 <stack_loop>: > 401003: 48 8d 04 cc > 401007: 48 8b 18 > 40100a: 48 ff c1 > 40100d: eb f4 > > A tarefa é decifrar o código na forma do assembly correspondente e determinar o que esse programa faz. > > Quem topa o desafio? hehehe 😁 > Usando de algumas ferramentas (atalho) poderia ser decodificado desta maneira ```sh xxd -r -p <<< 4831c9488d04cc488b1848ffc1ebf4 > main.bin ndisasm -b 64 main.bin ``` ```asm 00000000 4831C9 xor rcx,rcx 00000003 488D04CC lea rax,[rsp+rcx*8] 00000007 488B18 mov rbx,[rax] 0000000A 48FFC1 inc rcx 0000000D EBF4 jmp short 0x3 ```
Author

Não consegui encontrar como decodificar a instrução LEA

Desmontagem da secção .text:

0000000000401000 <_start>:
  401000:       48 31 c9

0000000000401003 <stack_loop>:
  401003:       48 8d 04 cc
  401007:       48 8b 18
  40100a:       48 ff c1
  40100d:       eb f4
  401000:       48 31 c9
        REX.W: 0100 1000
  Opcode 0x31: REX.W + 31 /r XOR r/m64, r64
  ModR/M 0xc9: 11 001 001
             regs rcx rcx

  401003:       48 8d 04 cc
  Opcode 0x8d: REX.W + 8D /r LEA r64,m
           04: 00 000 100
           cc: 11 001 100

  401007:       48 8b 18
  Opcode 0x8b: REX.W + 8B /r MOV r64, r/m64
         0x18: 00 011 000
                  rbx rax

  40100a:       48 ff c1
  Opcode 0xff: REX.W + FF /0 INC r/m64
         0xc1: 11 000 001
             regs rax rcx

  40100d:       eb f4
  Opcode 0xeb: EB cb JMP rel8
         0xf4: valor 244 ou 12 em complemento de 2
Não consegui encontrar como decodificar a instrução LEA ```asm Desmontagem da secção .text: 0000000000401000 <_start>: 401000: 48 31 c9 0000000000401003 <stack_loop>: 401003: 48 8d 04 cc 401007: 48 8b 18 40100a: 48 ff c1 40100d: eb f4 ``` ```text 401000: 48 31 c9 REX.W: 0100 1000 Opcode 0x31: REX.W + 31 /r XOR r/m64, r64 ModR/M 0xc9: 11 001 001 regs rcx rcx 401003: 48 8d 04 cc Opcode 0x8d: REX.W + 8D /r LEA r64,m 04: 00 000 100 cc: 11 001 100 401007: 48 8b 18 Opcode 0x8b: REX.W + 8B /r MOV r64, r/m64 0x18: 00 011 000 rbx rax 40100a: 48 ff c1 Opcode 0xff: REX.W + FF /0 INC r/m64 0xc1: 11 000 001 regs rax rcx 40100d: eb f4 Opcode 0xeb: EB cb JMP rel8 0xf4: valor 244 ou 12 em complemento de 2 ```
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: blau_araujo/pbn#7
No description provided.