코드엔진 베이직 15번 문제입니다.시리얼을 구하는 문제네요.일단 다운받아봅시다.네임과 시리얼 칸이 있네요.코드엔진과 아무 시리얼을 넣고 체크해보니 다시하라고 뜨네요.PEID로 확인한 결과 패킹은 없어보입니다.올리디버그로 열어 성공구문 문자열을 찾은 뒤 위에 비교문을 찾았습니다.아마 제가 넣은 값과 시리얼 값을 비교하는 것 같네요.저는 이름에 CodeEngn, 시리얼에 123을 넣고 디버깅 했습니다.EAX값과 45B844에 있는 값을 10진수로 바꾼 결과EAX는 123, 45B844에 있는 값은 24928로 나왔습니다.아마 저게 시리얼값인 것 같네요.프로그램을 열어 시리얼을 넣어보겠습니다.Clear
코드엔진 베이직 14번 문제입니다.Name에 CodeEngn을 넣었을 때 시리얼 값을 구하라고 합니다.일단 다운받아봅시다.프로그램을 실행시키면 호랑이아저씨가 나오고 이름과 시리얼을 적는 칸이 나옵니다.코드엔진을 적고 아무문자열을 넣으니 틀렸다고 나오네요.이제 PEID에 프로그램을 넣어 패킹을 확인하고 디버깅해봅시다.PEID로 확인하니 upx가 걸려있네요.언패킹 해줍시다.언패킹후 문자열을 검색해 성공구문으로 가는 비교 구문을 찾고, 브레이크 포인트를 걸어둔 후이름에 CodeEngn, 시리얼에 123123을 넣고 실행시켜보았습니다.EAX와 ESI 값을 가져와 10진수로 변환시켜 봅시다.EAX가 제가 넣은 시리얼값이고, ESI가 비교하는 시리얼값인 것 같네요.ESI값을 넣어봅시다.Clear
코드엔진 베이직 13번 문제입니다.시리얼번호를 묻는 것 같네요.문제를 다운받아봅시다.PEID로 걸려있는게 없는지 확인하고, 문제를 실행시켜봅시다.문제를 열면 위 사진처럼 password를 받는 창이 생기고,아무거나 입력하면 다시 입력하라고 나옵니다.여기서 평소처럼 올리디버그를 열었을 때 정상적으로 열리지 않아 당황했는데,C#으로 제작된 프로그램이라 올리디버그로 분석이 안된다는 걸 알아냈습니다.이럴땐 .Net Reflector이라는 툴을 이용하면 오히려 더 간편하게 리버싱을 할 수 있습니다.http://www.red-gate.com/dynamic/products/dotnet-development/reflector/download해당 사이트에서 툴을 다운받고 문제를 열면 소스코드를 모두 볼 수 있습니다.위 ..
코드엔진 베이직 12번 문제입니다.KEY 값과 성공 구문 문자열에 KEY 값을 덮어 씌운후 그 주소 영역을 찾으라고 하네요.일단 다운받아봅시다.패킹이 되어있지는 않네요.일단 프로그램을 실행시켜보겠습니다.문자열에 아무거나 넣고 Check를 누르면 반응이 없네요.올리디버그로 열어봅시다.올리디 버그로 열어 성공 구문 위에 비교문을 찾았습니다.비교문을 찾으면서 봤던 다른 함수들로 추측하자면제가 넣은 값을 int형으로 변환하여 eax에 넣고, 이를 7A2896BF와 비교하는 것 같네요. 비교문에 Break Point를 걸고 값을 넣어보겠습니다.50을 넣어봤더니 예상대로 EAX에 50의 HEX값이 들어가네요.위 사진은 EAX와 비교한 7A2896BF를 10진수로 변환한 사진입니다.저 10진수 값이 FLAG일 겁니다..
코드엔진 베이직 11번 문제입니다.OEP와 Stolenbyte를 찾는 문제네요,일단 프로그램을 다운받아줍시다.UPX 패킹이 되어있다고 나옵니다.VMUnpacker로 언패킹해줍시다.이제 올리디버거로 패킹되어있는 프로그램을 엽니다.패킹된 프로그램의 마지막부분에 가면 POPAD 아래로 PUSH구문에 보입니다.여기 hexcode를 복사한 후, 언패킹 한 프로그램을 열어줍니다.아까 복사한 헥스코드를 붙여주면 프로그램이 정상적으로 실행됩니다.Clear
코드엔진 베이직 10번 문제입니다.oep와 등록 성공으로 가는 분기점의 OPCODE를 구하는 문제네요.일단 프로그램을 다운받아봅시다.바로 실행을 시켜보니 아무 문자열도 들어가지 않네요.PEID로 패킹여부를 확인해봅시다.ASPack이라는 패킹이 걸려있네요.VMUnpacker로 패킹을 풀어줍시다. 성공적으로 패킹이 풀렸습니다.이제 올리디버그로 OEP와 OPCODE를 확인해주면 되겠습니다.OEP를 확인하고,문자열을 검색해서 성공 구문 위에 점프문을 발견했고, OPCODE를 확인했습니다.Clear
코드엔진 베이직 9번 문제입니다.문제 페이지에서 StolenByte를 구하라고 하네요.StolenByte는패킹된 바이너리를 언패킹할 때의 과정을 방해하기 위한 방법으로,프로그램의 일부 바이트를 별도의 영역에서 실행되게 하여 OEP를 다른 위치로 가장하고 덤프를 쉽게 하지 못하도록 구현한 기법입니다.올바른 프로그램을 얻기 위해서는 패킹 과정에서 떼어진 StolenByte를 함께 복원해야 덤프가 성공적으로 이루어집니다.일단 PEID에 프로그램을 넣어봅시다.UPX로 패킹이 되어있습니다.일단 언패킹을 하고 패킹되어있는 프로그램과 언패킹된 프로그램 두개를 준비합니다.먼저 언패킹된 프로그램을 실행시켜 봅시다.프로그램이 정상적으로 실행되지 못하고 이상한 문자를 뱉는 걸 볼 수 있습니다.두번째 메시지박스는 제대로 나오..
코드엔진 베이직 7번 문제입니다.컴퓨터 C드라이브의 이름이 CodeEngn일 경우 시리얼이 어떤것으로 생성되는지 묻고 있습니다.일단 프로그램을 실행시켜봅시다.시리얼을 입력하고틀리면 메시지 박스가 나옵니다.성공 문자열을 찾아 비교문에 브레이크를 걸어줍니다.이후 아무 시리얼이나 입력하고 브레이크 포인트까지 진행되면cmp 함수에 입력한 아무 시리얼과 진짜 시리얼같은 문자가 인자로 들어갑니다.프로그램을 실행시켜 저 인자를 넣어줍시다.시리얼이 맞다고 나옵니다.이제 c드라이브의 이름이 CodeEngn일 때 시리얼을 알아봅시다.참고로 제 C드라이브의 이름은 Windows입니다.비교구문 한참 위에 브레이크를 걸어두고 코드를 하나씩 보면GetVolumeInformationA라는 함수가 눈에 띄입니다.저 함수를 지나치면 ..
- Total
- Today
- Yesterday
- 윈도우
- studio
- 코드
- 2015
- 윈도우10
- 연동
- 언어
- window
- 코딩
- apm연동
- sdlcheck
- apache
- 10
- 프로그래밍
- windows10
- sdl체크
- window10
- 설치
- load
- APM
- prob1
- C
- visual
- load of sql injection
- apache24
- 소스
- php
- MySQL
- sql inejction
- WebHacking
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |