0x.리버스 엔지니어링
-
0x11.CodeEngn Basic RCE 120x.리버스 엔지니어링/CodeEngn Basic RCE 2017. 11. 8. 15:06
0x11.CodeEngn Basic RCE 12 패킹이 없는 문제이다.이번 문제는 hex의 값을 수정할 수 있는지를 묻는 문제인것 같다. 위의 아스키 코드값을 보고 저게 key값이겠구나 했지만 강태공 강림으로 낚시질에 당했다.위를 보니 CMP EAX, 7A2896BF를 비교하는 결과에 따라 성공 창이 뜨고 안뜨고가 결정된다. 10진수값으로 바꿔 넣어봤다니 성공한다. 헥사 값은 아래와 같이 바꾸면 된다. 성공 구문을 찾아서 아래와 같이 바꿨다.
-
0x08.CodeEngn Basic RCE 090x.리버스 엔지니어링/CodeEngn Basic RCE 2017. 11. 3. 11:56
0x08.CodeEngn Basic RCE 09 Stolen Byte를 찾는 문제인데, 그냥 이 값이 변수의 값인줄 알고 삽질을 좀 했다. Stolen Byte는 언패킹을 할 때 조작된 엔트리 주소를 가리키게 하여 분석을 어렵게 하는 안티 디버깅 방법이다. 이 문제의 경우 원래 실행되어야 할 부분들이 누락되어 있고, 그 값들은 언패킹 시 엔트리 포인트 위의 NOP이 가리키는 곳에 들어가야 한다. 패커로 확인하고 언패킹을 진행한 뒤에 뜯어보면 아래와 같이 NOP 슬라이딩 부분이 있다. 언패킹 파일을 실행해보면 정상적으로 실행되지 않고 MessageBox의 내용이 깨져서 출력된다. 언패킹 전의 파일로 가보면 JMP 구문을 실행하기 전에 스택에 PUSH 0PUSH 00402000PUSH 00402012 를 순..