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
- 신경망구현
- BOJ
- C알고리즘
- 스트림암호
- 백준
- 버퍼오버플로우
- 파이썬신경망
- c언어
- 밑바닥부터시작하는딥러닝
- BOF
- 보안
- 머신러닝
- 알고리즘
- 항등함수
- 딥러닝파이썬
- 딥러닝
- C언어알고리즘
- 소프트맥스함수
- 신경망
- 파이썬
- 신경망파이썬
- 달고나bof
- 백준알고리즘
- 정보보안
- 8086CPU레지스터
- 활성화함수파이썬
- FTZlevel10
- 신경망 학습
- 인공지능
- C언어 알고리즘
Archives
- Today
- Total
HeeJ's
[07] LENA reversing tutorial 본문
문제 exe
상태 표시줄에 Unregistered가 뜬 것을 보아
레지스터의 라이센스 등록 우회를 진행해야한다.
이메일과 레지스터 키를 입력하는 곳도 찾을 수 있었다.
이 곳에서 이메일을 입력해주면, 레지스터는 알고리즘을 통해 가공하고, 키를 생성한다.
라이센스 넘버는 키와 같은지 확인하게 된다.
아무 값이나 입력해주었고, Wrong 문자열을 찾을 수 있었다.
ollydbg로 프로그램을 바로 열어주었다.
strings 검색을 통해 Wrong 문자열을 찾아주었다.
이 곳으로 들어가 바로 BP를 걸어주었다.
그 아래에선 성공 문자열처럼 보이는 문자열도 확인할 수 있었다.
바로 위의 JNZ 문에서 분기가 이루어지는 것 같아 BP를 걸어주었다.
바로 위의 TEST 구문을 통해 값이 셋팅되는걸 확인할 수 있다.
( EAX의 값이 0인지를 확인한다 )
이 함수에서 나온 결과를 EAX로 받아주어 TEST를 통해 AL을 확인하는 것으로 유추된다.
아래로 내리며 살펴보며 RETN을 찾아주었다.
이 부분의 코드를 읽어보니 ESI 값을 EAX로 받아주는 것을 확인할 수 있었다.
이제 프로그램을 살펴보았으니, EAX 값을 변조해주면 되는데,
사실 그냥 간단하게 아래의 JNZ 문에서 Z flag를 0으로 만들어주면 된다.
상태 표시줄에 떠있던 unregistered도 사라진 것을 확인할 수 있다.
반응형