10번 문제입니다.



ASPacking이 되어있습니다. 먼저 이를 언패킹 하겠습니다.


언패킹하는 방법은 인터넷에 많이 나와있는데 저는 여길 참고했습니다.

http://www.iblue.kr/xe/index.php?document_srl=14782&mid=board_jmbm03


먼저 시작하면 PUSHAD가 나오는데 여기서 F8을 누른 후 ESP를 Dump합니다. 



HexDump 창에서 4바이트를 드래그하고 Dword로 BP를 겁니다.



그리고 F9를 눌러서 BP까지 가면 아래와 같습니다.



아직은 모양이 다 안나왔습니다. 컨트롤+A를 눌러서 코드를 정리하고 올리덤프로 저장합니다.



LordPE로 리빌드 해줍니다.



PEiD로 언패킹이 잘 되었나 확인해봅시다.



언패킹이 잘 되었습니다. 이제 문제에서 원하는 답을 찾아 보도록하겠습니다. OEP는 이미 찾았으므로 '등록성공'으로 가는 분기점의 opcode를 찾아내야겠군요.



Registered ... wel done! 문자열 위에 jnz 분기문이 있습니다. 여기의 opcode인 7555가 문제에서 원하는 답입니다.


따라서 답은 OEP + opcode = 답이겠군요.




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

CodeEngn basic Level 12 풀이  (0) 2016.09.30
CodeEngn basic Level 11 풀이  (0) 2016.09.30
CodeEngn basic Level 9 풀이  (0) 2016.09.13
CodeEngn basic Level 8 풀이  (0) 2016.09.12
CodeEngn basic Level 7 풀이  (0) 2016.09.12

php로 웹 개발할때 date함수를 사용하면 아래와 같은 warning이 뜹니다.

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in

이 경고를 해결하기 위한 방법입니다.


1. /etc/php.ini 에서 datatimezone = Asia/Seoul 로 바꿔줍니다. 



2. php 위에 date_default_timezone_set('Asia/Seoul'); 를 추가합니다.

'Language > PHP' 카테고리의 다른 글

IF문에서 신기한것  (0) 2017.12.18


9번 문제입니다. stolenbyte를 구하라고 합니다.

무엇인지 모르지만 먼저 exe파일을 받겠습니다.



파일을 실행하면 위와 같은 창이 나오고 프로그램이 종료됩니다.



PEID로 보면 upx패킹이 된것을 알 수 있습니다.

이젠 반사적으로 upx툴을 이용해 언패킹하네요.

그런데 언패킹을 하면 정상적으로 실행되지 않고 아래와 같이 실행됩니다.



무언가가 깨진것 같습니다. 여기서 stolenbyte가 무엇인지 살펴보겠습니다.


패킹을 할 때 맨 아래에 위치한 jmp 전에 OEP 아래에 존재해야 할 코드를 jmp문 위로 stolen(훔친) 하는 기법입니다. 

이를 통해 리버싱을 어렵게 하는 방법입니다.


그렇다면 jmp 문 위를 잘 살펴보면 



이같은 코드들이 나옵니다. 아마도 stolenbyte가 이 부분인것 같습니다.


이 부분을 원래의 위치로 되돌려 놓으면 정상적으로 언패킹 되어 실행 될 것 이라 예상됩니다.



NOP 위치에 opcode를 채워 넣었습니다.


그리고 ollydump로 저장합니다.



이제 정상적으로 실행 됩니다.



codeengn의 정답은 stolenbyte를 쭈욱 나열하면 됩니다.




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

CodeEngn basic Level 11 풀이  (0) 2016.09.30
CodeEngn basic Level 10 풀이  (0) 2016.09.30
CodeEngn basic Level 8 풀이  (0) 2016.09.12
CodeEngn basic Level 7 풀이  (0) 2016.09.12
CodeEngn basic Level 6 풀이  (0) 2016.09.11

+ Recent posts