본문 바로가기
워게임/LOB

[풀이X흐름O]LOB - gate

by meanjung 2021. 7. 30.

쉽게 푼 건 풀이를 쓰지 않습니다


cat gremlin.c

쉘코드를 포함한 환경변수를 등록해서 그 주소로 ret을 덮어쓰도록 익스플로잇했다.

(과정 생략)

 

가장 헷갈렸던 부분은 gdb로 까서 set disas intel하면 intel 어셈으로 바뀌어야 하는데 at&t의 '%'가 나오던 부분...

 

 

>> AT&T 어셈블리

https://kldp.org/node/19144

 

assembly 에서 lea 명령어가 뭔가요..? | KLDP

0x804854d <main+77> mov 0x804971c,%eax 0x8048552 <main+82> push %eax 0x8048553 <main+83> push $0x3ff 0x8048558 <main+88> lea 0xfffffbf4(%ebp),%eax 0x804855e <main+94> push %eax 0x804855f <main+95> call 0x80483e4 0x8048564 <main+100> add $0xc,%esp <</main+100></main+95></main+94></main+88></main+83></main+82></main+77>

kldp.org

AT&T의 lea 부분을 보면 웬 0xffff....같은 큰 수가 나온 것을 볼 수 있는데 이것은 2의 보수를 이용한 것!

 

 

>> 2의 보수 이해

https://st-lab.tistory.com/189

 

2진수의 수와 음수 표현법 [1의 보수와 2의 보수]

안녕하세요. 오늘은 프로그래밍이 아닌 컴퓨터의 연산에 대해 이해해보고자 합니다. 우리가 흔히 프로그래밍을 할 때는 그나마 사람에 가까운 언어로 된 고급언어들로 작성을 하지만 실제 컴퓨

st-lab.tistory.com

2의 보수 구하기 = 2진수 값 0, 1 반전 -> +1 한 수에 - 붙이면 된다.

ex. 0xffff ff00 -> 0x0000 00ff -> 0x0000 0100 = -256(최상위 비트가 1이었으니까 음수... - 붙이기)


쨋든 익스 성공하면

gremlin / hello bof world

 

 

'워게임 > LOB' 카테고리의 다른 글

LOB - troll (환경변수)  (0) 2021.08.01
LOB - darkelf  (0) 2021.07.31
LOB - wolfman (심볼릭 링크)  (0) 2021.07.31
LOB - orc  (0) 2021.07.31
LOB - goblin  (0) 2021.07.31

댓글