https://dreamhack.io/wargame/challenges/17
리버싱 문제 풀고싶은데 써니나타스 못풀고 넘어옴 흑흑
문제 파일 받으니까 실행파일 하나 있음
올리디버거로 열라했다가 64비트길래 x64dbg로 열었음
문자열 correct찾아서 메인함수 찾을수 있다는데 난 그냥 처음 시작점 부터 F8로 넘기면서 Input: 문자열 출력될때까지 넘기고 출력되는 부분의 call 함수 안으로 들어가서 찾았다.
내가 한대로 걍 f8로 계속 넘어오면 걍 메인함수 시작점으로 오게됨
call함수 불러서 비교해서 문자열을 출력할테니 correct전까지의 함수를 확인해보았다
커서 올려서 보면 보임
7FF7E41E116E주소에 있는 함수에서 비교하고 하는게 보임 일단 BP걸얻두고 들어가보겠다
확인하기 위해서 아무 문자열이나 input에 넣어보고 한줄씩 실행해보았다.
어셈블리어를 봤을때는 lea rcx,qword ptr ds:[7FF799263000]에서 문자열 올리고그아래 xor에서 문자열을 비교하고 뭐 이런거같다. 아무튼 덤프에서 확인해 봤다.
00007FF799263000 49 60 67 74 63 67 42 66 80 78 69 69 7B 99 6D 88 I`gtcgBf.xii{.m.
00007FF799263010 68 94 9F 8D 4D A5 9D 45 00 00 00 00 00 00 00 00 h...M¥.E........
이렇게 나와있다 cmp rax,18이 있어서 24글자까지만 해서 45까지 보면됨 (0x18=24라서)
근데 flag 아닌거같음
아마 연산이 머 어케 되어있는것 같음
movzx부터가 연산부분인듯
그거 역연산하면 flag나온다
연산과정은 지피티를 때림
'학회_공부해요 > 워게임' 카테고리의 다른 글
[H4CKING GAME] Write up - Easy (0) | 2025.01.28 |
---|---|
[H4CKING GAME] Write up - Keygen (0) | 2025.01.28 |
[Dreamhack(드림핵)] Write up - session-basic (0) | 2025.01.14 |
[SuNiNaTas(써니나타스)] Write up - 13번 (0) | 2024.11.26 |
[SuNiNaTas(써니나타스)] Write up - 12번 (1) | 2024.11.26 |