이번 문제는 총합해서 한 하루정도 걸렸던거 같다.


StolenByte에 대해 이해하기위해서 말이다..




StolenByte를 찾으라는 문제였다.

말그대로 훔친 바이트라는 뜻인데... 음...



보아하니 패킹이 되어 있었다.

그래서 언패킹을 해보았더니



?????????????


엔트리포인트 들어오자마자 눈치를 챘을것이다...

MessageBoxA에 대한 파라미터들이 NOP로 가득채워져 있다.


나도 처음에 이 부분을 보고 갸우뚱하다가 Writeup을 본 결과 저기 있어야할 파라미터들이 어디론가 가있다는 것이였다.


그러면 패킹 전파일로 돌아가보자.




여기서 엔트리 포인트를 찾기위해..



여기에 BP를 걸고 점프를 하면



00401000이 아닌 0040100C로 이동을 하게된다.



아까본 언팩한 파일과 비교하면 NOP의 크기가 같다는 것을 알 수 있다.

그러면 이게 어딧는지 찾아본 결과..




언팩하기 전 파일의 마지막 점프구문 전에 들어있는 것을 확인하였다..

(발로 그린 타원형 그림이지만 이해하자..)


그러면 저 부분이 StolenByte인 것을 알 수 있고.


직접 저부분을 

위와 같이 직접 HEX값을 넣어줘서 덤프띄워도 동작 잘한다


답은 저 HEX값을 입력하면 클리어

'Reversing > CodeEngn Basic RCE' 카테고리의 다른 글

CodeEngn Basic RCE 11 풀이  (0) 2017.07.04
CodeEngn Basic RCE 10 풀이  (0) 2017.01.31
CodeEngn Basic RCE 08 풀이  (0) 2016.11.06
CodeEngn Basic RCE 07 풀이  (0) 2016.11.05
CodeEngn Basic RCE 06 풀이  (0) 2016.10.13

음.. 먼저 말하지만


그냥 쉬어가는 단계..


패킹파일을 어떻게 디버깅하는지 알면 그냥 풀림


오리지널 엔트리 포인트를 찾아라!



시작하면 이렇게 뜬다. 우선 F9를 눌러보자



그러면 PUSHAD라는 곳으로 이동하는데



밑으로 내리면 점프하는 구문이 있다.

여기까지 BP걸어서 오고 F7이나 F8을 누르면


이 곳이 오리지널 엔트리 포인트이다. 

패킹하고 OEP찾는 요령만 알면 정말 쉬입다.


'Reversing > CodeEngn Basic RCE' 카테고리의 다른 글

CodeEngn Basic RCE 10 풀이  (0) 2017.01.31
CodeEngn Basic RCE 09 풀이  (0) 2016.11.10
CodeEngn Basic RCE 07 풀이  (0) 2016.11.05
CodeEngn Basic RCE 06 풀이  (0) 2016.10.13
CodeEngn Basic RCE 05 풀이  (0) 2016.10.13

이번 문제는 예상해보면, 넣는 값에 따라 키값이 다르게 뜨는 것일 것이다.


주어진 파일 먼저 패킹이 되어있는지 확인을 해보면


패킹안되어 있고, 32비트 파일을 확인


올리디버거로 열고 F2를 눌러 실행


그러면 엔트리 포인트로 이동하고 밑으로 내려가다보면

아래와 같이 분기가 보일것이다.



여기서 4010FC에 BP를 걸고 실행시키고 CodeEngn을 넣어보자



그렇게 되면 아래 스샷과 같이 바뀌게 되는데



CodeEngn밑의 L2C-57816784-ABEX가 문제의 답인 줄알았고 CodeEngn Continue페이지에 입력해본 결과

키값이 아니라고한다. 그러면 CodeEngn에서 요구한 값은 이게 아니라는 것이다.

그전에 여담으로 이 값을 그냥 실행해서 실행하면


키 값은 맞게된다.


