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 |
Tags
- rev-basic-5
- Pwnable
- 코드엔진 베이직 13
- sint
- basic_exploitation_000
- CodeEngn
- L15
- rev-basic-1
- RCE
- 코드엔진 베이직
- rev-basic-2
- L16
- Basic
- rev-basic-6
- out_of_bound
- rev-basic-3
- off_by_one_000
- off_by_one_001
- basic_exploitation_001
- rev-basic-0
- rev-basic-7
- 드림핵
- rev-basic-4
- sd카드 리더기
- 포너블
- Dreamhack
- L17
- coin1
- pwnable.kr
- L18
Archives
- Today
- Total
서브웨이
dreamhack rev-basic-7 풀이 본문
리버싱 기초 마지막 문제입니다.
파일을 실행합시다.
대충 입력하고 검증하는 부분을 찾습니다.
여기서
이런 검증하는 부분을 찾을 수 있습니다.
그럼 중단점이 걸린 검증하는 함수로 들어가봅시다.
조금 길어보입니다.
대충 정리해보면
이렇습니다.
암호문은 다음과 같습니다.
일단 rol이 뭔지는 다음 링크를 확인해보시면됩니다.
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=sol9501&logNo=70091168321
|정수 연산 ①| 시프트와 회전 명령어 및 응용
|정수 연산 1| 시프트와 회전 명령어 및 응용 목표 : 시프트 연산의 기본적이 사용법과 응용 및 각 연산이 ...
blog.naver.com
정리하자면 다음과 같은 식이 됩니다.
(p[i] rol (i & 7)) ^ i == e[i]
그럼 코드를 짜 봅시다.
def rol(x, n):
shiftBit = x << n
shiftBit &= 255
carryBit = x >> 8 - n
return shiftBit | carryBit
def guess(c, i):
for j in range(33, 128):
if rol(j, (i & 7)) ^ i == c:
print(chr(j), end='')
break
encrypted = [0x52, 0xDF, 0xB3, 0x60, 0xF1, 0x8B, 0x1C, 0xB5, 0x57, 0xD1, 0x9F, 0x38, 0x4B, 0x29, 0xD9, 0x26, 0x7F, 0xC9, 0xA3, 0xE9, 0x53, 0x18, 0x4F, 0xB8, 0x6A, 0xCB, 0x87, 0x58, 0x5B, 0x39, 0x1E]
for i in range(0, 31):
guess(encrypted[i], i)
rol 함수는 다음 블로그에서 가져다 썼습니다.
https://hacking-ai.tistory.com/68
어셈블리 ROL, ROR 코드 구현
리버싱 문제를 풀다가 ROL, ROR이 나왔는데, 기드라의 경우 디컴파일 결과가 단지 >>와 같이 쉬프트 연산만 수행하는 방식으로 나오는 문제를 겪었다. 따라서, 이를 해결하기 위해 파이썬으로 ROL, R
hacking-ai.tistory.com
끝.
'Reverse Engineering > dreamhack' 카테고리의 다른 글
dreamhack rev-basic-6 풀이 (0) | 2021.07.28 |
---|---|
dreamhack rev-basic-5 풀이 (0) | 2021.07.28 |
dreamhack rev-basic-4 풀이 (0) | 2021.07.28 |
dreamhack rev-basic-3 풀이 (0) | 2021.07.21 |
dreamhack rev-basic-2 풀이 (0) | 2021.07.21 |
Comments