1. 가상머신

- VMware : 제일 많이 쓰임 ㅇㅇ

- VIrtualbox : 오라클이 제작한 가성머신이지만 VMware에 밀림

- Hyper-V : MS에서 만든 가상머신 역시 VMware에 밀림


2. 바이너리 에디터

- Hxd : 간편함

- FileInSight : 간단한 바이너리 디코드 기능 제공(xor)

- 010 editor : Hxd보다는 조금 강력함.. 상위호환 ㅇㅇ


3. 파일 해쉬 열람

- HashTab : 파일 속성에서 해쉬탭 나타냄

- HashMyFiles : 다량에 파일 해쉬가 필요할 때


4. 디스어셈블러 및 디스컴파일러

- IDA : Hexray와 같이 나오며 말이 필요없다. . 두번쓰자 ㅇㅇ


5. 디버거

- OllyDBG : 흔히 널린 디버거중 하나. 플러그인을 많이 지원하며 그만큼 범용성이 매우 큼! 짱짱맨!

- WinDBG : MS에서 제공하는 디버거, 강력하긴한데 좀 난이도를 올리려면 진입장벽도 올라간다.

- VirtualKD : 위에 두 개랑은 다르게 보조적인 역할을 하고 WinDBG와 VMware를 이어줘서 커널디버깅이 가능하다.

(커널디버깅이 뭔지알아야할듯)




흠.. 일단 여기까지..

출처는 같이 스터디하는 동아리 선배님 ㅎㅎ


 문제 지문

인증키 문제인듯


아무입력이 되지않았다..

그러면 여기서는 뭐 할수가 없겠구..


CFF로 본 결과 ASPack이라는 패커로 패킹이 되어있다.


그래서 패킹을 풀어서 찾는방법이 있겠으나


그냥 올리로 열어서 디버깅해서 OEP를 찾아보도록 하겠다



역시..



일단 ASPack패커를 풀어 OEP로가는 방법을 구글에서 찾아본결과


일단 F8을 눌러서 스택의 변화를 보자


자, ESP가 변화한것을 볼 수 있다. 이제 이 값을 왼쪽 하단 HEX에서 검색하면



위와같이 주소 값(?)이 나오고, 여기서 드래그를 하고 



브레이크 포인트를 걸어주고 F9를 눌러준다



여기서 F8을 눌러 RETN까지 가면


그러면 이곳이 원래의 EP가 된다

컨트롤+A를 눌르면 자동으로 분석이 되는것은 분석이 된다.



이제 2번째로 정답인증으로 가는 곳으로 찾아보자


문자열 검색으로 찾아보면



친절하게 성공문자열이 보여진다.

더블클릭하자.



여기로 보내주는 OP코드를 찾기위해 스크롤을 위로 땡겨서 뒤져보면



JNZ부분이 보이고 이 부분에서 갈려서 성공구문을 통과하느냐 거치느냐가 결정되는것 같았다.


위의 결과들을 Auth에 입력하면 클리어

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

CodeEngn Basic RCE 12 풀이  (0) 2017.07.04
CodeEngn Basic RCE 11 풀이  (0) 2017.07.04
CodeEngn Basic RCE 09 풀이  (0) 2016.11.10
CodeEngn Basic RCE 08 풀이  (0) 2016.11.06
CodeEngn Basic RCE 07 풀이  (0) 2016.11.05

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


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

+ Recent posts