[HackCTF] Handray
Reversing/Reversing (Wargame)

[HackCTF] Handray

728x90

Analyze

  • 64bit ELF

assembly code

gdb(한번에 보기 좋아서..)

하이라이팅한 부분이 현재 프로그램을 실행시켰을 때, 프로그램의 흐름대로 실행되는 코드들이다.

하지만 우리가 원하는 부분은

이 부분으로, <main+19> 에서의 jne 0x40058d에 의해 실행되지 않고 지나간다.

그렇다면 어떻게 jne에서 점프되지 않고 그 아래 코드인 '0x400544~0x400586'을 실행시킬 수 있을까? 답은 jne 의 바로 위 조건을 확인해야한다.

<main+15> 에서 cmp [rbp-0x4], 0으로 rbp-0x4의 값이 0인지 비교하고 있다. 이 때, rbp-0x4의 값이 0이 되어야 jne에서 점프하지 않을 수 있다.

따라서, <main+15>에 breakpoint를 걸고 rbp-0x4의 값을 0으로 바꿔 실행한다.

bp를 걸고 실행한 후 rbp 값을 확인해 rbp-0x4에 저장된 값을 0으로 바꾼다
성공!

SMALL

'Reversing > Reversing (Wargame)' 카테고리의 다른 글

[CodeEngn] BASIC RCE L03  (0) 2021.05.04
[CodeEngn] BASIC RCE L02  (0) 2021.05.04
[CodeEngn] BASIC RCE L01  (0) 2021.05.04
[HackCTF] Reversing Me  (0) 2021.05.03
[HackCTF] welcome_rev  (0) 2021.05.03