Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 3단계 지역 DB
- Database
- spring
- restapi
- 소개딩
- Layered Architecture
- 정보보호병 후기
- JSTL
- PyAmdecoder
- webhacking 처음
- riceteacatpanda
- 방명록 만들기
- frontend
- reversing.kr
- 메모리 포랜식
- 소프트웨어 개발보안 경진대회
- 동읍면 DB
- DBMS
- 인턴 후기
- EER
- 행정지역 DB
- ㅁㅇㅂ??ㅇㅈㄷ ㅎㅇㅌ...
- 네이버 인턴
- 인턴 지원
- Forensic 절차
- jsp
- mysql
- Django
- react
- SessionAttribute
Archives
- Today
- Total
웹찢남
Reversing.kr - Easy Keygen 본문
이번 문제는 터미널에서 name을 입력받고 특정 알고리즘을 통해 key를 만드는 keygen 문제다.
대충 사악 보면 Input Name 후 scanf가 있다.
그 후 ecx에 10,20,30, edx에 input한 값을 집어 넣고 xor을 한다.
abcdefgh를 넣었다고 가정할 때
그렇게 10 xor a, 20 xor b , 30 xor c, 10 xor d ~ 의 방식으로 xor를 열심히 한 후
아래와 같은 특정 주소에 xor한 값을 저장한다.
그 후에 input serial이 나올때 까지 f9를 통해 돌린 후 값을 입력하고 enter를 누르기 전에
위와 같은 알고리즘으로 만들어진 값에 hardware bp를 걸고 돌리면 아래와 같은 구문을
확인할 수 있는데 dl에는 내가 만든 serial이 들어가고 [esi]에는 입력한 serial이 나와 비교한다.
이를 통해 name을 찾을 수 있는데 시리얼 값은 문제의 요구 조건인 5B134977135E7D13이므로
input name 길이가 8이 되야 한다는 것을 알 수 있다. 따라서 1020301020301020과 해당 시리얼 값을
xor하면 name의 hex값을 얻어낼 수 있다는 것을 알 수 있다.
'WEB_HACKING > Reversing.kr' 카테고리의 다른 글
Reversing.kr - Easy Unpack (0) | 2020.06.13 |
---|---|
Reversing.kr - Easy Crack (0) | 2020.06.13 |
Comments