키값은 맞췄으나 CodeEngn에서 요구하는 키값은 찾지 못했으니 계속 찾아보자.


-----------------------------------

찾을수가없다..ㅠ 


추가


ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

정말 어처구니 없는 방법이지만 C드라이브 이름을 CodeEngn으로 넣었다.



키값이 바뀐것이 보인다.

직접 해보길 바람




API를 좀더 볼줄 알면 분석하기 쉬울거 같다.





------------------------------

추가 

죄송합니다.패킹이 걸려있군요...

TASM32 / MASM32

'Reversing > CodeEngn Basic RCE' 카테고리의 다른 글

CodeEngn Basic RCE 09 풀이  (0) 2016.11.10
CodeEngn Basic RCE 08 풀이  (0) 2016.11.06
CodeEngn Basic RCE 06 풀이  (0) 2016.10.13
CodeEngn Basic RCE 05 풀이  (0) 2016.10.13
CodeEngn Basic RCE 04 풀이  (0) 2016.10.13

앞서 말하는데,, 5번보다 쉽습니다..

이번에도 시리얼을 찾아야한다.

그리고 언팩이라는 말로 보아 패킹이 되어있다는걸 예상


음...여기서 보면

ERROR, Check Serial 등 문자열을 볼수 있다.


패킹이 걸려있다고 했으니...


UPX인것을 확인하고 언패킹 시도후 소스코드를 까고

바로 Search for -> All referenced text string을 누르고 보면..






??????????????????????????????

너무 쉽게 발견했다..




입력하니 당연히 클리어...







'Reversing > CodeEngn Basic RCE' 카테고리의 다른 글

CodeEngn Basic RCE 08 풀이  (0) 2016.11.06
CodeEngn Basic RCE 07 풀이  (0) 2016.11.05
CodeEngn Basic RCE 05 풀이  (0) 2016.10.13
CodeEngn Basic RCE 04 풀이  (0) 2016.10.13
CodeEngn Basic RCE 03 풀이  (0) 2016.10.11

맞는 키를 찾는 문제이다.

마찬가지로 다운로드 받고 열어보자..



위와 같이 열린다.. 바로 Register now!를 누른결과 Wrong...이렇게 나오고

Quit the CrackMe를 누르니 해버나이스데이 뜨면서 꺼진다. 이제 올리로 열어보자.


..

.

코드부분을 보면 바로 패킹이 되어있다는 것을 눈치챌 수 있다.

왜냐하면 보통패킹된 파일은 대다수가 PUSHAD라는 명령어로 시작하기때문이다.


실제로 패킹을 풀어보자

ㅇㅋ! 

이제 다시 열어보자


코드는 위와 같이 나온다.

그리고 보통 키찾는 문제는 잘 찾아보면 문자열로 저장되어 있을것이다..


Search for -> All referenced text string로 들어가면

위와 같이 뜰것이다.

저기에서 왠만한 문자열이 보인다.


Registered User가 있는 440F2F로 왔다.


여기서 우리가 보지 못한 문자열이 4개가 있다.

Registered User

GFX-754-IER-954

CrackMe cracked successfully

Congrats! You cracked this CrackMe!


이러한 문자열이 보이면 우선 넣어보는게 인지상정



역시는 역시나...

클리어.


다만 고급으로 가면 갈수록 여기저기 숨겨있어져서 찾기힘들것이다.

여긴 초급이라 가능한것일뿐.. 아...


'Reversing > CodeEngn Basic RCE' 카테고리의 다른 글

CodeEngn Basic RCE 07 풀이  (0) 2016.11.05
CodeEngn Basic RCE 06 풀이  (0) 2016.10.13
CodeEngn Basic RCE 04 풀이  (0) 2016.10.13
CodeEngn Basic RCE 03 풀이  (0) 2016.10.11
CodeEngn Basic RCE 02 풀이  (0) 2016.10.11

+ Recent posts