일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Path Cost
- 브리지 우선순위
- 세그먼트
- 네트워크 장비
- 해커스쿨 FTZ
- Non Root Bridge
- BPDU
- 데지그네이티드 포트
- 링크 대역폭
- ip주소
- code engine
- 콜리젼 도메인
- 루트 브리지
- 루핑
- 코드엔진 basic 5
- 브리지 ID
- 치트엔진 풀이
- 서브넷팅
- 스패닝 트리 알고리즘
- 코드엔진 풀이
- code enigne
- Root Bridge
- FTZ level3
- TCP/IP
- 코드엔진
- 네트워크
- 서브넷
- 서브넷 마스크
- 시스템해킹
- 루트 포트
- Today
- Total
IT 블로그 !!
Code Engine basic 7 본문
C드라이브의 볼륨 명을 참조 해, 최종적으로 변경되는 시리얼 킷값을 구하는 것이 목표이다. 우선 C드라이브의 이름을 CodeEngn으로 바꾼 후 프로그램을 실행시켜 봅시다.
입력한 시리얼값이 옳지 않다고 뜹니다.
파일을 열어보겠습니다.
일단 오류메세지박스가 뜨는 부분을 먼저 살펴봅시다.
004010FC를 보게 되면 EAX – 0의 값이 0이 나올 경우 JE를 실행하고 성공 창이 뜨게 되도록 설정되어있습니다.
즉 EAX – 0 = 0이 되어야 참이 된다는 소리입니다. 참이 됐을 경우 JE를 통해 00401117로 JMUP를 하게 됩니다. 00401117은 성공박스가 뜨는 곳이지요. 즉 EAX가 0이 되게 만들어 주어야합니다. 일단 CMP함수에 break를 걸고 실행시켜 봅시다.
보면 EAX의 값이 1이 되어있습니다. EAX가 1이기 때문에 JE를 실행하지 않고 Error창이 뜨게 된 것입니다.
코드를 위로 올려 조금 더 살펴봅시다.
위의 함수를 보면 이상한 문구가 있습니다. 바로 Enter your serial라는 문구입니다. 이 문구는 이전에
파일을 실행하자 마자 보였던 문구이지요.
그리고 그 밑에 시리얼 키로 보이는 L2C-5781EqfgEngn4562-ABEX가 있습니다.
또 위에 함수를 보게 되면 StringToAdd라는 함수가 있습니다. StringToAdd라는 함수는 ‘문자를 추가한다’라는 뜻과 같습니다.
즉 EqfgEngn4652-ABEX + L2C-5781을 추가한 것과 같습니다.
그런데 EqfgEnge4652-ABEX는 어디서 온 것일까요? 일단 문자열을 전부 보도록 합시다.
오른쪽 마우스 -> Search for -> All referenced text strings
을 클릭해서 모든 문자를 보도록 합시다.
EgfgEnge4562-ABEX가 보인다. 더블클릭해서 들어가 봅시다.
4562-ABEX가 EqfgEnge에 추가되었습니다.
EqfgEngn은 아까 문제를 풀기 전 C드라이브에 이름을 바꾼 CodeEngn이 뭔가 변형되어서 나타난 것 같습니다.
앞서 문제에서 시리얼이 생성될 때 CodeEngn이 바뀐다 했으므로 시리얼처럼 보이는 L2C-5781EqfgEngn4562-ABEX를 넣어봅시다.
시리얼 키인 L2C-5781EqfgEngn4562-ABEX를 넣어보면 성공창이 뜹니다.
그리고 생성될 때 CodeEngn의 값이 바뀐다고 하였으니 바뀐 값은 EqfgEngn이 맞습니다.
'Reversing > Code Engine' 카테고리의 다른 글
Code Engine Basic 9 (0) | 2018.11.17 |
---|---|
Code Engine Basic 8 (0) | 2018.11.03 |
Code Engine Basic 6 (0) | 2018.10.12 |
Code Enigne Basic 5 (0) | 2018.10.12 |
Code Engine basic 4 (0) | 2018.10.07 |