rev
-
HackCTF 좀만더 힘내자! 거의 다와간다!소소한 이야기 2019. 4. 1. 11:23
Rev인 리버싱, Web인 웹, Misc인 기타등등 의 분야는 모두 ALL Clear 상태이다. Forensics도.. 1문제가 남았는데 열심히 풀어봐야 할것 같다! CTF를 풀면서 이렇게 열심히 풀었던 적은 처음인 것같다. 친한형님께 HackCTF를 소개 시켜드리면서 같이 열심히 한것같다. 하지만...내가 가장 어려워하는 Pwn분야의 수많은 문제와 암호학 부분인 Crypto부분이 남아있다. CTF를 참여하고 푸시는 모든 보안인 분들께 화이팅!!이라는 말을 하고 싶습니다.!
-
CodeEngn Basic RCE 9$ 리버싱 $/CodeEngn Basic RCE 2019. 3. 27. 00:44
파일을 확인해 보면 다음과 같습니다.UPX 되어 있으므로 UPX.exe를 이용해서 언팩 해보겠습니다. 언팩 완료! 언팩 하지 않은 파일을 열어보면위와 같이 창이 뜹니다. 언팩한 파일을 열어보면 언팩 하지 않은 파일과 같아야 하지만...파일이 깨져 있습니다. 언팩한 파일을 확인해 보니 앞부분이 NOP로 덮여 있습니다. 그래서 언팩 하기전 파일을 확인해 저자리에 어떤 값이 있는지 확인해 보고 문제에서 요구하는 StolenByte를 찾아 보겠습니다.POPAD 하는 부분을 찾았습니다. 0040736E 부터 아래로 PUSH를 3번하는데 입력 값이 다음과 같습니다. 깨졌던 문자열 입니다. 그렇다면 StolenByte는 6A0068002040006812204000 이네요!
-
CodeEngn Basic RCE 8$ 리버싱 $/CodeEngn Basic RCE 2019. 3. 27. 00:43
OEP를 구하라고 되어있네요 OEP란 쉽게 말해서 프로그램이 구동되는 첫 시작점을 이야기 합니다. 프로그래밍으로 비유 하자면 c언어의 main함수의 첫 주소가 되겠네요.! 파일을 확인해 보면 UPX 되어있는 파일입니다. UPX되어 있다는 것은 이문제를 풀수 있는 방법이 2가지 입니다. 패킹 되어있는 저 파일을 언팩 하여 실행하면 바로 OEP가 보인다.패킹 되어있는 저 파일을 언팩 하지 않고 직접 디버거를 통해서 OEP까지 찾아 간다. 1번 방법은 그냥 UPX 프로그램을 사용하면 되기 때문에 2번 방법으로 풀어보겠습니다. 첫 올리디버거로 열어보면 다음과 같이 나옵니다. 01020C40에서 F8을 누르면 01020C41로 이동하면서 PUSHAD 가 실행 되면서 ESP 값이 바뀐 것을 알수 있습니다.Follo..
-
CodeEngn Basic RCE 7$ 리버싱 $/CodeEngn Basic RCE 2019. 3. 27. 00:42
serial을 입력 해서 푸는 문제인 것 같습니다. codeengn 7문제 이지만 abex' 5th crackme 문제를 그냥 가져온것 같네요. 시리얼이 틀리면 나오는 문구 c드라이브의 이름이 CodeEngn일때 시리얼이 생성될때 CodeEngn이 어떤거로 변하는지 보라고 했으니 다음과 같이 이름을 바꿔 보겠습니다. 위의 문구를 이용해서 main을 찾을 수 있겠네요. 올리디버거를 이용해서 main을 찾아보겠습니다. 위의 상자는 serial값이 틀렸을때아래의 상자는 serial 값이 맞았을때 실행 되는 구문입니다. 2개를 구분하기 위한 분기점은 제가 클릭 해둔 004010FC에 있습니다.EAX를 0 과 비교후에 00401117로 갈지 그냥 내려갈지 분기 하는것 같습니다 CMP 에서 BP를 걸어 두겠습니다...
-
CodeEngn Basic RCE 6$ 리버싱 $/CodeEngn Basic RCE 2019. 3. 27. 00:41
Serial값을 넣으면 틀렸다고 뜹니다. 06.exe파일은 upx 되어있어서 upx 명령어를 이용해서 Unpack을 했습니다. 올리디버거로 분석을 시작해 보겠습니다. 파일의 main 을 Search for 을 이용해서 찾아보겠습니다. 일단 1234를 입력해 보겠습니다. GetDlgItemTextA라는 함수를 지나가면 제가 입력한 아스키코드값인 1234가 입력이 됩니다.그리고 좀 내려가 보면 "1234" 와 "AD46DFS547" 과 비교 하는 부분이 나오기 때문에 Serial 값은 AD46DFS547이 됩니다.하지만 진짜 답은 OEP까지 구해야 하기 때문에 한번 구해 보겠습니다. OEP는 시작 주소 이므로 다음과 같습니다. OEP : 00401360입니다.
-
CodeEngn Basic RCE 5$ 리버싱 $/CodeEngn Basic RCE 2019. 3. 27. 00:41
이름과 시리얼값을 넣으면True일때의 값을 출력해주는 프로그램 입니다. PEID로 확인해 보겠습니다.UPX 되어있 파일이네요UPX을 풀어주겠습니다. 올리디비거에서 파일 열어 보겠습니다.F8을 이용해서 아래로 내려가 보면위의 박스인 Unregistered…은 입력한 값 그리고 아래 박스인 Registered User은 실제 값입니다. 틀렷으니 다시 실행해서 입력할때 위 빈칸에 Registered User을 작성해 줍니다. 위의 박스는 입력한값, 아래 박스는 정답입니다. 이제 실행해서 올바른값을 넣어 줍니다.