728x90
흠냐 흠냐
주어진 문제의 함수를 분석해보면 간단하다 .
일단 입력한 값으로 xor연산
그 다음 바이트 가져와서 rax에 더한 후 eax로 옮기고 입력값에 대해서 ror 연산 5 수행 수행
조금 더 정제된 형식으로 표현하면
이전 바이트 값을 가져온 다음
이를 해당 위치의 key 배열 문자와 xor연산
나오는 값을 index로 하는 mem 값을 가져오고
이 값을 buf의 다음 바이트와 더한다
오른쪽으로 5번 rotation 하는 연산을 반복적으로 수행하고 있댜
수식적으로 표현하면 이렇게 된다
temp = rotl(buf[i * 8 + (8 - k) % 8], 5);
temp -= mem[(unsigned char)(buf[i * 8 + 7 - k] ^ keyArray[7 - k])];
buf[i * 8 + (8 - k) % 8] = temp;
이걸 이용해서 flag를 따내면 된다
728x90
'호그와트' 카테고리의 다른 글
Dreamhack web PATCH-1 (0) | 2022.02.21 |
---|---|
User After free 취약점 (0) | 2022.02.19 |
드림핵 dreamschool ~~파도 ~~~ 별 (0) | 2022.02.11 |
dreamhack return address Overwrite (0) | 2022.02.09 |
dreamhack Oob (0) | 2022.02.09 |