티스토리 뷰
에러 메시지로부터 따라 들어가면, 일련번호 생성/검증 및 분기 로직 발견
kernel32.lstrlen() : 문자열을 입력받아 길이를 구해 eax에 결과 담는다.
eax는 ecx로 들어가고, ecx는 뒤의 반복문에서 반복횟수로 사용된다.
(DEC ecx : ecx는 1줄이고 연산결과가 0이면 ZF=1로 설정)
[반복문] : 403038에 들어가있는 내가 입력한 id값 문자열을 다양한 연산을 거쳐 일련번호로 바꾼다.
최종연산결과는 esi에 담긴다.
생성된 일련번호(esi)와 내가 입력한 pw값(403138)을 비교해 분기가 나뉜다.
반복문 세부로직은 생략.
분기우회하면 위와같은 성공창 뜬다.
생성된 esi 일련번호는 hex상태이기때문에 ascii로 바꿔야한다.
구글을 통해 간단히 바꿔도 되고, 디버거에서 code cave를 통해 직접 확인도 가능.
변환된 ascii값은 우리가 입력하기힘든 특수문자로 이뤄진경우가 많아, 확인하는정도로 마무리.
'Security&Hacking > Reversing' 카테고리의 다른 글
Reversing) 지뢰찾기 게임 리버싱 (0) | 2019.09.11 |
---|---|
Reversing) abex crackme #5 (0) | 2019.09.11 |
Reversing) MUP(Manual Unpacking) (0) | 2019.09.11 |
Reversing) abex crackme #4 (0) | 2019.09.11 |
Reversing) DLL Injection with CreateRemoteThread() (0) | 2019.09.11 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 우아한 테크코스
- bfs
- Stack
- Vo
- reversing
- queue
- C
- Algorithm
- 프로그래머스
- socket
- Android Studio
- dfs
- OneToMany
- Java
- JPA
- 리버싱
- 회고
- 해외여행
- mysql
- 웹해킹
- sort
- FRAGMENT
- git
- graph
- brute-force
- javascript
- Android
- Data Structure
- 개발자
- webhacking.kr
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함