ZINO
HomeResearchBlogTagsPlaygroundStack
⌘K

레드팀 · AI 자동화 · 시스템 엔지니어링

직접 만들고, 실험하고, 기록한다

개인정보처리방침·이용약관

© 2026 ZINO LAB

← 태그 목록

Tag Archive

#x86-64

이 태그가 포함된 글을 최신순으로 모아봤어요.

5
posts
BLOG2026-06-08
[🌱 새싹] 한 바이트의 니블을 맞바꾸는 검증 — DreamHack rev-basic-4 풀이
blog

[🌱 새싹] 한 바이트의 니블을 맞바꾸는 검증 — DreamHack rev-basic-4 풀이

rev-basic-3이 XOR·산술을 끼웠다면 4번은 비트로 논다. 각 글자의 상위 4비트와 하위 4비트를 맞바꾼(니블 스왑) 값이 .data 테이블과 같아야 통과한다. 니블 스왑은 두 번 하면 제자리라 테이블을 한 번 더 스왑하면 그대로 정답이 나온다.
#dreamhack#ctf#reversing+5
 
BLOG2026-06-08
[🌱 새싹] 비교 직전 XOR·산술이 끼어든 검증 루프 — DreamHack rev-basic-3 풀이
blog

[🌱 새싹] 비교 직전 XOR·산술이 끼어든 검증 루프 — DreamHack rev-basic-3 풀이

rev-basic-2까지는 정답이 평문으로 메모리에 박혀 있었다. 3번은 비교 직전에 글자를 한 번 주물러 둔다 — input[i]를 i로 XOR하고 2*i를 더한 값이 .data의 테이블과 같아야 통과한다. XOR도 덧셈도 역연산이 있으니, 테이블을 떠내 거꾸로 풀면 그대로 정답이 나온다.
#dreamhack#ctf#reversing+5
BLOG2026-06-04
[🌱 새싹] 정답이 4바이트씩 끊겨 박힌 배열 — DreamHack rev-basic-2 풀이
blog

[🌱 새싹] 정답이 4바이트씩 끊겨 박힌 배열 — DreamHack rev-basic-2 풀이

rev-basic-1이 글자마다 cmp를 펼친 코드였다면, 2번은 루프 하나로 정답 배열과 비교한다. 비교 대상이 byte가 아니라 .data의 4바이트 정수 배열이라 한 칸이 4바이트씩이다. 각 원소의 저바이트만 모으면 정답. objdump로 배열을 떠내 디코드하고 wine으로 Correct를 확인했다.
#dreamhack#ctf#reversing+4
BLOG2026-06-04
[🌱 새싹] 한 글자씩 cmp — 코드에 흩어진 상수 모으기 — DreamHack rev-basic-1 풀이
blog

[🌱 새싹] 한 글자씩 cmp — 코드에 흩어진 상수 모으기 — DreamHack rev-basic-1 풀이

rev-basic-0이 strcmp 한 방이었다면, 1번은 입력을 한 글자씩 cmp로 비교한다. 검증 함수에 흩어진 비교 상수 21개를 주소순으로 모아 ASCII로 디코드하면 정답이 나온다. objdump로 cmp 체인을 뽑고 wine으로 Correct를 확인한 과정.
#dreamhack#ctf#reversing+4
BLOG2026-06-04
[🌱 새싹] strcmp 하나가 전부 — DreamHack rev-basic-0 풀이
blog

[🌱 새싹] strcmp 하나가 전부 — DreamHack rev-basic-0 풀이

입력을 받아 Correct/Wrong을 출력하는 x86-64 PE. 검증 함수는 입력을 .rdata에 평문으로 박힌 문자열과 strcmp 비교할 뿐이다. 디스어셈블로 비교 대상 주소를 찾아 문자열을 그대로 꺼내 답을 구하고, wine으로 Correct를 확인한 과정.
#dreamhack#ctf#reversing+4