code engn basic 9번 문제다.

StolenByte를 구하면 될 것 같다.

파일부터 실행해보자. 흠..키 파일?


일단 파일부터 확인하고 열어보자. UPX로 패킹되어 있어 언팩 후 파일을 열었다.

실행부터 해보니 첫 번째 MEssageBoxA에서 다음처럼 이상한 화면이 나온다.

처음에 언팩이 잘못됬나하고 여러번 해봤는데 계속 같은 화면이 나온다. 그렇다면 첫 번째 messagebox에서 뭔가 문제가 있다는건데 자세히보니 스택부분에 다음과 같이 4개의 인자가 들어간다.


그렇다면 3개의 인자가 부족하다는 거고  OEP 위의 12바이트가 NOP로 존재하고 있다. 그렇다면 이부

분에 Stolen Bytes를 찾아 넣으면 될 것 같다. 패킹된 파일로 가서 한번 찾아보았다.


확인해보니 위에서 PUSH를 3번 해주는 부분이 있다. 메모리 주소가 아닌 바이트를 구하랬으니 이제 충

분히 사이트에서 원하는 답은 찾을 수 있을 것이다.

그럼 이제 추가로 완벽하게 언팩을 한번 해 보자.

NOP에 PUSH 3번해주는 코드를 넣어주고 OEP를 100C에서 1000로 바꾼다.

이대로 실행해주면 정상적으로 출력값이 나온다.!

성공! 


'Wargame > CodeEngn' 카테고리의 다른 글

code engn basic 11번  (0) 2018.01.28
code engn basic 10번  (0) 2018.01.28
code engn basic 8번  (0) 2018.01.28
code engn basic 7번  (0) 2018.01.28
code engn basic 6번  (0) 2018.01.28
블로그 이미지

JeonYoungSin

메모 기록용 공간

,