티스토리 뷰

일상

rev-basic-3 풀이

보안청 2024. 6. 10. 11:11
반응형

 

① 문제

 

② 가설 수립

 - "correct"  문구 키포인트로 보이며 해당 부분 문자열을 검색 후 역동작하는 부분을 분석하면 관련 문제가 나올 것으로 생각하고 증빙 시작

 

③ 증빙

1. x64dbg를 이용 해당 문자열 출력 함수를 식별

 

2. 7FF6C4AD1000 함수 이후 해당 문자열을 출력함으로 해당 함수 진입

 

3. 해당 함수에서는 아래의 내용이 식별이 가능

 -  [cmp rax, 18] = 총 FLAG값은 24개의 글자

 -  사용자값 비교는 [lea ecx, qword ptr ds:[rcx+rdx*2]] 에서 수행함

 - ECX는 사용자 입력값, RCX는 메모리 저장값을 불러옴

 

4.

[lea rcx, qword ptr ds:[7FF6C4AD3000]] 

구문을 통해 rcx 저장 위치를 알수 있어 접근

 

5. 해당 부분을 통해 rcx값 획득 

16진수 값 : 49 60 67 74 63 67 42 66 80 78 69 69 7B 99 6D 88  68 94 9F 8D 4D A5 9D 45

 

6. 다시 비교 함수로 돌아와서 해당 부분을 통해

 

연산식을 통해 사용자 입력값을 변경하는것을 확인 (input[i]^i)+(i*2)=str[i]

 

7. 역연산을 위해 공식 변경

 

INPUT[i]^i+i*2 
-i*2 = INPUT[i]^i
(RAX-i*2)^i = INPUT[i]

 

8. 파이썬을 통해 해당 연산식 적용 (RCX를 역연산)

 

④ 결과 

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함