2026/01 9

2026-01-24 동계모각코 4차 회고

오늘은 pwntool에 대해 알아보았다.우선 오늘의 예제 문제는#include #include #include int main() { int i, a, b, ans; srand(time(0)); for (i = 0; i "); scanf("%d", &ans); if (a + b == ans) { printf("Correct!\n"); } else { printf("Wrong!\n"); return 0; } } printf("Congrats! flag{welcome_to_pwntools}");}오늘의 예제 문제는 덧셈뺄셈 100문제를 풀이 하면 문제가 풀리는 워게임을 풀었다.당연히 손수 100문제를 다풀면 시간이 무척 오래 걸리지만 pwnto..

2026-01-17 동계 모각코 3차 회고

오늘 드디어 rop문제 어셈블리 해석과정이 끝났다.메모리 구조는 REP SFP Canary Buffer 로 각각 8 8 8 56 바이트로 구성되어있다. 이문제는 NX enabled가 되어있기 때문에 rdi(함수호출규약에 의한 함수를 직접 호출하는 레지스터)의 주솟값을 info register통해 0x1인걸 알아내었고 RTL를 활용하여 System라이브러리의 System('bin/sh')를 실행 시키는 것이 목적인 문제였다. 이를 통해 이 문제에 해법은 canary leak를 발생시켜 카나리 값을 알아내 버퍼오버플로우를 통해서 카나리가 변조되지않도록 카나리값에 RET까지 덮어 System('bin/sh')를 발생하면 풀리는 문제였다. 허나 카나리값이 헥스값으로 나오는 문제가 있어 print@plt가 정확하..

2026-01-16 동계모각코 2차 회고

오늘은 함수호출규약,레지스터의 종류에 대하여 공부한 다음에 위 사진에 흰색 줄 쳐진 부분에 대하여 공부하였다.해석한 바로는 rax에 함수에 넣을 공간을 마련하고 함수호출규약(ecx>edx>esi>rdi)에 따라 4번째 인자 3번째 인자...등을 차례대로 넣는 코드이다. 위 stdin은 입력 stdout은 출력을 담당한다는 주석이다. 오늘은 함수를 부르는 법에 대하여 공부하였다. 이제 거의 모든 코드를 해석할수 있을 정도가 된것같아 기쁘다. 추후에는 스택카나리와 같은 보안기법을 어셈블리어로 변형하여 공부하고싶다.

2026-01-02 동계모각코 1차 회고

드림핵의 ROP문항을 풀이하였다.우선 checksec를 통해 스택카나리등 여부를 확인해보자실제 카나리가 적용되어 있고 NX가 적용 되어있다. 그리고 PIE는 되어있지않아서 메모리가 매 실행마다 바뀌지는 않는다.그럼 이제 우분투에 gdb를 활용하여 어셈블리를 확인해보면오늘은 +21까지 어셈블리해석을 진행했는데 push rbpmov rbp,rspsub rsp,0x40은 스택에 rbp를 넣고 0x40만큼 rsp(스택포인터)를 내려 함수가 돌아갈수 있는 공간을 만들어주는 함수 프롤로그 였다.여기서 sub로 함수의 메모리주소를 8(십진수)만큼 빼고 있는데 이는 스택은 메모리주소가 높은데 부터 낮은 곳으로 거꾸로 자라기 때문에 내가 메모리 여유공간을 만들고 싶다면 sub를 내가 메모리를 닫고 싶다면 메모리 주소를 ..